Byte Magazine Volume 02 Number 10 - Implementing Space War (RESCAN)

This book was produced in EPUB format by the Internet Archive.

The book pages were scanned and converted to EPUB format automatically. This process relies on optical character recognition, and is somewhat susceptible to errors. The book may not offer the correct reading sequence, and there may be weird characters, non-words, and incorrect guesses at structure. Some page numbers and headers or footers may remain from the scanned page. The process which identifies images might have found stray marks on the page which are not actually images from the book. The hidden page numbering which may be available to your ereader corresponds to the numbered pages in the print edition, but is not an exact match; page numbers will increment at the same rate as the corresponding print edition, but we may have started numbering before the print book's visible page numbers. The Internet Archive is working to improve the scanning process and resulting books, but in the meantime, we hope that this book will be useful to you.

The Internet Archive was founded in 1996 to build an Internet library and to promote universal access to all knowledge. The Archive's purposes include offering permanent access for researchers, historians, scholars, people with disabilities, and the general public to historical collections that exist in digital format. The Internet Archive includes texts, audio, moving images, and software as well as archived web pages, and provides specialized services for information access for the blind and other persons with disabilities.

Created with abbyy2epub (v.1.7.2)

SWTPC announces first inif loppy kit under $1,000

——■ MINIFLOPPY 9 III Iff OlSK SYSTEM

SHia 68QO i?^*"

□Q

Now SWTPC offers complete best-buy computer system with $995 dual minifloppy, $500 video terminal/monitor, $395 4K computer.

$995 MF-68 Dual Minifloppy

You need dual drives to get full benefits from a minifloppy. So we waited to offer a floppy until we could give you a dependable dual system at the right price.

The MF-68 is a complete top-quality minifloppy for your SWTPC Computer. The kit has controller, chassis, cover, power supply, cables, assembly instructions, two highly reliable Shugart drives, and a diskette with the Floppy Disk Operating System (FDOS) and disk BASIC. (A floppy is no better than its operating system, and the MF-68 has one of the best available.) An optional $850 MF-6X kit expands the system to four drives.

$500 Terminal/Monitor

The CT-64 terminal kit offers these premium features: 64-character lines, upper/lower case letters, switchable control character printing, word highlighting, full cursor control, 110-1200 Baud serial interface, and many others. Separately the CT-64 is $325, the 12 MHz CT-VM monitor $175.

Enclosed is:

$1,990 for the lull system shown above

(MF-68 Minifloppy, CT-64 Terminal with CT-VM Monitor).

$995 for the Dual Minifloppy

$325 for the CT-64 Terminal

$175 for the CT-VM Monitor

$395 for the 4K 6800 Computer

$250 for the PR-40 Line Printer $79.50 for AC-30 Cassette Interface Additional 4K memory boards at $100 Additional 8K memory boards at $250

OrBAC# Exp. Date _

. OrMC# Exp. Date_

Name_ City

. Address. .State

-Zip

$395 4K 6800 Computer

The SWTPC 6800 comes complete with 4K memory, serial interface, power supply, chassis, famous Motorola MIKBUG® mini-operating system in read-only memory (ROM), and the most complete documentation with any computer kit. Our growing software library includes 4K and 8K BASIC (cassettes $4.95 and $9.95; paper tape $10.00 and $20.00). Extra memory, $100/4K or $250/8K. Other SWTPC peripherals include $250 PR-40 Alphanumeric Line Printer (40 characters/line, 5 x 7 dot matrix, 75 line/minute speed, compatible with our 6800 computer and MITS/IMSAI); $79.50 AC-30 Cassette Interface System (writes/reads Kansas City standard tapes, controls two recorders, usable with other computers); and other peripherals now and to come.

Southwest Technical Products Corp.

219 W. Rhapsody, San Antonio, Texas 78216 London: Southwest Technical Products Co.. Ltd Tokyo: Southwest Technical Products Corp./Japan

Circle 350 on inquiry card.

You can now have the industry's

finest microcomputer with that all-important disk drive

YOU CAN GET THAT ALL-IMPORTANT SOFTWARE, TOO

Loading your programs and files will take you only a few seconds with the new Cromemco Z-2D computer.

You can load fast because the Z-2D comes equipped with a 5" floppy disk drive and controller. Each diskette will store up to 92 kilobytes.

Diskettes will also store your programs inexpensively—much more so than with ROMs. And ever so much more conveniently than with cassettes or paper tape.

The Z-2D itself is our fast, rugged, professional-grade Z-2 computer equipped with disk drive and controller. You can get the Z-2D with either single or dual drives (dual shown in photo).

CROMEMCO HAS THE SOFTWARE

You can rely on this: Cromemco is committed to supplying quality software support.

For example, here's what's now available for our Z-2D users: CROMEMCO FORTRAN IV COMPILER: a well-developed and powerful FORTRAN that's ideal for scientific use. Produces optimized, relocatable Z-80 object code. CROMEMCO 16K DISK BASIC: a powerful pre-compiling interpreter with 14-digit precision and powerful I/O handling capabilities. Particularly suited to business applications. CROMEMCO Z-80 ASSEMBLER: a macro-assembler that produces relocatable object code. Uses standard Z-80 mnemonics.

The professionalgrade microcomputer for professionals

ADVANCED CONTROLLER CARD

The new Z-2D is a professional system that gives you professional performance.

In the Z-2D you get our wellknown 4-MHz CPU card, the proven Z-2 chassis with 21-slot motherboard and 30-amp power supply that can handle 21 cards and dual floppy drives with ease.

Then there's our new disk controller card with special features:

• Capability to handle up to 4 disk drives

• A disk bootstrap Monitor in a 1K 2708 PROM

• An RS-232 serial interface for interfacing your CRT terminal or teletype

• LSI disk controller circuitry

Z-2 USERS:

Your Z-2 was designed with the future in mind. It can be easily retrofitted with everything needed to convert to a Z-2D. Only $935 kit; or $1135 for assembled retrofit package.

Shown with optional bench cabinet

We're able to put all of this including a UART for the CRT interface on just one card because we've taken the forward step of using LSI controller circuitry.

STORE/FACTORY

Contact your computer store or Cromemco factory now about the Z-2D. It's a real workhorse that you can put to professional or OEM use now.

Kit: Z-2D with 1 disk drive

(Model Z2D-K) $1495.

Assembled: Z-2D fully assembled

and tested (Model Z2D-W) $2095.

Additional disk drive

(Model Z2D-FDD) $495.

SOFTWARE

(On standard IBM-format soft-sectored mini diskettes)

16K BASIC (Model FDB-S) $95

FORTRAN IV (Model FDF-S) $95

Z-80 Assembler (Model FDA-S) $95

Cromemco

incorporated Specialists in computers and peripherals

2400 CHARLESTON RD., MOUNTAIN VIEW, CA 94043 • (415) 964-7400

Circle 353 on inquiry card.

TV DAZZLER

I

_

a

To make your computer

more useful

a wide choice of memory, I/O, CPU

Your computer's usefulness depends 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 Altairs and IMSAIs, too.

CPU

• Z-80 MICROPROCESSOR CARD. The most advanced fiP card available. Forms the heart of our Z-1 and Z-2 systems. Also a direct replacement for Altair/IMSAI CPUs. Has 4-MHz clock rate and the power of the Z-80 ju.P chip. Kit (Model ZPUK): $295. Assembled (Model ZPUW): $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 expansion to 8 banks of 64K bytes each. Kit (Model 4KZ-K): $195. Assembled (Model 4KZ-W): $295.

• THE BYTESAVER —an 8K capacity PROM card with integral pro

grammer. Uses high-speed 2708 erasable PROMs. A must for all computers. Will load 8K BASIC into RAM in less than a second. Kit (Model BSK-0): $145. Assembled (Model BSW-0): $245.

• 16K CAPACITY PROM CARD. Capacity 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 DIGITALANALOG I/O. Extremely useful board with 7 A/D channels and 7 D/A channels. Also one 8-bit parallel I/O channel. Kit (Model D + 7A-K): $145. Assembled (Model D + 7A-W): $245.

• TV DAZZLER. Color graphics interface. Lets you use color TV as fullcolor 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. Contains 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 articles by independent experts: "The Cromemco boards are absolutely beautiful" . . . "The BYTESAVER is tremendous" . . . "Construction of Cromemco I/O and joystick are outstanding" . . . "Cromemco peripherals ran with no trouble whatsoever."

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 success with your computer.

|g Cromemco

incorporated Specialists in computers and peripherals 2432 CHARLESTON RD., MOUNTAIN VIEW, CA 94043

Circle 353 on inquiry card.

(415) 964-7400

In the Queue

EiTE OCTOBER 1977 Volume 2 Number 10

26 64 86 166

18 60 70 114 130 140 146 156 168

4 6

11

22

30

50

54

58 160 172 174 177 184

190, 198 194 208 208

Foreground

RELOCATABILITY AND THE LONG BRANCH

Programming Techniques—Borrmann AN APL INTERPRETER FOR MICROCOMPUTERS, Part 3

Interpreter Design—Wimble HOW TO IMPLEMENT SPACE WAR

So ftware—Kruglinski ANALYZE YOUR CAR'S GAS ECONOMY WITH YOUR COMPUTER

Applications—Bauerschnub

Background

HOW TO WRITE AN APPLICATION PROGRAM

Software—Jenkins OTHELLO, A NEW ANCIENT GAME

Software—Duda AN 8080 SIMULATOR

Software—Chung FUNDAMENTALS OF SEQUENTIAL FILE PROCESSING

Applications—Smith C: A LANGUAGE FOR MICROPROCESSORS?

Languages—Madden SIMPLE APPROACHES TO COMPUTER MUSIC SYNTHESIS

Hardware—Schneider STRUCTURED PROGRAM DESIGN

Software Design—Higgins COMPUTER INFORMATION ARRANGEMENT

Applications—Holladay MASTERMIND

Games—Milligan

Nucleus

In This BYTE

The Colorful Future of Personal Computing Letters

About the Cover. . .and Some More of the Same

Languages Forum: Defining LIL, a Little Interpretive Language

Commodore's New PET Computer

The NCC: A Dallas Delight

Technical Forum: More on Inexpensive Plotters

Book Reviews

BYTE's Bits

BYTE's Bugs

Clubs, Newsletters

Ask BYTE

What's New?

Classified Ads

BOMB

Reader Service

8YTE 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-USPS Publication No. 102410. Subscriptions are $12 for one year, $22 for two years, and $32 for three years in the USA and its possessions. Add $5.50 per year for subscriptions to Canada and Mexico. $25 for a one year subscription by surface mail worldwide. Air delivery to selected areas at additional rates available upon request. $25 for a one year subscription by air delivery to Europe, or DM 60,— for a one year subscription through our European distributor in Darmstadt, West Germany. Single copy price is $2.00 in the USA and its possessions, $2.40 in Canada and Mexico, and $3.50 in Europe or DM 8,- through our European distributor in Darmstadt, West Germany, and $4.00 elsewhere. Foreign subcriptions 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.

PUBLISHERS

Virginia Peschke Manfred Peschke EDITOR IN CHIEF Carl T Helmers |r PRODUCTION MANAGER Judith Havey ■ CIRCULATION MANAGER Gregory Spitzfaden ASSISTANT PUBLISHER Debra Boudrieau EDITOR

Christopher P Morgan CO-OP EDITOR Scott Morrow PRODUCTION EDITORS Karen Gregory Nancy Salmon ADVERTISING Debra Boudrieau, Director Noreen Bardstey Virginia Peschke EDITORIAL ASSISTANT Ingrid Nyland

PRODUCTION ASSISTANT

Cheryl Hurd

CONVENTION SUPERVISOR

Elizabeth Alpaugh DEALER SALES Ginnie F Boudrieau CLUBS David Wozmak TRAFFIC MANAGER Edmond C Kelly Jr ART

Wai Chiu Li

Ellen Shamonsky

SPECIAL PRODUCTS

Floyd W Refiling

Medellin Stephens

David Wozmak

EXECUTIVE SECRETARY

Patricia Clark

RECEPTIONIST

Jacqueline Earnshaw

DRAFTING

Douglas Glen

Stephen Kruse

Lynn Malo

Bill Morello

Dorothy Shamonsky

TYPOGRAPHY

Custom Marketing Resources Inc

Goodway Graphics

PHOTOGRAPHY

Ed Crabtree

PRINTING

Rumford Press

EDITORIAL CONSULTANT

Daniel Fylstra

ASSOCIATES

Walter Banks

Steve Ciarcia

David Fylstra

Portia Isaacson

FOREIGN DISTRIBUTOR

Pan Atlantic Computer Systems GmbH

Frankfurter Str 78

D61 Darmstadt West Germany

(0 61 51) 29 29 23

ADVERTISING SALES REPRESENTATIVES

National:

Parker & Short

1 Lakeside Office Park

Wakefield MA 01880

(617) 246-2293

Southern California:

Buckley/Boris Associates Inc

912 South Barrington

Suite 202

Los Angeles CA 90049 (213) 826-4621 Northern California: Jules E Thompson Inc Hearst Building Suite 1111

San Francisco CA 94103 (415) 362-8547

3

In This

One whole subset of the personal computing world is provided by the users and manufacturers of programmable calculators. All the problems of creating applications software which users must solve on bigger machines are present, and often intensified by lack of scale, in these smallest of personal computers. William B Jenkins gives some useful information on the general process of creating an application program, and the specific problems of doing it on an SR-52 programmable calculator, in his article entitled How to Write an Application Program.

One of the conveniences of the 6800, 6502 and similar microprocessors is a relative branch method which allows one to construct position independent code which can be relocated by simply moving the programs involved. But these forms are typically limited to a 1 byte displacement, a limitation which Robert Borrmann shows how to overcome in the 6800 case by using appropriate stack manipulations and "long branch" subroutines. Read his article Repeatability and the Long Branch in this issue.

Looking for a different type of board game to play on your computer? How about the current game fad Othello (known as Reversi in England)? In Othello, a New Ancient Game Richard O Duda provides a short article with details for this game of skill and tactics.

This month, Mike Wimble concludes his 3 part series about an APL interpreter with An APL Interpreter for Microcomputers, Part 3: Mathematical Processing. With this segment, the functional design of interpreter is completed. Watch future issues for results of the Great APL Interpreter Contest inspired by Mike's article.

At first glance a simulator designed to run on the computer it is simulating may not seem very useful. Kin-man Chung feels differently for he wrote one. His article, An 8080 Simulator, describes one such program and gives ideas on how it can be put to good use.

EITE

.-•''■>««--~<C

mm

ff! fm

page 86

For those who tire of the many versions of the Star Trek game, there are many much more interesting and interactive graphics games to consider. In his article, How to Implement Space War, Dave Kruglinski provides readers with a version of the classic graphics game, Space War, which was originated in the early 1960s by students at MIT, and has taken an amazingly long time to be documented in versions for personal computers. Dave's 8080 version is complete with orbiting space ships, spiraling torpedoes and dynamic effects implemented with limited resolution point plotting graphic display.

Is your computer cold? Add some vitamin C for a new high in resistance to frustration and rude language. Turn to J Gregory Madden's C: A Language for Microprocessors?, a description of an excellent structured programming language which could be adapted to microprocessor use from its origins on large PDP-11 s with the Unix operating system.

Do you use cassettes as your principal mass storage medium? Then you will benefit from Wayne D Smith's discussion of Fundamentals of Sequential File Processing when it comes time to write software using such media.

Want to get involved in pitch generation for computer music synthesis? Thomas Schneider explains several approaches you might consider in his article, Simple Approaches to Computer Music Synthesis.

Using flowcharts to gather the logic for a program does not mesh with the current trend of structured programming. One technique that is directed towards the structured program approach is the use of Warnier-Orr diagrams. Use of these diagrams, as described by David Higgins in his article Structured Program Design, will result in accurate, well structured programs that will work correctly the first time they are executed.

The home computer has many uses besides number crunching and game playing. One of these uses, discussed by David Holladay in Computer Information Arrangement, is an information retrieval system. This type of system could be used to make your own dictionary type reference, help keep track of your files with cross reference, or simply make a personal version of the Schwann Catalog for your record collection.

Sensible automobile owners have long had the habit of recording mileage and gasoline filling figures at each visit to the service station. In this issue John P Bauernschub explains how to Analyze Your Car's Gas Economy with Your Computer in a short article presenting a complete BASIC program for this application.

Are you looking for a stimulating thought game to play with your computer? The game of Mastermind as described by W Lloyd Milligan in his article of that name will force you to think in a very logical manner if you want to have a chance at winning.

4

Announcing the West Coast's largest Personal Computing Show. April 28, 29, and 30,1978 at California's brand new Long Beach Convention Center. This is a selling show with 180 booths (each draped, carpeted and with 500 watts of electricity). Three full days of conference sessions. There will be home brew exhibits, exhibitors lounge, inquiry badge system, computerized registration, a newsroom, and a full blown advertising and promotional campaign to bring you thousands of qualified buyers.

PERCOMP'78

I wouldn't miss it for anything.

®

Send me the show kit:

Nnmp:

Title:

Cnmnnnv:

AfirfreSs:

Strife:

7in Code:

Phone

Call: (714) 973-0880 Or mail this coupon: PERCOMP 78,

U1833 E. 17 St., Suite 108, Santa Ana, CA 92701. Sign early, corner booths are limited.

Circle 354 on inquiry card.

Editorial

The Colorful Future of Personal Computing

FULL SCREEN

POINT REFRESH TABLE

COLOR MONITOR

Figure 1: The color display technique which is conceptually simplest and most versatile is the directly refreshed brute force technique of assigning "n" bits to each picture element. For a personal computing context, where conventional TV monitors are used, and byte addressable memory is involved, use of four bits for each point gives 16 color levels per picture element. For a full 256 by 256 element matrix of color, a memory requirement of32,768 bytes must be satisfied.

(or What the World Needs Is a Good Mass Produced High Resolution Color Display ...)

This commentary on the possibilities of color imagery and display was inspired by a fantastic image processing system which was surely witnessed by many of the 36,000 people who thronged to the National Computer Conference in Dallas TX this past June. The system in question is produced by a company called Comtal, located in Pasadena CA. It is referenced variously as the Model 8000-S and "Vision One" in the literature I picked up at the site of the demonstration in the main exhibit area of the conference.

This Vision One system is not exactly a personal computing product. Its price tag in the $70,000 range makes it a candidate for laboratory or institutional use, but

hardly a peripheral for the individual of ordinary means. Its characteristics include a built in LSI-11 computer with extensive software, direct refresh raster graphics hardware with 512 by 512 8 bit picture elements (ie: 262,144 bytes in its serial CCD refresh memory), and a hard surface disk drive. One of the prime practical applications of this system is its use by the Jet Propulsion Laboratory of Pasadena as the analysis and enhancement processor for the color photos returned from the Viking landers on the planet Mars. But the artistic and personal use attributes of such a color display are immense, as was demonstrated by the

Continued on page 42

6

The Computer for the Professional

Whether you are a manager, scientist, educator, lawyer, accountant or medical professional, the System 8813 will make you more productive in your profession. It can keep track of your receivables, project future sales, evaluate investment opportunities, or collect data in the laboratory.

Use the System 8813 to develop reports, analyze and store lists and schedules, or to teach others about computers.

It is easily used by novices and experts alike.

Reliable hardware and sophisticated software make this system a useful tool. Several software packages are included with the machine: an advanced disk operating system supporting a powerful BASIC language interpreter, easy to use text editor, assembler and other system utilities. Prices for complete systems start at $3250.

See it at your local computer store or contact us at 460 Ward Dr., Santa Barbara, CA 93111, (805) 967-0468.

PolyMorphic Systems

Sol Terminal Computer

To do real work wild any computer, big or sma a complete system. I hats one of 1 he nice things about the Sol-20. It was built from the ground-up as the heart ol three fixed price computer systems with all the peripheral gear and soi l ware included to get you up and on I l ie air.

Sol System I costs just $1649 in kit form or S2\2{) fully burned in and tested. Here's what you get: a Sol-20 with the S( )\ H )S personality module for stand alone computer power, an 8lv>2 word memory, a 12" TV/vkleo monitor, a cassette recorder with BASIC software tape and all necessary cables.

Sol System II has the same equipment plus a larger

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, $4750 in kit form, $5450 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/ ^ j parable with mini-computer systems priced

- thousands of dollars more.

jm'/j V^^^y T^e ^ma" Computer

W \ ^^95/ 4AHf;fl Catalog for the rest of the real

W \^ :* '•• computer system story.

W /^S?^S>-^a^w' , ,. /JH^H : Visit your local computer store for

W V- il^^^^^^^: a copy of our fully illustrated 22 page cata

W «4f*it**Jjj^S^^te^f()r y°u ma> write or ca"us 11 more

'J ^ i convenient. Please address Processor

■fl^^r^T"'-'"^-^ M Technology, Box B, 6200 Hollis Street,

" » J ! 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.

See

Sol here

ALABAMA

ICP, Computerland 1550 Montgomery Hwy. Birmingham, AL 35226 (205) 979-0707

ARIZONA

Byte Shop Tempe 813 N. Scottsdale Rd. Tempe, AZ 85281 (602) 894-1129

Byte Shop Phoenix 12654 N. 28th Dr. Phoenix, AZ 85029 (602) 942-7300

Byte Shop Tucson 2612 E. Broadway Tucson, AZ 85716 (602) 327-4579

CALIFORNIA

The Byte Shop 1514 University Ave, Berkeley, CA 94703 (415) 845-6366

Computer Center 1913 Harbor Blvd. Costa Mesa, CA 92627 (714) 646-0221

DCI Computer Systems 4670 N. El Capitan Fresno, CA 93711 (209)266-9566

Bits 'N Bytes

679 S. State College Blvd.

Fullerton, CA 92631

(714) 879-8386

The Byte Shop

16508 Hawthorne Blvd.

Lawndale, CA 90260

(213) 371-2421

Opamp/Computer 1033 N. Sycamore Ave. Los Angeles. CA 90038 (213) 934-3566

The Computer Mart 624 West Katella #10 Orange, CA 92667 (714) 633-1222

Byte Shop

496 South Lake Ave. Pasadena, CA 91101 (213) 684-3311

Micro-Computer Application Systems 2322 Capitol Avenue Sacramento, CA 95816 (916) 443-4944

The Computer Store of San Francisco 1093 Mission Street San Francisco, CA 94103 (415) 431-0640

Byte Shop

321 Pacific Ave.

San Francisco, CA 94111

(415) 421-8686

The Byte Shop 2626 Union Avenue San Jose, CA 95124 (408) 377-4685

The Computer Room 124H Blossom Hill Rd. San Jose, CA 95123 (408) 226-8383

The Byte Shop 509 Francisco Blvd. San Rafael, CA 94901 (415) 457-9311

The Byte Shop 3400 El Camino Real Santa Clara, CA 95051 (408) 249-4221

Recreational Computer Centers

1324 South Mary Ave. Sunnyvale, CA 94087 (408) 735-7480

Computer Components 5848 Sepulveda Blvd. Van Nuys, CA 91411 (213) 786-7411

The Byte Shop 2989 North Main St. Walnut Creek, CA 94596 (415) 933-6252

Byte Shop 14300 Beach Blvd. Westminster, CA 92683 (714) 894-9131

COLORADO

Byte Shop 2040 30th St. Boulder, CO 80301 (303) 449-6233

Byte Shop 3464 S. Acoma St. Englewood, CO 80110 (303) 761-6232

FLORIDA

Byte Shop of Miami 7825 Bird Road Miami, FL33155 (305) 264-2983

Microcomputer Systems Inc. 144 So. Dale Mabry Hwy. Tampa, FL 33609 (813) 879-4301

GEORGIA

Atlanta Computer Mart 5091-B Buford Hwy. Atlanta, GA 30340 (404) 455-0647

ILLINOIS

Champaign Computer

Company

318 N. Neil Street

Champaign, IL 61820

(217) 359-5883

ftty bitty machine co. 1316 Chicago Ave. Evanston, IL 60201 (312) 328-6800

itty bitty machine co. 42 West Roosevelt Lombard, IL 60148 (312) 620-5808

INDIANA

The Data Domain 406 So. College Ave. Bloomington, IN 47401 (812) 334-3607

The Byte Shop 5947 East 82nd St. Indianapolis, IN 46250 (317) 842-2983

Computers Unlimited 7724 East 89th Street Indianapolis, IN 46256 (317) 849-6505

The Data Domain 7027 N. Michigan Rd. Indianapolis, IN 46268 (317) 251-3139

IOWA

The Computer Store of Davenport 616 West 35th Street Davenport, IA 52806 (319) 386-3334

KENTUCKY

The Data Domain 3028 Hunsinger Lane Louisville, KY 40220 (502) 456-5242

MICHIGAN

The Computer Store of Ann Arbor 310 East Washington Ann Arbor, Ml 48104 (313) 995-7616

Computer Mart of Royal Oak 1800 W. 14 Mile Rd. Royal Oak, Ml 48073 (313) 576-0900

General Computer Store 2011 Livernois Troy, Ml 48084 (313) 362-0022

MINNESOTA

Computer Depot, Inc. 3515 W. 70th St. Minneapolis, MN 55435 (612) 927-5601

NEW JERSEY

Hoboken Computer Works No. 20 Hudson Place Hoboken, NJ 07030 (201) 420-1644

The Computer Mart of New Jersey 501 Route 27 Iselin, NJ 08830 (201) 283-0600

NEW YORK

The Computer Mart

of Long Island

2072 Front Street

East Meadow, L.I. NY 11554

(516) 794-0510

The Computer Shoppe 444 Middle Country Rd. Middle Island, NY 11953 (516) 732-4446

The Computer Mart of New York 118 Madison Ave. New York, NY 10001 (212) 686-7923

The Computer Corner 200 Hamilton Ave. White Plains, NY 10601 (914) 949-3282

OHIO

Computer Mart of Dayton 2665 S. Dixie Ave. Dayton, OH 45409 (513) 296-1248

OREGON

Byte Shop Computer Store 3482 SW Cedar Hills Blvd. Beaverton, OR 97005 (503) 644-2686

The Real Oregon Computer Co. 205 West 10th Ave. Eugene, OR 97401 (503) 484-1040

Byte Shop Computer Store 2033 SW 4th Ave. Portland, OR 97201 (503) 223-3496

PENNSYLVANIA

Byte Shop of Delaware Valley 1045 Lancaster Pike Bryn Mawr, PA 19010 (215) 525-7712

RHODE ISLAND

Computer Power, Inc. M24 Airport Mall 1800 Post Rd. Warwick, Rl 02886 (401) 738-4477

TEXAS

Computer World 926 N. Collins Arlington, TX 76011 (817) 469-1502

Byte Shop 3211 Fondren Houston, TX 77063 (713) 977-0664

Computertex 2300 Richmond Ave. Houston, TX 77006 (713) 526-3456

Interactive Computers 7646V2 Dashwood Rd. Houston, TX 77036 (713) 772-5257

Neighborhood Computer Store

#20 Terrace Shopping Center 4902 - 34th Street Lubbock, TX 79410 (806) 743-2787

The Micro Store 634 So. Central Expressway Richardson, TX 75080 (214) 231-1096

VIRGINIA

The Computer Systems Store

1984 Chain Bridge Rd. McLean, VA 22101 (703) 821-8333

Media Reactions Inc. 11303 South Shore Dr. Reston, VA 22090 (703) 471-9330

The Home Computer Center 2927 Virginia Beach Blvd. Virginia Beach, VA 23452 (804) 340-1977

WASHINGTON

Byte Shop Computer Store 14701 N.E. 20th Ave. Bellevue, WA 98007 (206) 746-0651

The Retail Computer Store 410 N.E. 72nd Seattle, WA 98115 (206) 524-4101

WISCONSIN

Madison Computer Store 1910 Monroe St. Madison, Wl 53711 (608) 255-5552

The Milwaukee Computer Store 6916 W. North Ave. Milwaukee, Wl 53213 (414) 259-9140

CANADA

Trintronics 160 Elgin St. Place Bell Canada Ottawa, Ontario K2P 2C4 (613) 236-7767

First Canadian Computer Store Ltd. 44 Eglinton Ave. West Toronto, Ontario M4R 1A1 (416) 482-8080

The Computer Place 186 Queen St. West Toronto, Ontario M5V 1Z1 (416) 598-0262

Pacific Computer Store 4509-11 Rupert St. Vancouver, B.C. V5R 2J4 (604) 438-3282

Processor

Circle 355 on inquiry card.

Letters

A CMOS LOGIC PROBE

This is in response to Tom Kryst's letter in the July 1977 BYTE, page 148, expressing a need for a low cost CMOS logic probe. I was faced with a similar requirement while working on a software development system for the RCA 1802 CMOS microprocessor. Not being a person who believes in reinventing the wheel, I borrowed Kurt Christner's TTL design from the January 1977 BYTE, page 82, adding a CMOS inverting buffer at the front end, as shown below. Please note that a CD4069 inverter may not be substituted for the more expensive CD4049, as the current sinking capa

POWER CONNECTIONS

+ 5V

GND

ICI

7405

14

7

I cz

9602

16

6

I C3

CD4049

I

8

bility of the latter device is necessary.

I hope this modification may prove useful to some of your readers.

Frank A Weissig 343 NW 8th St, Apt 3 Corval is OR 97330

*l added this resistor to Mr Christner's design because there's something about an OC gate without a pull up that makes me nervous.

KUDOS FOR THE LD-14

I'd like to make a few comments about one of your advertisers, namely Logic Design Inc of Laramie WY. I purchased their LD 14 Tutorial Training Computer which was written up in January 1977 BYTE. Although I have not finished wire wrapping the unit, I am confident that I am getting my $1200's worth. One thing that has impressed me about the company is the quick response to a problem I was having one evening because of a gross error on my part. Some of the wires melted together as the result of tying VCC to ground. I became a little nervous that maybe I damaged something, so I wrote to complain about their failure to give any guarantees that their product is idiot proof.

Within three days I received a very courteous and apologetici phone call from the company with an open invitation to call them collect in the event I experienced further difficulty. With this kind of response it would seem likely that they intend to back up their commitment to quality support as stated in their advertisement.

To a second party, my Ifinished product may not appear to go beyond the Intercept Jr offered by Intersil, based on their IM6100 chip, which goes for around $450 with 1 K of programmable memory. This compared to the $1200 I have spent may be called, to question when considering only the physical result. The difference, as I sse it, is that I will have acquired an undt rstanding of the PDP-8 computer that I would never

have been able to by simply programming a prewired version. Beyond this, when I'm finished wire wrapping the PDP-8, I can unplug it from the logic designer front panel, give it a 5 V supply, and use the designer for my own creations.

For anyone interested in learning some of the state of the art do's and dont's of logic design, I will give this product a strong recommendation. Also, I would be interested in making contact with others who are building, or have completed, the LD 14 computer.

Phil Winninghoff 815 Plata Rd Arroyo Grande CA 93420

ASIMOV'S PERSONAL COMPUTER ANTICIPATION, CIRCA 1950

In his article, "Why aren't there any Altairs on Arcturus II?" (April 1977 BYTE), H Melton states that, "I can

SWTP 6800 OWNERS-WE HAVE A CASSETTE

/0 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 RE LIABLE CASSETTE I/O you can buy for your SWTP 6800 Comduter.

PerCom has a Cassette I/O for your computer! Call or Write for complete specifications

R*TE TERMINAL

TAPE

3O0 LOCAl

AUTO

&

UOQ LINE

ON

PERGCM

Kit-$69.95* Assembled - $89.95* (manual included) * plus 5% f/shipping

PERCOM

PerCom

Garland, Texas

Data

P.O. Box 40598

PerCom - 'peripherals for personal computing

Co.

75042 • (214) 276-1968

TEXAS RESIDENTS ADD 5% SALES TAX

11

remember only one old story that used pocket calculators. . . ." As an avid SF fan, and as an even more avid calculator (HP) freak, I must beg to differ with Mr Melton. In the Foundation Trilogy, by Isaac Asimov, one finds the following passage:

Seldon removed his calculator pad from the pouch at his belt. . . .Its grey, glossy finish was slightly worn by use. Seldon's nimble fingers. . .played over the hard plastic that rimmed it. Red symbols glowed out from the grey.

How many of us have not performed the act just described? And the Foundation Trilogy was, I believe, written in the early 1950s. I must, however, agree with the general tone of the article: most of us (including SF writers) are just not able to predict the rate of technological progress.

W Gray Mansfield 5042 Guava Av La MesaCA 92041

PRINTING BARS ON SELECTRICS?

I see you're printing optical code. Is it possible to get an IBM ball (or keys) which prints letters and code simultaneously? If yes, where are they available?

Rob Loring Twin Oaks Commmunity Rt 4, Box 169 Louisa VA 23093

Yes, but it's expensive. Custom tooling is available from several sources for IBM style balls; thus, while one could design a bar code font, it would not be a project undertaken lightly.

LIGHTING THROUGH THE PAPER?

The idea of distributing software through PAPERBYTES is great. Why don't you publish PAPERBYTES on one side of a page only, leaving the other side blank? Light could then be shone from underneath the paper to illuminate the coded material.

This technique would greatly simplify the optical system needed for the bar code reader. It would eliminate the light source and lens in the reader (wand) and reduce specular reflection problems that cause errors.

I plan on trying this approach soon. Do you or your readers have any suggestions?

Andrew A Modla 108 Clemens Ct Lansdale PA 19446

The main problem with the approach of backlighting is that it leaves one whole side of the paper blank, something which is less than optimal when it comes to publishing information in books and magazines on expensive paper.

PRINTING QUOTES ON AN HP9830 IN BASIC

As a user of Hewlett-Packard's 9830 BASIC machine, I have discovered one of its (very few) shining features. The BASIC interpreter has a statement pair WRITE and FORMAT, which FORTRAN users will recognize. This is a rather little known fact, as HP buries it in an obscure portion of their manual.

In order to get quotes out of it, something like this would be written:

10 FORMAT 3B

20 WRITE (15, 10) 34, "HELLO", 34

where 15 is the device code of the main printer. The output looks like this:

"HELLO"

What goes on is that B format will convert the decimal number given it (constant, variable, or whatever) and output it directly as ASCII; the quote mark is 34 in ASCII. This can also be used to print nonkeyboard characters; square brackets, reverse slashes, and so on.

The other way to do this requires the Advanced IO ROM, as HP sells their software as plug in black (or gray) boxes. The OUTPUT statement allows you to use a string as an output device. Example:

10 FORMAT B

20 OUTPUT (A$, 10) 34,

30 PRINT A$

with the result:

So, all you users of the HP9830, now you can print quotes and other goodies. This almost makes up for the crudity of HP's strings.

John Woods WB7EEL 6541 126th Av SE Bellevue WA 98006

AS SALES EXPAND, SAFETY ASPECTS MUST BE IMPROVED

While experimenters look for the fastest, most powerful, least expensive microcomputer, they seldom look for the safest. From looking at ads for hobby computers, I learn that only OSI advertises their power supply as being listed by Underwriters Laboratories Inc. Some small computers have 117 VAC conductors that are exposed when the lid is off (as I learned one day by accident — no injury, just minor equipment damage); the same machines don't have fuses in the unregulated low voltage high current lines. Just wait until you've welded a probe to a power trace to find out how much you need thai item. It's an industrial standard to avoid exposed high voltages whenever possible, and I see no reason to have an exposed, noisy

Continued on page 32

Rated G

Great Locations

Now Open:

3020 University Drive N.W. Huntsville. AL (205)539-1200

11074 San Pablo Ave. El Cerrito.CA 94530 (415) 526-6622 22634 Foothill Blvd. Hayward, CA 94542 (415)538-8080

6840 LaCienega Blvd. inglewood.CA 90302 (213) 776-8080

24001 Via Fabricante Mission Viejo, CA 92675 (714) 770-0131

4233 Convoy Sfreet

San Diego, CA 92111

(714)560-9912

121 Fremont Street

San Francisco, CA 94105

(415) 546-1592

171 E. Thousand Oaks Blvd. Suite 105 Thousand Oaks. CA 91360 (805)495-3554

104 W. First Street Tustin, CA 92680 (714)544-0542

50 East Rand Road Arlington Heights, IL 60004 (312) 255-6488

9511 No, Milwaukee Ave. Niles, !L 60648 (312) 967-1714

813-B Lyndon Lane Louisville. KY 40222 (502) 425-8308 16065 Frederick Road Rockville, MD 20855 (301)948-7676

2 De Hart Street Morristown, NJ 07960 (201)539-4077

1612 Niagara Falls Blvd. Buffalo, NY 14150 (716) 836-6511

225 Elmira Road Ithaca. NY 14850 (607) 277-4888 6439 Westheimer Road Houston, TX 77057 (713) 977-0909

Opening Soon:

San Jose, CA Oaklawn, IL Detroit, Ml Grand Rapids, Ml Nashua, NH Austin. TX

Franchise Opportunities Available—Contact: E. E. Faber, President Computerland Corp.

ComputerLand

1922 Republic Ave. San Leandro, CA 94577 (415) 895-9363

12

Circle 356 on inquiry card.

Rated

The Best Game in Town.

Welcome to ComputerLand. An incredible adventure into the world of personal computers. A one-of-a-kind shopping experience.

Each ComputerLand store presents everything you ever wanted to know about computers. And then some.

Take our Game Room, for starters. You'll find excitement for the whole family in our endless variety of challenging

computer games. You can battle the Klingons in an out-of-this-world game of StarTrek. Create an electronic work of art with a computer controlled TV. Test your skill in a game of computerized hangman.

You can even plot your biorhythm.

But we're more than just fun and games Each ComputerLand store offers a knowledgeable and person-_^| able staff of professionals

And if your system breaks down, our in-store service department will get you back up and running.

Right now!

Great Selection.

Your first stop at ComputerLand may well be your last stop.

ComputerLand offers the finest quality and

to serve you. Plus the greatest available selection of micro components. Whether it's a data processing system for your business or a computer controlled sprinkler system for your home, you'll find whatever you need at ComputerLand.

Read on.

Genuine Service.

largest selection of all the major brand names. Like Apple Computer, Cromemco, DEC, Diablo, Hazeltine, I COM, IMSAI, Lear Siegler, National Semiconductor, North Star, Texas Instruments, Vector Graphics and more.

Plus a complete inventory of tools, books and accessories.

What's more, at ComputerLand, we deal in product. Not promises. Our inventory is on our own shelves. Rather than the manufacturer's. So you can take delivery on tomorrow's components today. ___________________

in addition to BASIC,

We want to supply you with the one system that's right. Rather than a complete system that isn't. Or a limited system that is.

That's why, at ComputerLand, you deal with real professionals who are also real people. People who speak your language COBOL or FORTRAN.

People, in short, who can offer both the novice and the old hand the same expert guidance in selecting the optimum system he or she needs.

Yet, assisting in the purchase is only the beginning of ComputerLand's service. If the kit you bought requires a little more do-it-yourself than you yourself can do, we provide assembly assistance.

If that complex program proves to be just that, we provide programming assistance.

Which means, simply put, that at ComputerLand, you get exactly what you want.

Exactly when you want it.

Be Our Guest.

Begin with the grand tour of our exhibit areas. "Testdrive" any of our individual systems.

Then tell us your needs. We'll sit down and talk about the system that's right for you. It's as easy as that at ComputerLand.

Thegreat computer store. RATED G.

Call or write for the address of the ComputerLand store nearest you.

Franchise opportunities available.

ComputerLand

1922 Republic Avenue, San Leandro, CA 94577 (415) 895-9363

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 graphics 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 graphics 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 dimension of sound through Apple II's built-in speaker.

But Apple II is more than an advanced, infinitely flexible game machine. Use it to teach your children arithmetic, or spelling for instance. Apple II makes learning fun. Apple II can also manage household finances, chart the stock market or index recipes, record collections, even control your home environment.

Right now, we're finalizing a peripheral board that will slide into one of the eight available motherboard slots and enable you to compose

music electronically. And there will be other peripherals announced soon to allow your Apple II to talk with another Apple II, or to interface 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 peripherals will keep Apple II in the forefront for years to come.

Write us today for our detailed brochure and order form. Or call us for the name and address of the Apple II dealer nearest you. (408) 996-1010. Apple Computer Inc., 20863 Stevens Creek Boulevard, Bldg. B3-C, Cupertino, California 95014.

Apple II™ is a completely self-contained computer system with BASIC in ROM, color graphics, ASCII keyboard, lightweight, 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 included 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—40hx 48v, 15 colors

■ High-resolution graphics—280hx 192v; black, white, violet, green (12K RAM minimum required)

• Both graphics modes can be selected to include 4 lines of text at the bottom of the display area.

• Completely transparent memory access. All color generation done digitally.

• Memory: up to 48K bytes on-board RAM (4K supplied)

• Uses either 4K or new 16K dynamic memory chips

• Up to 12K ROM (8K supplied)

• Software

• Fast extended integer BASIC in ROM with color graphics commands

• Extensive monitor in ROM •I/O

• 1500 bps cassette interface

• 8-slot motherboard

• Apple game I/O connector

• ASCII keyboard 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).

apple computer inc:

Order your Apple II now.

from any one of the following authorized dealers:

The Computer Center 303 B. Poplar Place Birmingham

ALASKA

Team Electronics

Country Village Shopping Center

700 E. Benson Blvd.

Anchorage

Team Electronics

404 E. Fireweed Lane

Anchorage

Team Electronics

1698 Airport Way

Fairbanks

ARIZONA

Byte Shop

813 N. Scottsdale Road Tempe

CALIFORNIA

Computerland

22634 Foothill Blvd.

Hayward

Computerland

6B40 La Cienega Blvd.

Englewood

Computerland

24001 Via Fabricante

Mission Viejo

Computerland

4233 Convoy Street

San Diego

Computerland

104 W. First Street

Tustin

Byte Shop

2233 El Camino Real

Palo Alto

Byte Shop

2626 Union Avenue

San Jose

Byte Shop

1200 W.Hillsdale Blvd. San Mateo Byte Shop

3400 El Camino Real Santa Clara Byte Shop

2989 N. Main Street Walnut Creek A-VIDD Electronics 2210 Bellllower Road Long Beach Computer Country 2232 Salt Air Drive Santa Ana

Computer Playground 6789 Westminster Avenue Westminster

Rainbow Computing, Inc. 10723 White Oak Granada Hills Strawberry Electronics 71 Glenn Way #9 Belmont

COLORADO

Team Electronics 3275 28th Street Boulder

Team Electronics

The Citadel

Colorado Springs

Team Electronics

107 S. College

Fort Collins

Team Electronics

Teller Arms Shopping Center

2401 North Avenue

Grand Junction

Team Electronics

2045 Greeley Mall

Greeley

Team Electronics 1450 Main Street Longmont Team Electronics 1022 Constitution Road Belmont Plaza Pueblo

FLORIDA

Byte Shop

1044 E. Oakland Park Blvd.

Ft. Lauderdale

Byte Shop

7825 Bird Road

Miami

The World of Microcomputers, Inc. 1429 Plunket Street Hollywood

GEORGIA

Data Mart, Inc. 3001 N. Fulton Drive Atlanta

HAWAII

Real Share

190 S. King Street #890 Honolulu

ILLINOIS

Team Electronics

Meadowdale Drive, Space 1A

Carpentersville

Team Electronics

Northgate Mall Shopping Center

Decatur

Team Electronics

Sandburg Mall

1150 W. Carl Sandburg Drive

Galesburg

Team Electronics

Southpark Shopping Center

420016th Street

Moline

Team Electronics

4700 Block—N. University Ave.

Peoria

Team Electronics

1714 Fifth Avenue

Rock Island

Team Electronics

321 N. Alpine Road

Rockford

Team Electronics

Woodfield MallF-119

Schaumburg

Team Electronics

2716 S. MacArthurBlvd.

Springfield

Computerland

50 E. Rand Road

Arlington Heights

Itty Bitty Machine Company

1316 Chicago Avenue

Evanston

INDIANA

The Data Domain 2805 E. State Blvd. Fort Wayne The Data Domain 7027 Michigan Road Indianapolis

IOWA

Team Electronics 202 Main Street Ames

Team Electronics

Duck Creek Plaza

Bettendorf

Team Electronics

4444 First Avenue N.E.

Lindale Plaza

Cedar Rapids

Team Electronics

216 Eighth Street S.E.

Cedar Rapids

Team Electronics

320 Kimberly Road

Northpark Shopping Center

Davenport

Team Electronics

2300 Kennedy Road

Dubugue

Team Electronics

Room 120—Space 18

The Mall

Iowa City

Team Electronics

2015 E. Fourth Street

Sioux City

Team Electronics

K-D Stockyards Station

2001 Leech Avenue

Sioux City

Team Electronics

2750 University Avenue

Waterloo

KANSAS

Team Electronics

215 W. Kansas Avenue

Garden City

Team Electronics

14 S. Main Street

Hutchinson

Team Electronics

2319 Louisiana Street

Lawrence

Team Electronics

1132 Westloop Shopping Center

Manhattan

KANSAS (continued) Team Electronics Space 81-A Mid-State Mall Salina

Team Electronics

907 W. 27th Street Terrace

Topeka

Team Electronics Towne East Square 7700 E. Kellogg Wichita

Team Electronics 791 N. West Street Wichita

Team Electronics "The Mall" on Harry Street Wichita

Barney & Associates 425 N. Broadway Pittsburg

KENTUCKY

Computerland

813 B Lyndon Lane

Louisville

The Data Domain

506'A Euclid Avenue

Lexington

The Data Domain

3028 Hunsinger Lane

Louisville

MARYLAND

Computerland 16065 Frederick Road Route 355 Rockville

MASSACHUSETTS

The Computer Store, Inc. 120 Cambridge Street Burlington

MICHIGAN

Team Electronics

Delta Plaza Shopping Center

Escanaba

Team Electronics

M&M Plaza

Menominee

MINNESOTA

Team Electronics Ridgedale Mall 12503 Wayzata Blvd. Minnetonka Team Electronics 204 Southdale Center Edina

Team Electronics

215 Ruby Street

Box 3222

Mankato

Team Electronics

1248-50 Eden Prairie Center

Eden Prairie

Team Electronics

207 Third Street

Bemidji

Team Electronics 1032 Burnsville Center Burnsville Team Electronics Kandi Mall South Hwy 71 Willmar

Team Electronics

Crossroads Shopping Center

St. Cloud

Team Electronics

Cedar Mall

Owatonna

Team Electronics

Mesabi Mall

Hibbing

Team Electronics Thunderbird Mall Virginia

Team Electronics Apache Plaza Silver Lake Road St. Anthony

MINNESOTA (continued)

Team Electronics

1221 Main Avenue

Moorhead

Team Electronics

1733 S. Robert Street

West St. Paul

Team Electronics

2640 Hennepin Avenue S.

Minneapolis

Team Electronics

455 Rice Street

St. Paul

Team Electronics

110 Sixth AvenueS.

St. Cloud

Team Electronics

6413 Lyndale AvenueS.

Minneapolis

Team Electronics

1311 Fourth St. S.E.

Minneapolis

Team Electronics

Maplewood Plaza

3000 White Bear Avenue

Maplewood

Team Electronics

Madison East

Mankato

Team Electronics 310 Grant Avenue Eveleth

Team Electronics Har Mar Mall 2100 N. Snelling Avenue St. Paul

Computer Depot 3515 W. 70th Street Minneapolis

MISSOURI

Team Electronics Biscayne Mall 301 Stadium Blvd. Columbia

Electronic Components Intl. 1306-B South Hwy 63 Columbia

MONTANA

Team Electronics 613 Central Avenue Great Falls Team Electronics 1208W. Kent Missoula

Computers Made Easy 415 Morrow Bozeman

NEBRASKA

Team Electronics 148 Conestoga Mall Highway 281 8,13th Street Grand Island Team Electronics 2055 "0" Street Lincoln

Team Electronics 304 S. 72nd Street Cedarnole Shopping Center Omaha

Team Electronics Bel Air Plaza 12100 W. Center Road Omaha

Team Electronics

Sunset Plaza Shopping Center

Norfolk

Team Electronics The Mall 1000 S. Dewey North Platte

NEW JERSEY

Computerland 2 De Hart Street Morristown

NEW YORK

Computerland

1612 Niagara Falls Blvd.

Buffalo

Computerland 225 Elmira Road Ithica

Co-op Electronics 9148 Main Street Clarence

NORTH DAKOTA

Team Electronics

2304 E. Broadway

Bismarck

Team Electronics

West Acres Shopping Center

Fargo

Team Electronics 150311th Avenue N. Grand Forks Team Electronics 20911th Avenue S.W. Minot

Team Electronics 109 Main Street Williston

OHIO

The Data Domain 1932 Brown Street Dayton

OKLAHOMA

Team Electronics 1105 Elm Street Stubbeman Village Norman

Team Electronics

Crossroads Mall

7000 Crossroads Space 2010

Oklahoma City

Team Electronics

Penn Square Shopping Center

Penn Square

Oklahoma City

Team Electronics

1134 Hall of Fame Avenue

Stillwater

Team Electronics

5305 E. 41st

Southroads Mall

Tulsa

Team Electronics Woodland Hills Mall 7021 Memorial Tulsa

Team Electronics Surrey Hills Yukon

Bits, Bytes & Micros 1186 N. MacArthurBlvd. Oklahoma City High Technolgy 1020 W. Wilshire Blvd. Oklahoma City

OREGON

Team Electronics 1913 N.E. Third Street Bend

Team Electronics

2230 Fairground Road N.E.

Salem

SOUTH DAKOTA

Team Electronics 402 W. Sioux Avenue Pierre

Team Electronics

1101 Omaha Street

Rapid City

Team Electronics

613 W. 41st Street

Sioux Falls

Team Electronics

41st Street & Western Avenue

Western Mall

Sioux Falls

SOUTH DAKOTA (continued) Team Electronics Sioux Empire Mall 4001 West 41st Street Sioux Falls Team Electronics 223 Ninth Avenue S.E. Watertown

TEXAS

Computerland 6439 Westheimer Houston

Computer Shops, Inc. 13933 North Central Dallas

The Computer Shop

6812 San Pedro

San Antonio

The KA Computer Store

1200 Majesty Drive

Dallas

VIRGINIA

Home Computer Center 3312 Old Kirkwood Drive Virginia Beach

WASHINGTON

Team Electronics 423 W. Yakima Yakima

WISCONSIN

Team Electronics

3209 Rudolph Road

Eau Claire

Team Electronics

3365 E. Clairmont Parkway

Eau Claire

Team Electronics

3365 E. Washington Avenue

Madison

Team Electronics

7512 W. Appleton Avenue

Milwaukee

Team Electronics

3701 Durand Avenue

Elmwood Plaza Shopping Center

Racine

Team Electronics 3347 Kohler Avenue Memorial Mall, Space H-4 Sheboygan Team Electronics 5300 S. 76th Southridge Center Greendale Team Electronics Sunrise Plaza Highway 8 East Rhinelander Team Electronics 1505 LoseyBlvd. S. Village Shopping Center LaCrosse Team Electronics 2207 Grand Avenue Wausau

Team Electronics

3301-3500 S. 27th Street

Southgate Shopping Center

Milwaukee

Team Electronics

2619 Milton Avenue

Janesville

Team Electronics

1801 Marshall Street

Manitowoc

Team Electronics

7700 W. Browndeer Road

Northridge Center

Milwaukee

Team Electronics

396 Park Avenue

Oshkosh

WYOMING

Team Electronics Hilltop Shopping Center 207 S. Montana Casper

If you would like to be an Apple dealer, call Gene Carter, Director of Dealer Marketing, 408-996-1010.

oppkz computer inc.

nnoon o*—— t~*~ 1, ,l«w~-^ DO r>

20863 Stevens Creek Boulevard, B3-C Cupertino, California 95014

(408) 996-1010

Circle 357 on inquiry card.

buy a micro, m m when qou can bu% a minijor less)

MOST OF TODAY'S PERSONAL COMPUTERS are microcomputers. Compared to our minicomputer they are slow and expensive.

Our mini "the MINI 12™" has been around for three years. We've been steadily selling it to industrial customers who have proven its reliability. Only recently have we paid much attention to the personal computing market. We've discovered that our computer is simply better, and most interestingly, LESS EXPENSIVE.

NONE OF THE MICROCOMPUTERS can offer you the range of software available to the MINI 12. Compatibility with the most popular minicomputer, DEC's PDP-8E, gives you a vast library of programs. You will also be pleasantly surprised when you experience the speed and sophistication of our EXTENDED BASIC compiler, or FORTRAN, ALGOL and FOCAL.

Unlike today's microcomputers, our Mini 12 is fully software supported by an advanced operating system, including...file handling text editor, symbolic assembler,

loaders, ODT (octal debugging technique), batch processor, and system utilities. The MINI 12 comes with 8K of memory and is easily expandable to 32K. Because the MINI 12 processes 12 bit words (instead of 8 bit bytes) you need far less memory. For most applications... using our optional MINI STORE digital cassette system with the BASIC compiler, you will never need add another single byte!

Because we want you to have the pleasure of using your minicomputer right away, our MINI 12 comes fully assembled, debugged and ready to plug in. It includes a full front panel, controller for eight digital tape drives, and built-in serial interface plus other technical niceties like a binary loader and monitor bootstrap in ROM memory.

Frankly, when compared with microcomputers, we're surprised at how good a deal we are. Write... or better yet, give us a call ©303-794-1634 and let us help you get it all together!

TLF

r Post Office Box 2298, Littleton, Colorado 80161, Telephone 303-794-1634

PDP-8E and Focal are Trademarks of Digital Equipment Corporation

Circle 358 on inquiry card.

( start )

QUANTITY OF FIRST ITEM

QUANTITY TIMES LIST PRICE

SUBTOTAL

QUANTITY OF LAST ITEM

TIMES LIST PRICE OF LAST ITEM

SUBTOTAL

GRAND TOTAL

GRAND TOTAL TIMES DISCOUNT

SUBTRACT DISCOUNT FROM GRAND TOTAL

STORE RESULT AS NET INVOICE AMOUNT

ADD

SHIPPING COSTS

RESULT IS TOTAL AMOUNT OF INVOICE

^ STOP ^

Figure J: Basic flowchart outlining the procedure for completing an invoice. This is a first step in detailing precisely what the program should do.

How to Write

an Application Program

William B Jenkins 643 S Rte 83 Elmhurst IL 60126

The Texas Instruments SR-52 is a very impressive machine for its size. Several different libraries of programs are provided that include engineering, finance and games applications. The game programs do, of course, provide the easiest way to impress your friends with the power of the SR-52. This is no different from using game programs with any computer system. For personal use, though, games can quickly lose their glamour. When this happens, it is time to learn how to program.

As the owner of a small business, there are at least two tasks which consume a fair amount of my time. One is payroll and the other is invoice preparation. Of the two, invoice preparation is the easiest program to start with, although both programs offer good opportunities to learn many of the intricacies of programming. These techniques also provide a practical way of learning general programming methods. The result is the development of skills that include analyzing the problem and designing a logical way (flowchart) of identifying the best method for solving the problem. Next comes the conversion of the flowchart to the program language that your machine uses. To do this, let's start with the problem of developing a program to help prepare invoices.

Invoice Program

The first step is to think out what you would do to manually prepare an invoice. There are several ways of doing invoices. We are manufacturers of retail products and sell various quantities of many different items. Our invoices show the suggested list price for each item. After the items

are totalled, a discount is calculated and subtracted from the total. The result is the net amount that the customer pays. There are other costs, such as shipping charges, which are also added. Figure 1 shows a flowchart for this first step.

Making a flowchart for this first step may seem to be unnecessary. What it does is give you a graphic description of the steps involved. From this, some of the next steps become more obvious. For example, in an invoice, we multiply one item by another and save the total. This basic step is repeated for as many items as required. This type of repetition is one of the things a computer does best. In the same way, it is the very thing that bores a human fastest.

The end steps require adding the individual totals and getting a grand total. The remaining steps are straightforward arithmetic.

The initial conclusion (one which we sort of knew from the start) is that this problem lends itself to solution by computer.

We will add one more set of calculations so that the final program can handle a second class of merchandise that does not have any discount applied. This addition is similar to the steps shown in figure 1, and we will include it in our next reiteration of the design.

SR-52 Features

What we have done so far has been independent of the system that we will be using. At this point, we have to learn a little about the specific hardware.

The SR-52 allows programs to be input using the calculator keyboard. The individual keys could be considered as a set of

18

Photo 1: SR-52 programmable calculator.

op codes for a high level language interpreter, with each key performing a set of fairly complex operations. The SR-52 provides several categories of key functions. It has the conventional arithmetic functions: +, —i x, -r; and a set of memory functions that allow you to manipulate the 20 available memory areas. These functions include STORE, RCL (recall), SUM, PROD (product), and EXC (exchange). Trigonometric functions, Sin, Cos, Tan and other standard functions such as x^, yX, and '/x are also included. An important set of keys are those that allow the SR-52 program to make decisions. These can perform tests on program data in order to determine what the next program step might be. The SR-52 is shown in photo 1.

The SR-52 has a maximum of 224 program steps. To program the machine, you simply take the list of key sequences and push the buttons in that sequence until you are done. This is a little oversimplified, but it really isn't much more than that. If your program has been properly designed, the SR-52 will be able to do all of the finger crunching work when you put in the data. When you are satisfied with the program, you can save it on a magnetic card for future use.

notion of how the SR-52 can do the job for us. Now we have to get a little closer to the SR-52 to know exactly how to translate our flowchart to key sequences.

Our program should be easy for a nontechnical person to use. This means that entering the data should use very few steps. The program should do most of the work until the problem (invoice) is complete. To help accomplish this, the program will be written to use the optional SR-52 printer as a recorded output. The printer, shown in photo 2, in addition to providing a hard copy output, actually makes program development easier. By printing desired results as they occur we can avoid using too many of our precious 224 program steps to store and then later recall results. In some cases, programs that would be too long, more than 224 steps, without the printer can be. handled on the SR-52. Additionally, since the printer can be operated under program control, some limited data formatting can be accomplished. Last of all, the printer allows the user to verify the accuracy of the data input.

Invoice Program Development

In the invoice problem we are working on, we can see from the initial flowchart that we are going to use several basic SR-52 functions. These are data storing, recalling, multiplying, subtracting, adding and printing.

We will now expand our initial flowchart

Photo 2: Printer attachment for SR-52.

Zeroing In

What we have done up to this point has given us a logical approach to the program solution of our problem, and an overall

19

^ RUN

HOUSEKEEPING

CM5, CLR.FIX 2, HLT

"C"-- DISCOUNT

STO 03, PRT, PAP, HLT

"D"-- SHIPPING

STO

04,

HLT

Figure 2: Expanded flowchart for invoice program includes net priced items. The actual programming steps for the SR-52 are also noted within the boxes. The circled numbers indicate the order in which the program was written and refer back to the text.

V-

- QUANTITY

FIX

0 ,

STO 01, PRT,

FIX

2,

HLT

0 ©

©

0 © ©

NO

A'--GRAND TOTAL LIST ITEMS X DISCOUNT • NET

(RCL 19, PRT, X,( l-C)),PRT,-RCL 19, = , + /-, PRT, PAP, STO 19, HLT

©

YES

"A"- - OUANTITY

FIX 0, STO 01, PRT, FIX 2, HLT

"E"—NET PRICE

STO 05, PRT

"A"X"E" . LINE TOTAL

RCL A,X,B,-,PRT, SUM 19, HLT

YES yr NET >^

©

0

B'

- NET PRICE TOTAL * SHIPPING

■ INVOICE TOTAL

PAP

RCL 19, PRT, + ,RCL D

, PRT, ■

PRT, PAP, PAP,

PAP

START OVER

©

0

to include the actual steps we will ask the SR-52 to do for us. In this expanded flowchart we have added the second category of merchandise we want to price. One other design consideration that we want to include is the manner in which we will have the user input the data. The SR-52 has a set of five buttons that are labeled A, B, C, D and E. These same buttons can be set for a second use which adds five more functions labeled A', B', C', D' and E'. These buttons are called "user defined keys." Depending on the way you write the program, a given user button will do whatever you want. For our use, we will want to use these buttons to define to the program what our data means. Table 1 shows the definition we have given to these keys for this program. Looking at the work the SR-52 does when a user defined key is pushed gives you an idea of the power of the machine.

To get the invoice data into the program, the user keys in the numbers on the keyboard and presses the appropriate user defined key.

Now, we can expand our initial flowchart to what we see in figure 2. The numbers in circles adjacent to various boxes are the order in which we will write the program sequence. We will refer to these numbers in the following discussion of the new flowchart.

1. This is some of the housekeeping that any program should have. It assures you that the initial condition of the calculator or computer is what you expect it to be. Here we want to CLR (clear), CMs (clear data memories), FIX 2 (fix the decimal point of the computations to two places) and HLT (halt). We want the machine to stop and wait for us to input data.

2. In this step we are going to define key C to mean discount. We are going to STO (store) it in data memory location 03, print what we entered, advance the paper one line and HLT again.

3. Key D is defined to be the shipping amount of the order; it is stored in data memory 04. We then halt. We could have printed this value, but I chose not to because it will be used at the end of the program where, if it is the wrong amount, not much harm is done.

4. Key A is the quantity of merchan

Continued on page 152

20

HORIZON

THE COMPLETE COMPUTER

HORIZON

LookToThe North Star HORIZON Computer.

HORIZON™— a complete, high-performance microprocessor system with integrated floppy disk memory. HORIZON is attractive, professionally engineered, and ideal for business, educational and personal applications.

To begin programming in extended BASIC, merely add a CRT or hard-copy terminal. HORIZON-1 includes a Z80A processor, 16K RAM, minifloppy™ disk and 12-slot S-100 motherboard with serial terminal interface — all standard equipment.

WHAT ABOUT PERFORMANCE?

The Z80A processor operates at 4MHZ —double the power of the 8080. And our 16K RAM board lets the Z80A execute at full speed. HORIZON can load or save a 10K byte disk program in less than 2 seconds. Each diskette can store 90K bytes.

AND SOFTWARE, TOO

HORIZON includes the North Star Disk Operating System and full extended BASIC on diskette ready at power-on. Our BASIC, now in widespread use, has everything desired in a BASIC, including sequential and random disk files, formatted output, a powerful line editor, strings, machine language CALL and more.

EXPAND YOUR HORIZON

Also available—Hardware floating point board (FPB); additional 16K memory boards with parity option. Add a second disk drive and you have HORIZON-2. Economical serial and parallel I/O ports may be installed on the motherboard. Many widely available S-'KX) bus peripheral boards can be added to HORIZON

QUALITY AT THE RIGHT PRICE

HORIZON processor board, RAM, FPB and MICRO DISK SYSTEM can be bought separately for either Z80 or 8080 S-100 bus systems.

HORIZON-1 $1599 kit; $1899 assembled. HORIZON-2 $1999 kit; $2349 assembled.

16K RAM—$399 kit; $459 assembled; Parity option $39 kit; $59 assembled. FPB $259 kit; $359 assembled. Z80 board $199 kit; $259 assembled. Prices subject to change. HORIZON offered in choice of wood or blue metal cover at no extra charge.

Write for free color catalogue or visit your local computer store.

Circle 359 on inquiry card

North Star * Computers

2465 Fourth Street • Berkeley, California 94710 • [415} 549-0858

About the Cover

Photo 2.

Photo 3.

... and Some More of the Same

Photo 4.

The artwork on our cover this month and the samples found on the following pages were created by Thomas A Defanti and Guenther Tetz of the University of Illinois at Chicago Circle. The system used to create these works used a high level "Graphics Symbiosis System" (acronym: GRASS) grafted onto a PDP-11/45 computer with a Vector General 3DR display scope, a data tablet and 30 channels of analog input and output for interactive control of the programmed parameters of the display. Consider it in some sense the visual equivalent of a Moog synthesizer's audio functions. A more complete description is found in a paper entitled "The Digital Component of the Circle Graphics Habitat" which was published on pages 195 to 203 of the proceedings of the 1976 National Computer Conference (a monstrously thick book available from AFIPS, the American Federation of Information Processing Societies, 210 Summit Av, Montvale NJ 07645).

Artists DeFanti and Tetz sent in several slides of their work as part of the art contest we ran last year in the September 1976 issue of BYTE. They report that work is progressing on a microprocessor based version

Photo 5.

Photo 7.

Photo 6.

of GRASS, work which may result in some heady progress in low cost graphics art using computers.

Around the BYTE offices, we tend to think of the cover as the "aquamarine-print" of the design of a house for the inhabitants of Arcturus IV. Whether this is true or not is open to some question.

The other photographs also came to us untitled, so we list them simply as photos 1 thru 8. Why? Well, it occurred to us that a bit of informal fun (and perhaps a bit revealing as well) could be had by leaving it to readers to suggest appropriate titles. Watch the letters columns of future issues to see what comes of this request for titles."

, ' ' '

Relocatability and

the Long Branch

Robert J Borrmann PhD

Associate Professor of Electrical Engineering

Manhattan College

Riverdale NY 10471

A position independent relocatable program is a program that can be moved to any convenient place within your memory space, and executed without any changes. One of the very nice things about the Motorola 6800 instruction set is the relative addressing mode used in its branch (BRA) and branch to subroutine (BSR) instructions; instructions using this addressing mode are inherently relocatable without patching.

To illustrate relative addressing consider the 6800 instruction: 20 35 (hexadecimal). Hexadecimal 20 is the code for the branch (BRA) instruction, so 20 35 means jump to the address that is hexadecimal 35 bytes beyond the instruction which follows this branch instruction. Thus, if a program initially occupies hexadecimal locations 0080 to 0200, and includes at location 0100 the above branch instruction, this causes the processor upon encountering it to jump to location 01 37. If the program is now copied from its original location 0080 to 0200 into a new location 1580 to 1700, the branch instruction (now at location 1600) will correctly cause the processor, upon encountering it, to jump to location 1637.

Unfortunately, the 6800's branch instructions allow only one byte to be used as the relative displacement. This allows a maximum branching range of only hexadecimal +7F (+ 127 decimal) to hexadecimal —80 (-128 decimal) bytes. What do you do if you have need for longer-range branching, as is the case in larger programs? If you use the jump (JMP) or jump to subroutine (JSR) instructions, which include absolute address references, the program is no longer relocatable without modification. It loses the position independence feature which makes a generalized program read only memory possible.

One solution to the problem of writing large relocatable programs is provided by the long branch (LONGBR) and long branch to subroutine (LONGBS) subroutines described here. Although the listings show starting addresses of 278E and 276B respectively, both routines are completely independent of memory address space location. They can be used in two ways.

The first way is to incorporate both routines into your own system monitor, which presumably occupies a fixed location in your memory space. This is the way I use them. Then, to execute a long branch within a program you are developing anywhere in memory, you simply execute a jump to subroutine LONGBR, and follow the JSR LONGBR instruction by a 2 byte adder which indicates how many bytes ahead or

Listing 1: A symbolic assembly language and object code representation of the long relative branch calculation routines for the 6800 processor. The addresses for the routines are picked based on the author's systems software. Since the routines are entirely position independent, they can be relocated without any modification, provided the code does not overlap the temporary storage area for the index register (XSTOR), which is referenced absolutely. The boxes at the right of the commentary in the listing signify the contents of the stack area. The blue color identifies contents based on values present on entry to the routine, and the red color identifies contents computed during the operation of the routine.

26

Hexa- Hexadecimal decimal Address Code Label

Op Operand Commentary

Stack Area Manipulations

S

276B DF 20 LONGBS STX XSTOR [save X for later]

276 D 276E

2771

2772

2773 2775 2776

2777

2779

277A 277B

277E 2780

2782

2783

2784 2785

30 OF

276F AE 00

09 09

AF 00 31

31

AF 02

35

36 31

TSX SEI

DEX

DEX

STS INS INS

STS

TXS

APUSH PSHA INS

277D 32

EE 00 AB 01

36 34 32

A9 00

LDX ADDA

PSHA

DES

PULA ADCA

0. X

1. X

2787 36

2788 34

X :=S + 1;

[turn off maskable (IRQ) interrupts] ;

S := @X (would be return address] ;

X := X — 2 [point to location of

WBRA copy] ;

Icopy WBRA]; S := S + 2 (calculate actual return address] ;

[patch the stack] ;

I S

S := S + 2 [point stack

to WBRAL for PUL] ; A := WBRAL;

X := WBRA (point to OFFSET] ; LBA:= WBRA + OFFSET (calculate relative branch

target and insert in stack region];

A := WBRAH; [complete the sum] ;

[finish patching stack] ;

| WBRAH

J |WBRAH

|WBRAH||WBRAL||WBRAH

rWBRAHIIWBRAL|| HAH

I S

BRAHI|WBRALI RAH

] |WBRAH | |WBRAL| | RAH | [ RAL |

fOLDA"! [WBRAH \ |WBRAL | | RAH

OLDA | |WBRAH I [WBRALI \ RAH

[ QLDA | | WBRAH | | WBRAL | | RAH | |f RAL | | OLD |

I OLDA | | WBRAH | | LBAL | I RAH

I OLDA 1 [WBRAH | flSAL | | RAH

IS

[ OLDA | | WBRAH | | LBAL | | RAH

I S

[WBRAL I |~OD

I WBRAL | r~0Ti | WBRAL | [~OiJ

WBRAL OLD

I RAL | r~OLC

OLD

I RAL 1

RAL

^ s

| OLDA | (j I

I OLD I

2789

32

PULA

[restore old A];

278A

DE 20

LDX

XSTOR

(restore old XI ;

278C

0E

CLI

(reenable interrupts)

278D

39

RTS

[go to address LBA)

278E

DF 20

LONGBR STX

XSTOR

Isave X for later] ;

2790

30

TSX

[set up for

2791

DF

SEI

branch without

2792

20 E6

BRA

APUSH

return] ;

I LBAH I | LBAL |

LDA I I LBAH | |TFal [ | RAH | | RAL | | OLE

The following symbols are used for the values in the stack area:

WBRA = "would be branch address, " a 16 bit value with high order byte WBRAH and low order byte WBRAL. This is the

pointer to the relative branch OFFSET which follows the /SR to LONGBR or LONGBS. OLD = old contents of stack, unchanged by these routines.

RA = "return address, "a 16 bit value with high order byte RA H and low order byte RA L, computed by these routines. LBA = "long branch address, " a 16 bit value with high order byte LBAH and low order byte LBAL, the computed target

of the long branch to subroutine or long branch operation. OLDA = old value of the A accumulator, saved on the stack during computations.

The index (X) register and stack (S) values pointing to the stack area are noted above the content boxes in this representation.

27

behind you want to branch. For example, if you want to long branch from location 01 00 to 0345, you would need the following code:

0100 BD 27 8E 0103 02 42

JSR LONGBR

FDB $0242

The target address is computed by adding the offset (hexadecimal 0242) to the address of the byte following the JSR instruction (hexadecimal 0103):

0242 0103

0345

To execute a long branch to subroutine the procedure is similar except that you jump to subroutine LONGBS instead of LONGBR. For example, if your program is at hexadecimal location 0240 and you want to branch to a subroutine that is located at 0050, you would need the following code:

0240 BD 27 6B 0243 FE 0D

JSR LONGBS FDB $ FE0D

where as usual the target address 0050 is the sum of the offset (FE0D) and the address of the byte following the JSR instruction (0243). Upon encountering the JSR LONGBS instruction at 0240, the processor would go to LONGBS for some massaging of data on the stack, and from there would go to your subroutine at 0050. Upon entering the subroutine at 0050, it will have the same values of accumulators A and B, and index register'and stack pointer, as it had when encountering the JSR LONGBS instruction at 0240. The condition flags would in general be different, however. Upon returning from your subroutine, execution would resume with the instruction at location 0245.

When relocating a program using JSR LONGBR or JSR LONGBS instructions you would, of course, leave such instructions unchanged (assuming that your monitor incorporating the LONGBR and LONGBS routines was not itself being relocated). If the location of each long branch or long branch to subroutine call is being changed by the same amount as the target addresses, the program will work the same in the new location, just as was the case with ordinary relative branches.

The second way to use the LONGBR and LONGBS routines is to build them into the long program you are writing. While LONGBR and LONGBS are themselves relocatable, there remains the problem of

branching to these subroutines from all locations within the program that will require long branching. This branching can be accomplished by installing "stepping stones" thoughout your program which allows any location within your program to branch from "stone" to "stone," and thereby finally get to these subroutines.

To illustrate, suppose a program occupies memory locations 0200-04CF, including LONGBS at 0200 and LONGBR at 0223. Then the stepping stones might be:

027E 20 80 LBS1 BRA LONGBS 0280 20 A1 LBR1 BRA LONGBR

02FC20 80 02FE 20 80

037A20 80 037C 20 80

03F8 20 80 03 FA 20 80

0476 20 80 0478 20 80

LBS2 BRA LBS1 LBR2 BRA LBR1

LBS3 BRA LBS2 LBR3 BRA LBR2

LBS4 BRA LBS3 LBR4 BRA LBR3

LBS5 BRA LBS4 LBR5 BRA LBR4

To execute a long branch from anyplace within the program, simply execute a branch to subroutine (BSR) to the previous LBRn stepping stone. To execute a long branch to subroutine, simply execute a BSR to the previous LBSn stepping stone. These branches are then completely relocatable. (Of course this technique of stepping stones can be used directly just as well, without LONGBS or LONGBR; but one chain of stones has to be devoted to each branch target. If more than two subroutines [or branch targets] must be used, less code will be required if LONGBS [or LONGBR] is used.)

How It Works

The operation of the LONGBS subroutine can be understood by a study of the program listing and comments shown in figure 1, The entries at the extreme right of the listing show the contents of the stack

28

region of memory at the conclusion of each step, which changes the stack contents or the pointers (index register X or stack pointer S) used to keep track of position within the stack.

To help understand the operation of the program let us consider an example in which the processor encounters the following instruction sequence:

0736 BD 27 6B 0739 FC 1A 073B 86 02

JSR LONGBS FDB $FC1A LDA A #$02

In executing the JSR instruction at 0736, the processor places the address 0739 (which would ordinarily be the return address) onto the stack, and jumps to 276B. However, 0739 as used here is not the actual return address, since it is the location of the 2 byte offset which will be used to form the actual target address. Thus, 0739 is more properly called the "would-be" return address (WBRA). Upon entering the subroutine LONGBS, then, the stack looks as follows:

I WBRAHl i WBRAL.1 I OLD |

(07)

(39)

where SP with the arrow denotes the position in the stack being pointed to by the stack pointer, WBRAH is the high order byte of WBRA, WBRAL is the low order byte of WBRA, and OLD denotes stack contents before executing the JSR LONGBS instruction; these "old" contents of the stack will not be disturbed.

The first line of subroutine LONGBS stores the values of IX away for later retrieval. I happened to use low core location 0020 to 0021 for this purpose, but any available programmable memory location can be used instead. (You may prefer to use a spare 2 byte location in the programmable memory devoted to MIKBUG in many systems.) The next six lines of code transfer to IX the burden of keeping track of our stack location, while the stack pointer itself is used to copy the would-be return address into two additional stack locations. Since we are fooling with the stack pointer, it is necessary to prevent interrupts from occurring at this time. The SEI (set interrupt mask) locks out the maskable interrupts until further notice. We now have the following stack picture:

IX

| WBRAH IfWBRAL l| WBRAH ifwBRAL | |OLD ]

(07) (39) (07) (39)

The next three lines (2775-2777) correct the would-be return address to the actual return address 073B:

IX

I

| wbrah ) fwBRAL J | rah Ural Hold I

(07)

(39) (07) (3B)

In line 2779 the stack pointer is returned to its usual role of keeping track of position in the stack. Since accumulator A is to be used for some data manipulation in subsequent instructions, its original value (the value it had when JSR LONGBS was executed) is stashed away on the stack for later retrieval. After executing this instruction at PSHA the stack appearance is:

SP

4.

| | PRIG A | [WBRAH |[ WBRAL | |RAH |

I

(07)

(39)

(07) (3B)

The next ten lines (277B to 2787) cause the would-be return address WBRA to be increased by the value of the 2 byte adder; the result is the target address, denoted by LBAH (long branch address high order byte) and LBAL (long branch address low order byte).

The appearance of the stack now is:

SP

i

[]or7ga] [lbah] [lbal][rah] [ral] [oldJ

(03) (53) (07) (3B)

The orginal values of accumulator A and of index register IX are now retrieved, interrupts are reenabled, and the processor jumps to 0353 by executing the RTS (return from subroutine instruction). Notice that because of the manipulation of the stack during subroutine LONGBS, the processor does not return to the program section which called it; instead it jumps to the target address (0353 in this case), because the effect of executing the RTS instruction is to place into the program counter the 2 byte address pulled from the top of the stack.

When the subroutine which begins at 0353 has been finished, the processor executes the RTS instruction which ends it, and this returns the processor to the actual return address 073B.

The operation of the long branch routine LONG BR is similar, except that the RAH and RAL bytes are not needed or wanted. Thus, the initial part of LONGBS which duplicated the value of WBRA on the stack is bypassed."

29

Languages Fonum

Languages Forum is a feature which is intended as an interactive dialog about the design and implementation of languages for personal computing. Statements and opinions submitted to this forum can be on any subject relevant to its purpose of fostering discussion and communication among BYTE readers on the subject of languages. We ask that all correspondents supply their full names and addresses to be printed with their commentaries. We also ask that correspondents supply their telephone numbers, which will be printed unless we are explicitly asked to omit them.

Defining LIL, a Little Interpretive Language

LOW MEMORY

7S

SOFTWARE STACK

HIGH MEMORY

code

C8 (hex) /RADL \RADH /RADL \RADH

OAR

OAR /RADL \RADH

OAR

Figure J: How memory is arranged in the LIL language.

= control byte /reference address of \descriptor of COUNT /reference address of \descriptor of numerical constant 1

offset to address of routine "+"

offset to address of routine "INTO" /reference address of \descriptor of COUNT

offset to address of routine ";"

reference table

DATA! data for numerical constant 1 ->-DES J descriptor for numerical constant 1 (integer 1 byte) _/DADH~| /data address \DADL Mor COUNT

DES J descriptor of variable COUNT (say integer 3 bytes)

software stack - DATA-! DATA data for COUNT

DATA J

Listing 1: Linkages for the source statement COUNT +1 INTO COUNT; in the LIL language.

COUNT 1

/

/

Jack Cluff

34-57 73rd St

Jackson Heights NY 11372

It is with great interest that I read the discussion by Donald J Stavely in the April 1977 Technical Forum. Mr Stavely has articulated a concept in which I have been greatly interested for the past several months, and in which I have invested a certain amount of work.

LIL, Little Interpretive Language, is a pseudocompiling language whose compiled code could be run on any microcomputer which has a LIL loader and a LIL interpreter. LIL is still in a state of flux, but may be spoken of in general terms. It is to consist of three separate programs: the compiler, the loader and the interpreter.

The compiler is to accept character keyboard input and build three structures: the symbol table (to be discarded at the completion of compilation) which contains the names of objects, the reference table which contains descriptors of objects and the memory addresses at which those objects may be found, and the compiled code which contains 2 byte descriptor addresses and 1 byte offsets to a table of function routines used by the interpreter.

The loader is to load reference tables and code into the proper areas of memory for processing by the interpreter, and is to modify all initial linkages established by the compiler so as to agree with the new positions of reference tables and code.

The interpreter is to interpret only addresses of descriptors and offsets to function routines. The interpreter is to allocate memory for data storage on a software stack; the hardware stack is to be used for data manipulation such as arithmetic functions.

The linkage for the source statement:

COUNT+1 INTO COUNT;

can be represented as jn listing 1.

Control bytes serve the useful purpose of defining which of the following units of code are address pairs and which are singular offsets. The control byte in the previous example links to the code as follows:

\

I

0

'INTO" COUNT

X X (X = don't care)

Continued on page 181

30

The most cost effective products for your microcomputer.

RM64 64K bytes

THE EXTENSYS RM64 MEMORY BOARD provides the most cost effective system memory found in the industry. The RM64 provides this because of our low cost per byte when

compared to our competition plus the increased reliability of a single board over multiple boards containing less memory. The board is S-100 bus compatible making it usable in over a dozen different microcomputer systems including ALTAIR and IMSAI. The RM64 is available in three configurations: 32K, 48K or 64K bytes of memory all on ONE board. The board is completely assembled, checked out and burned in for at least 50 hours prior to shipment. This complete testing procedure allows Extensys to provide a one year warranty on parts, labor and materials (assuming no misuse of the board occurs).

On board hardware is provided for: ■ Individual memory bank address selection in 8K byte

increments;

- Complete dynamic refresh logic without loss of processing efficiency while programs are running;

- Board select logic which allows more than one 64K byte board per system;

- S-100 bus compatibility including on-board voltage regulator;

- Memory overlap which allows memory sharing the same address space to coexist in the same system;

Write protection in 16K blocks; and

Fully socketed for 64K, allowing 32K and 48K versions to be upgraded at a later date.

Delivery of the RM64 is 15 to 30 DAYS upon receipt of order. Prices for the RM64 include shipping and handling prepaid in the continental United States.

EXTENSYS Corporation is also announcing several other new highly cost effective products. These include a total floppy disk system based around File I/O board and a multiprocessor operating system. The other product, which interfaces with the RM64 memory board to create a megabyte or more of memory and adds full DMA capability to the File I/O board, is a Board Select/DMA board. Both of these products are S-100 compatible.

Circle 360 on inquiry card.

Contact your local computer store or order directly from EXTENSYS

Please place my order for the following: QTY DESCRIPTION

RM64-32K byte board @ $ 895 ea.

RM64-48K byte board 9 $1195 ea.

RM64-64K byte board @ S1495 ea.

j extensys

iount wnaaawcorp

B-4

Subtotal

California residents add 6'/i% tax

TOTAL

Shipping and handling prepaid in continental United States

NAME

ADDRESSCITY

Jcorporation 592 Weddell Drive Sunnyvale, California 94086 (408) 734-1525

Please check method of payment:

Check Enclosed

BankAmericard No

expiration date

Master Charge No.

— expiration date

PHONE (INCLUDE AREA CODE).

Continued from page 12

and hazardous 117 VAC power trace running long distances on a power board. The big boys have their equipment tested and listed by UL. It's a necessity if they expect commercial sales. If personal computer manufacturers want the kind of mass market you've been predicting in BYTE, they will have to follow suit. This stuff moves in interstate commerce, and if vendors sell a shock or fire hazard to some naive user, they can expect to be spanked by the Feds, something that tends to be a corporate hurt, and will damage this fledgling part of the computer industry. All the manufacturers who haven't, should clean up their acts before the Feds force something distasteful on them.

William R Hamblen 946 Evans Rd Nashville TN 37204

A NEW SUBSCRIBER COMMENTS

How long have you been publishing BYTE? Are any back issues available, or reprints of articles in back issues? Do you publish an index to previous issues?

Could you recommend a book, or books, that are readily available, or list their sources on microcomputer soft and hardware, particularly software (from machine language level to high level programming languages)?

Daniel Owen Jenkins VIII Box 201 RD#I Clinton Grv Weare NH 03281

We have been publishing since September 1975. No back issues are available; however, The Best of BYTE Volume I at $12.95 contains most of the editorial materials from issues 1 to 12. An index is available for Volume I: send a self-addressed stamped envelope.

FASTER MULTIPLY?

PRODUCTS NEEDED

The following are some things we think are needed in this field:

1. A real time clock-calendar board for the S-100 bus with an 10 port and recharging circuit which would display time, date and day of week on video monitor or other peripheral. Calendar would be at least 200 year. Would accept input to start clock or reset it, such as a 60 Hz line signal, or a time signal from WWV, or a manual signal. Could be programmed (EPROM) to exhibit holidays and special dates or times, or emit a signal to initiate some action at a present time and date. Would be designed to be highly resistant to transients in power supply. Would have 12 hour AM-PM or 24 hour switch selectable option, and a local standard time or daylight savings time or Greenwich time switch selection feature.

2. An ASCII-EBCDIC converter board for the S-100 bus.

3. A generalized converter board for the S-100 bus, under software control, which could enable the user to readily recode keyboards, printers, and video displays with no more than a few keystrokes. Could be used as an ASCIIEBCDIC converter, or could convert a keyboard from a standard QWERTY keyboard into a Dvorak Standard keyboard with a single command, or convert an ASCII into an APL or other special character set keyboard.

4. A convention to standardize the bus for the coming 9900 family of 16 bit processors before different buses proliferate.

5. A directory or clearinghouse of resources in this field, so that persons wishing to contact others doing or able to do things of a certain kind could do so.

Jon D Roland Micro Mart 1015 Navarro San Antonio TX 78205

ENTRY: A=multiplier; E=multiplicand

ENTRY: A, E, C=unchanged; B, D =0; HL=product

Address

Op Operand

Label

Mnemonic

Commentary

006000

006 010

MVI B 010

Set B register for count

006002

041 000 000

LXI H 000000

Clear product registers

006005

124 ■

MOV D, H

Also clear D

006006

007

LOOP RLC

Rotate left

006007

322 013 006

JNC SKIP

Skip on zero bit

006012

031

DAD D

If nonzero, add multiplier

006013

005

SKIP

DCR B

Check counter

006014

310

RZ

Exit if last time

006015

051

DAD H

Arithmetic left shift of product

006016

303 006 006

JMP LOOP

Repeat

The quick and simple 1x1 byte multiplication routine of Christopher Glaeser (July 1977 BYTE, page 142) can be made even quicker and simpler by shifting the A register left instead of right. Using the RLC command instead of RAR preserves the value in the A register. The E register is also not altered. Thus, both multiplier and multiplicand

are unchanged upon exit from the subroutine. This is an advantage in manipulating arrays, etc.

See box for register status.

The whole thing occupies only 16 bytes.

Leonard Morgenstern POB 81

Rheem Valley CA 94570

COMMENTS ON SELECTRIC IO INTERFACING

As one who has designed an interface for both input and output between a Selectric 731 and my Z-80 system, I was interested to read Dan Fylstra's article "Interfacing the IBM Selectric Keyboard Printer," June 1977 BYTE, page 46. Dan is to be complimented on a very good technical description, especially when compared with the naive and often just plain inaccurate information which has been published recently on this subject.

There are several supplementary points which may be of interest to BYTE readers:

1. Dan gives an excellent description of the differences between a BCD and Correspondence coded 731 or 735. But there are three distinct versions of the Selectric which have been thought suitable for use with a computer and the differences between them are also worth noting:

a) The office Selectric is a light duty mechanism in the same sense in which the term is used for the Teletype Model 33. It won't fail for a long time but the office Selectric is less rugged mechanically than the "heavy duty" mechanisms designed for use as computer IO devices. In my opinion, little reason exists to attempt to convert an office Selectric for computer use since a mechanism designed specifically for that purpose is available at a comparable price.

b) The heavy duty Selectric IO mechanism was marketed by IBM in two basic forms. The Selectric IO mechanism itself (without any magnets, switches, wiring harness or covers) was made available to original equipment manufacturers (OEMs) to be incorporated into non-IBM terminals such as the Dura, Itel, Anderson Jacobson, Datel, etc. The designation for these mechanisms was 745 (15 inch carriage). They are often marked SER (meaning special engineering request) to denote modifications made by IBM at the manufacturing firm's request. These OEMs installed their own magnets, switches and interface electronics to achieve their own individual products. Many of these are now available on the surplus market. I have also seen some of these IO mechanisms which have been partially outfitted with IBM magnets for use as output printers only. Where OEM mechanisms have been used in a non-IBM product, IBM will service the Selectric mechanism only and not the magnets, switches or electronics.

c) The second basic form of the heavy-duty Selectric IO mechanism is the one which IBM outfitted for use as an electronically driven IO device by installing its

32

A STAR IS BORN!

MPI Flexible Disk Series B51 is a new generation of 5]/4" flexible disk products employing a 'band driven' head positioner providing very fast, highly accurate access eliminating 'hysterisis' A new generation of floppy's is born featuring:

Data Integrity Using the 'band drive' concept for precise head positioning, better error rates are realized. Decreased mechanical wear guarantees diskette interchangeability for the life of the device.

Reliability The Series B51 uses 30% fewer components than competitive devices and together with the low power Schottky TTL inherently provides you the user 10,000 hours MTBF and no preventative maintenance.

Low Cost Storage The Series B51 is very small. Its dimensions are 3.25 x 5.55 x 8.0 inches and weighs only 3 lbs. Using double density encoding techniques the device can store up to 250K Bytes (unformatted). Single quantity price is $320.

The S100 Bus Controller Available to the hobbyist is the R100D intelligent double density controller compatible in architecture to the S100 bus and the Series B51 or its larger family member the Series B82. It features board microprocessor, DMA, simple macro commands, multiple sector transfer, formatting, up to 4 drive control, and requires no overhead software. Single quantity price is $299. Also available is a complete system featuring single or dual drives, power supply, cabinet and a S100 Controller with a disk operating system. Single Drive System $699. Dual Drive System $999.

MPI is your Company Follow the 'star' and you will get the best price/performance buy in the market. For further information or dealer/distributor packages, call or write Keith Ullal, Micro Peripherals, Inc., 8724 Woodley Avenue, Sepulveda, California, 91343 (213) 894-4076.

Bank of Americard MasterCharge Personal Check Accepted

Circle 397 on inquiry card.

fllPtO

MICRO PERIPHERALS INC.

own magnets and switches. These are the Models 73, 731 and 735 (hereafter "73X") which are out of production in this country; I'm told that they are still produced in Europe. The 73Xs were used as the 360 console device, in MTSTs (with some wiring modifications) and were available to those who wanted a complete unit (less interface electronics) which IBM would service. Current maintenance agreement rates for 73Xs are about $150 a year. The 73Xs came in three flavors: BCD, Correspondence and MTST.

2. In considering which of the three kinds of Selectrics to use with a personal computer, the most important issue is feedback. Each time a character is sent to a Selectric mechanism (either by energizing magnets or by pressing a key), the cycle clutch is released; at the end of the print cycle, this clutch reengages to halt the cycle shaft after 180° of rotation. If a substantial volume of printing is to be done on a Selectric, the wear on this clutch becomes a serious problem. The only satisfactory solution is to send the next character at a time during the print cycle when the current character has been "processed" by the mechanism but before the cycle clutch has reengaged. IBM calls this the "closed loop" mode of operation. Characters which are sent to the Selectric during this 3 ms window operate the mechanism in its so-called "repeat cycle" in which the cycle clutch does not reengage and the maximum character speed is obtained. The timing required to operate in this way must be derived from switches which sense the state of rotation of the cycle shaft, the operational shaft and several other mechanism states such as whether a carriage return or tab operation has been completed. The time interval between successive characters or machine operations depends on many factors and is not constant. A different interval is required not only for each character and each machine operation, but these intervals vary with the age and condition of the individual mechanism.

There are two consequences of driving a Selectric mechanism without this feedback system: the speed of output is considerably reduced, in most cases below 10 characters per second because worst case timing delays must be introduced after each character or machine operation; and wear on the mechanism increases in proportion to the volume of output. On these points, IBM comments:

Feedback contacts are timed to permit initiation of a "next cycle" prior to the end of the "current cycle. " This avoids completely stopping the machine between cycles and insures optimum hardware longevity by reducing the frequency of engagement and disengagement (under full power) of the IO mechanical clutches. . . .maximum speed,

reliability and longevity is possible only with [the closed loop] mode of operation. . . .the 10 should receive commands relative to machine degrees [of shaft rotation]. Reliable operation CANNOT [emphasis in original] be guaranteed when an OPEN LOOP mode of operation is employed. . . .occasional loss of a machine cycle is inherent in an open loop mode of operation. (Service Manual: Selectric IO Typewriter, IBM Form # 241-5737-0, July 1973).

3. There is a great deal of confusion concerning the existence of a "print" magnet. Some OEMs have installed a magnet with this function, but the 73Xs don't have one. Dan correctly states that the cycle clutch is released whenever any of the magnet armatures is pulled down. But he then states "the trip mechanism is connected to a seventh magnet called 'check'." He should have said "also connected." The rule for 73Xs is that whenever any of the seven magnets is energized, a print cycle will occur. Energizing only the "check" magnet will initiate a print cycle without rotate or tilt, printing the home position characters.

4. The only piece of serious misinformation in Dan's article concerns his untested suggestion for closed loop operation. It's close but "no cigar"! Dan suggests generating a debounced TTL level signal from the switches connected between a and x (normally closed) and b and x (normally open) on the 50 pin plug. The switches connected in series this way are C2, C3, C4, C5 and C6. Dan correctly states that the magnets should be deenergized when the NO side makes and that the next character or machine operation should be initiated when the NC side remakes. But the carriage return and tab interlock contacts, which signal the longer (and variable) times required to complete those operations, have been left out of the chain! The correct procedure is to connect a to d externally (at the 50 pin plug) and use Y instead as the NC side. In addition, the figure 9 description of a debouncing circuit should not ignore the IBM specified current through the switches (10 mA @ 10 V minimum) which keeps the contacts clean.

5. Those who attempt the input side of 73X interfacing should know that there is one aspect of the IBM specifications which should not be followed (all else should definitely be respected). IBM specifies sampling of the character transmit contacts on the making of the normally open side of C1. This works fine when sampling means using the signals to switch relays (eg: in the console of the MTST unit). Typical closing time for these relays is 10 ms and, since C1 gates the common voltage onto the transmit contacts for only 15 ms, it is important to begin switching the relays at the earliest possible time. Furthermore, contact bounce is not important in that

34

TI Distributors

ALABAMA: Huntsville, Hall-Mark/Hunlsville (205) 837-8700.

ARIZONA: Phoenix, Kierulll Electronics (602) 243-4101: R V. Weatherlord (602) 272-7144: Tempo, G. S. Marshall (602) 968-6181.

CALIFORNIA: Anaheim, R. V Weatherlord (714) 633-9633: Canoga Park, G. S. Marshall (213) 999-5001; El Monte, G. S. Marshall (213) 686-0141: El Serjundo, TI Supply (213) 973-2571; Glendale, R. V. Weatherlord (213) 849-3451; Goleta. RPS, Inc. (805) 964-6823; Irvine, Cramer/Los Angeles (714) 979-3000. (213) 771-8300; G. S. Marshall (714) 556-6400; Los Angeles, Kierulll Electronics (213) 685-5511; RPS. Inc. (213 ) 748-1271; Mountain View, Time Electronics (408) 965-8000; Palo Alto, Kierulll Electronics (415) 9686292; Pomona, R. V. Weatherlord (714) 623-1261; San Diego, Cramer/San Diego (714) 565-1881: Kierulll Electronics (714) 2782112; G. S. Marshall (714) 278-6350; RPS Inc. (714) 292-5611: R. V. Weatherlord (7141 278-7400; Sunnyvale, Cramer/San Francisco (408) 739-3011; G. S. Marshall (408) 732-1100; TI Supply (408) 732-5555; Torrance. Time Electronics (213) 320-0880; Woodland Hills, JAC0 (213) 884-4560.

COLORADO: Denver, Cramer/Denver (303) 758-2100. Kierulil Electronics (303) 371-6500; Englewood, R V. Weatliertord (303) 761-5432.

CONNECTICUT: Hamden, Arrow Electronics (203) 248-3801, North Haven, Cramer/Connecticut (203) 239-5641; Orange, Milgray/ Connecticut (203) 795-0714.

FLORIDA: Clearwater, Diplomat/Southland (813) 443-4514; Fl. Lauderdale, Arrow Electronics (305) 776-7790; Hall-Mark/Miami (305) 971-9280; Hollywood, Cramer/Hollywood (305) 923-8181; Orlando, Cramer/Orlando (305) 894-1511; Hall-Mark/Orlando (305) 855-4020; Winter Park, Milgray Electronics (305) 647-5747.

GEORGIA: Norcross, Cramer/Atlanta (404) 448-9050

ILLINOIS: Arlington Heights.TI Supply (312) 640-2964; ElkGrove, Hall-Mark/Chicago (312) 437-8800; Kierultf Electronics (312) 6400200; Chicago, Newark Electronics (312) 638-4411; Ml. Prospect,

Cramer/Chicago (312) 593-8230.

INDIANA: Ft. Wayne, Ft Wayne Electronics (219) 423-3422. Indianapolis, Graham Electronics (317) 634-8202.

IOWA: Cedar Rapids, Decco (319) 365-7551.

KANSAS: Shawnee Mission, Hall-Mark/Kansas City (91 3 ) 8 8 8-4747

MASSACHUSETTS: Billerica, Kierulll Electronics (617) 667-8331; Newton, Cramer/Newton (617) 969-7700; Waltham, TI Supply (617) 890-0510; Wohurn, Arrow Electronics (617) 933-8130

MARYLAND: Baltimore, Arrow Electronics (202) 737-1700; HallMark/Baltimore (301) 796-9300; Columbia, Technico (301) 4612200; Gailhersburg, Cramer/Washington (301) 948-0110; Kierulll Electronics (301) 948-0250; Hyattsville, Milgray/Washington (301) 459-2222.

MICHIGAN: Detroit, Newark Electronics (313) 967-0600, Wyoming. Newark Electronics (616) 241-6681.

MINNESOTA: Bloomington. Arrow Electronics (612) 888-5522: Edina, Cramer/Minnesota (612) 835-7811.

MISSOURI: Earth City, Hall-Mark/St Louis (314) 291-5350; Kansas City, LCOMP-Kansas City (816) 221-2400; SI. Louis, LC0MPSt. Louis (314) 647-5505.

NEW HAMPSHIRE: Manchester, Arrow Electronics (603) 668-6968. NEW JERSEY: Camden, General Radio Supply (609) 964-8560; Cherry Hill, Cramer/Pennsylvania (215) 923-5950, (609) 424-5993; Milgray/Delaware Valley (609) 424-1300, (215) 228-2000; Clark, TI Supply (201) 382-6400; Clilton, Wilshire Electronics (201) 3401900; Little Falls, Cramer/New Jersey (201) 785-4300; Moorestown, Arrow Electronics (609) 235-1900; Ruthertord, Kierullf Electronics (201) 935-2120; Saddlehrook, Arrow Electronics (201) 797-5800.

NEW MEXICO: Albuquerque, Cramer/NewMexico (505) 243-4566.

NEW YORK: East Syracuse. Cramer/Syracuse (315) 437-6671. Endwell, Wilshire Electronics (607) 754-1570; Farmingdale, Arrow Electronics (516) 694-6800; Hicksville. Kierulll Electronics (516) 433-5530; Fishkill, Arrow Electronics (914) 896-7530; Freeport, Milgray Electronics (516) 546-6000. (201) 432-4300; Hauppauge, Cramer/Long Island (516) 231-5600; JACO (516) 273-1234; Rochester, Cramer/Rochester (716) 275-0300; Rochester Radio Supply (716) 454-7800; Wilshire Electronics (716) 442-9560. NORTH CAROLINA: Raleigh, Hall-Mark/Raleigh (919) 832-4465; Winston-Salem, Cramer/Winston-Salem (919) 725-8711.

OHIO: Cleveland, Arrow Electronics (216) 464-2000; Cramer/ Cleveland (216) 248-8400; Columbus, Hall-Mark/Ohio (614) 8461882; Dayton, ESC0 Electronics (513) 226-1133; Kettering. Arrow Electronics (513) 253-9176.

OKLAHOMA: Tulsa, Hall-Mark/Tulsa (918) 835-8458; TI Supply (918) 582-8272.

PENNSYLVANIA: Huntingdon Valley. Hall-Mark/Philadelphia (215) 355-7300.

TEXAS: Austin, Hall-Mark/Austin (512) 837-2814; Dallas, Hall-Mark/ Dallas (214) 231-6111: TI Supply (214) 238-6821; Houston. Harrison Equipment (713) 652-4700; TI Supply (713) 776-6511; R. V Weatherlord (713) 688-7406.

UTAH: Salt Lake City, Oiplomat/Altaland (B01) 486-7227; Standard Supply (801)486-3371

VIRGINIA: Roanoke, Technico (703) 563-4975.

WASHINGTON: Seattle, Almac/Stroum Electronics (206) 763-2300; Cramer/Seattle (206) 575-0907; Kierultl Electronics (206) 575-4420,

WISCONSIN: Oak Creek, Arrow Electronics (414) 764-6600, West AIMS, Hall-Mark/Milwaukee (414) 476-1270.

CANADA: Calgary, Cam Gard Supply (403) 287-0520; Downsview, CESC0 Electronics (416) 661-0220; Zentronics (416) 635-2822. Edmonton, Cam Gard Supply (403) 426-1805; Halitax, Cam Gard Supply (902) 454-8581; Kamloops, Cam Gard Supply (604) 3723338; Moncton, Cam Gard Supply (506) 855-2200; Montreal, CESCO Electronics (514) 735-5511; Future Electronics (514) 7355775; Zentronics (514) 735-5361: Ottawa, CESCO Electronics (613) 729-5118; Future Electronics (613) 232-7757: Zentronics (613) 238-6411; Quebec City. CESCO Electronics (418) 524-4641; Regina, Cam Gard Supply (306) 525-1317; Rexdals, Future Electronics (416) 677-7820; Saskatoon, Cam Gard Supply (306) 652-6424; Vancouver, Cam Gard Supply (604) 291-1441; Winnipeg, Cam Gard Supply (204) 786-8481.

Circle 362 on inquiry card.

Tfcxas Instruments

makes

MOS EPROMs

even more affordable.

TMS 2708 now $21.50*

The industry standard.

TMS 27L08 now $26.15*

The low power 8K.

TMS 2716 now $36.90*

The 2708 times two.

*100-piece prices

Remember a few months ago when EPROMs were expensive and hard to get? Due to TPs leadership they have become available microcomputer building blocks.

Prices have dropped dramatically; availability is excellent. Credit TPs high-yield, high-volume production.

TPs highly cost effective EPROMs feature a rugged, high-integrity ceramic package with sturdy goldplated pins to withstand the repeated handling and insertions associated with reprogramming. And a goldalloy-sealed lid for superior hermeticity.

TI offers a choice of three production EPROMs-all from stock.

• TMS 2708. The industry standard 8K EPROM. Fully TTL compatible.

• TMS 27L08. The industry first low power 8K EPROM fully compatible with the 2708. But less than onehalf the power dissipation and 10% power supply tolerance.

• TMS 2716. A 2708 times two. Twice the memory (16K) in the same space. An economical plug-in upgrade for 2708s. And TPs 16K 2716 uses less power than a single 2708. To order the affordable

EPROMs, call your nearest authorized TI distributor listed to the left.

9

Texas Instruments

©1977 Texas Instruments Incorporated

INCORPORATED

93188A

Circle 362 on inquiry card.

application. Even though you may debounce the transmit contacts, I would recommend waiting the necessary 3 to 5 ms until the bounce from the making of CI disappears before latching the state of the transmit contacts.

I am currently considering whether there is sufficient interest in a complete, plug-in-and-go IO interface to the 73X to warrant production of my design which meets all IBM specifications. I would offer a completely assembled and tested interrupt driven card for the S-100 bus with on card PROM for driver software, cable with connectors, and power supply for either the 24 V or 48 V magnets. The price would have to be $395 for the card (including software in the PROM) and about $100 for the 50 wire cable and power supply. I would appreciate receiving indications of interest from readers who would find such an interface attractive.

Beardsley Ruml II 3045 Ordway St NW Washington DC 20008

CLOSED LOOP SELECTRIC MORE COMMENTS

This letter is in reference to Mr Fylstra's article on interfacing to Selectrics, which appeared in your June 1977 issue, page 46. Although the methods he is suggesting are simple, they have several serious drawbacks.

First, he does not use the keyboard lock mechanism during the time that the Selectric is under computer control. This is important to prevent accidental keyboard inputs which may very easily cause damage to the machine.

Also he suggests using a 5 V supply driving TTL for interfacing the contacts. IBM specifies a minimum voltage and current of 10 V at 10 mA for reliable operation of these contacts.

Lastly the method of driving he suggests is a form of open loop mode. Since the Selectric is not a synchronous device, output rates are only nominal. The importance of operating the machine in a closed loop mode cannot be overstressed. This is the only method recommended by IBM. Using the closed loop mode not only minimizes wear and tear on the Selectric but also provides output at the maximum rate of the machine.

I speak from experience, since our firm is in the business of manufacturing various forms of interfaces to Selectric mechanisms.

J ohn Schwartz IBEX

1010 Morse Av, Suite 5 Sunnyvale CA 94086

APL CHARACTER GENERATORS ARE AVAILABLE

I have noticed various letters in your letters column from APL enthusiasts. Our firm produces a CRT terminal with an APL character font and keyboard (see June 1977 BYTE, page 24). The APL character generator is a small piggyback board which can directly replace a 2513 and plug into its socket. (Bit 7 is wired through normally unused pin 23 of the 2513.) On the keyboard we use decals mounting on the front keycap face. These decals are white on clear, of excellent quality and durability.

We would be pleased to make these items available directly or through distribution. Interested persons may write me directly.

M C Volker President, Volker-Craig Ltd Waterloo Ontario N2J 321 CANADA

A NOTE FROM A EUROPEAN READER

I had my computer shipped air freight, and when it arrived, I found a very simple 50 Hz modification for my Southwest Technical Products CT1024. I cut the 60 Hz reference line. I assume this does bad things to a phase locked loop somewhere (my documentation isn't here either) but after it warms up it seems to work fine.

Bruce Turrie Riverside Tower Esmoreitlaan 3 POB 3, Apt 68, B-2050 Antwerpen BELGIUM

USING ADCs FOR TEST INSTRUMENTS?

I imagine this could have a great deal of interest to your readers. If you cannot develop a solution to this problem maybe your readers can.

I am working on a research project for Scott Community College. I am working on a hardware and software scheme that will make a color TV into an oscilloscope. I am using the TV Dazzler and the D+7A interfaces along with the IMSAI 8080. I want to do the rest of the task through software. I am having problems designing the software needed in conjunction with these interfaces. Any help that can be provided will be greatly appreciated. It need only cover audio frequencies. It need have no extended sensitivity nor multicolored display.

John Orvis 2125 Olympia Dr Bettendorf IA 52722

A good idea for an article!

The C0MPUTALKER Model CT-1 optimizes the trade-off between low data rate speech and directly digitized speech. Low data rate speech relies on canned definitions for the sound of each phoneme, which produces mechanical sounding speech. Digitized speech, while remaining faithful to the original sound, requires 10K to 20K bytes per second of storage and is inflexible to phonetic manipulation. With the Model CT-1, the sounds are defined in real time under software control. Parameters which represent the phonetic structure of human speech are transmitted to the CT-1 at a rate of 500 to 900 bytes per second. This allows the production of highly intelligible and quite natural sounding speech output. Speaker characteristics and language or dialect variations are retained in the output. The CT-1 can also be operated in a low data rate mode using phoneme definitions contained in the CSR1 Synthesis-byRule software package. The COMPUTALKER speech synthesis system, used in this way, has the advantage that the software driver can easily be modified to keep the naturalness and intelligibility of the speech output up to date with the constantly evolving state of the art of rule governed speech.

COMPUTALKER

AMPLIFIER *

SPEAK "KAAMPYUWTAOLKER"

MODEL CT-1 SYNTHESIZER 395.00 CSR1 SOFTWARE SYSTEM 35.00 DEMONSTRATION CASSETTE 2.95

CALIF fiESIOENTS ADD 6"<, SALES TAX

COMPUTALKER CONSULTANTS

Box 1951-B, Santa Monica, CA 90406

CALIFORNIA A-VIDD Electronics Long Beach [213] 598 0444 Byte Shop ot Lawndale Lawndale (213] 371-2421 Byte Shop of San Diego San Diego [714] 565 8008 Byte Shop ol Santa Clara Santa Clara [408] 249-4221 Computer Center Costa Mesa [714) 646-0221 Computer Mart Orange [714] 633 1222 Computer Store Santa Monica [213] 451-0713

GEORGIA: Computer Systemcenter Atlanta [404] 231-1691

INDIANA: Data Domain

Bloomington [812] 334-3607 KANSAS, MISSOURI: Micro-Corn, Inc.

Kansas City, MO [816] 333-8383 MICHIGAN:

Computer Mart ol Royal Oak Royal Oak [313] 576-0900 Computer Store ol Ann Arbor Ann Arbor [313] 995-7616 NEW JERSEY Computer Mart of New Jersey Iselin [201] 283-0600 Hobo ken Computer Works Hoboken [201] 420-1644

NORTH CAROLINA: Byte Shop of Raleigh Raleigh

OREGON: Byte Shop of Portland Portland [503] 223-3496

VIRGINIA, WASHINGTON D C Roberts Information Services, Inc. Fairfax, VA [703] 560-7888

AUSTRIA:

MargreiterGMBH

A 1070 Wien 10222] 96 15 65 CANADA:

The Computer Place

Toronto [416J598-0262

Telex 06-22634

ENGLAND: Compelec Electronics 310 Kilburn Highroad London NW6

FRANCE: HUGUESGOSSET 15 Rue de Franqueville 75016 Paris

GERMANY: Dr. Peter Vizenetr Datameg Div. of Megatron KG Munich [089] 46 50 66

JAPAN: Kazuhiko Nishi Pax Electronica

Shibuya-ku. Tokyo [03] 370 2751

Circle 363 on inquiry card.

36

SELF-MODIFYING CODE

The letter "A Critique of SelfModifying Code" in the June 1977 issue of BYTE will serve only, I predict, to discourage some readers from sending material to BYTE for publication. The BARC routines, applied within the context for which they were intended are certainly worthwhile.

Phil Rynes 6824 Roberts Dr Woodridge IL 60515

NEED VA APPROVED COURSES?

Some time ago one of your readers wrote that he would be interested in taking a VA approved course in which the student would build a microcomputer. This subject has also been of interest to me since I am presently taking a course in digital electronics at The National Radio Institute in Washington DC. NRI is one of the leading VA approved correspondence schools in the country.

I wrote the president of NRI, J F Thompson, concerning the subject of microcomputers. The attached letter is the warm response I received to my inquiry. I thought some of your readers would be interested.

Robert N Smith 1617 Grunther Av Rockville MD 20851

McGraw-Hill Continuing Education Center

3939 Wisconsin Avenue NW Wasnmgtor. D C 20016 Teiepnonc 202/244-1600

O-.cc o! 'he President

January 5, 1977

Mr. Robert N. Smith 1617 Gruenther Avenue Rockville, MD 20851

Dear Mr. Smith:

I received your letter of December 19, 1976, and appreciate your interest in whether NRI is considering a course in Microprocessing with microcomputer kits. The answer simply is "yes". We believe that a technology program on microprocessors will help the computer industry bridge the shortage of service technicians.

Our thoughts at this time are to expand the Digital Computer Electronics course to include microprocessing and kit hardware. The microprocessor breadboarding kit will contain power supplies, a clock oscillator, a programmable read only memory, LED indicators, and control switches. When used in the course, it will serve as a teaching tool to reinforce the material in the lessons. It will provide real programming experience on a commercial microprocessor. Further, the design calls for its use with a number of peripheral devices. The specific devices, like CRT, video displays (TV), cassette recorder, discs, and others have not yet been determined.

We are confident that NRI will offer a microprocessing course that has high quality, a reasonable price, and be approved for veterans training. It is too premature now to provide you more specific information.

Again, thank you for taking the time to write me. Good luck in your studies for 1977.

J. F. Thompson

Introducing... a pair of boards that will set your S-I00

S1

The new I/O and PROM/ RAM boards will give you maximum system flexibility and operation allowing you to expand the way you want to without being limited by rigid board design

I/O Board

Complete Kit $150.00 Assembled $240.00

4K PROM/RAM BOARD

Kit (less memory) $80.00 Assembled {less.memory) $160.00

& board features—

4K PROM/RAM Board Model MB9

• Fully buffered address and data lines

• Jump on reset circuitry allows execution of programs at any 1K boundary by hitting reset or may be modified to jump on power-up

• Jump address and enable, board address, memory protect, and wait states (0-2) all DIP switch selectable located conveniently at top of board

V RAMs and PROMs may be mixed in any 256-byte increments

• Monitor program available

I/O Board Model I04

< 2 serial I/O ports (2 in and 2 out) with full handshaking « 55 to 9600 baud rate selection for both input and output

2 parallel (2 in and 2 out) I/O ports « 20/80 mA current loop (with optical isolators) or EIA serial interfaces t Independent DIP switch address selection for both serial and parallel ports c Interrupt capability

All Cybercom "blue boards" are made of hi-grade glass-epOxy with gold contacts and include Tl low profile sockets.

Contact your local computer hobby store today for more information on the new I/O and PROM/RAM boards, or write direct to:

cyberc!

th& bluo board

A division of Solid Stale Music

2102A Walsh Avenue Santa Clara, CA 95050

(408) 246-2707

Ohio Scientific advances the state-of-the-art

of small computers.

• Challenger II with our ultra-fast 8K BASIC in ROM.

Now you can own a computer with full BASIC and plenty of user workspace for as little as $298.00. And the BASIC is there the instant you turn the machine on!

• Challenger III is the remarkable computer which has 6502A, 6800, and Z-80 processors. This computer system allows

you to run all software published in the small computer journals, yet, it costs only about 10% more than comparable single processor computers.

• Challenger Single and Dual Drive Floppy Disks. These full size floppy disks are available in kit form or assembled at about the same prices as our competitors' mini floppies. Yet, they store three times as much data as the minies.

• Ohio Scientific's new 9 digit precision business BASIC is only slightly slower than our ultra-fast 8K BASIC. Still faster

and more powerful than anyone else's 6 digit precision BASIC.

• Our incredible new 74 million byte disk drive. That's right, 74 million bytes is available for as little as $6,000.00 complete with interface for any Ohio Scientific computer. This new disk is quite possibly the world's highest performance data storage device. It features an unbelievable 34 millisecond average access time and an ultra-fast data transfer rate.

• Now is the time for you to dump your 1974 design vintage S-100 computer and move up to the state-of-the-art!

For more specifics, send $1.00 for our new Fall Catalog.

11679 Hayden Hiram, Ohio 44234

BASIC in ROM Computers by Ohio Scientific

If you're just getting into personal computing and are buying your first machine, you're probably confused by the myriad of companies and products available.

However, there is one simple guideline you should follow when choosing your first computer. Be sure that it is capable of giving you full floating-point BASIC the instant you turn it on. Machines with full 8K BASIC in ROM cost as little as $298.00. Why should you settle for anything less?

Challenger IIP

Model 500

The Model 500 is a fully populated 8 x 10 P.C. Board with 8K BASIC in ROM, 4K RAM, serial port and Ohio Scientific Bus compatibility for instant expansion. All you need is a small power supply (+5 at 2 amps and -9 at 500 MA) and an ASCII terminal to be up and running in BASIC. And all for only $298.00.

11679 Hayden • Hiram, Ohio 44234

The Challenger IIP from Ohio Scientific is the ideal personal computer complete with BASIC in ROM and plenty of RAM (4K) for programs in BASIC.

Complete with an audio cassette interface, the Challenger IIP uses a full computer keyboard, not a calculator keyboard.

In addition, the Challenger IIP comes complete with a full 64 character-wide video display, not a 40 character display. The user simply connects a video monitor or home TV set via an RF converter (not supplied) and optionally, a cassette recorder for program storage.

The Challenger IIP comes complete with a 4 slot backplane and case for only $598.00. Fully Assembled.

Super Kit

The Super Kit is a 3 board set with a 500 board (like the Model 500) without the serial interface.

The ROMs are configured for use with the included, fully assembled 440 video board to provide a full BASIC computer and terminal.

The Super Kit also includes a fully assembled 8 slot backplane board which gives you 6 open slots for expansion.

To be up and running in BASIC simply plug the boards together, supply power (+5 at 3 amps and -9 at 600 MA), add an ASCII parallel keyboard plus a video monitor or TV set via an RF converter (not supplied).

Total price for the "kit" $398.00.

Disk Based Co

by Ohio

Any serious application of a computer demands a Floppy disk or hard disk because a disk allows the computer to access programs and data almost instantly instead of the seconds or minutes required with cassette systems. In real-world application of computers, such as small business accounting, a cassette based computer simply takes too long to do the job.

Ohio Scientific offers a full line of disk based computers utilizing full size floppy disks with 250,000 bytes of formatted user work space per disk. That's 3 to 4 times the work space of mini-floppies.

Challenger n

Challenger II is available with a single or dual floppy disk and a minimum of 16K of RAM instead of ROM BASIC. The disk BASIC is automatically loaded into the computer so there is no need for ROMs. Ohio Scientific's powerful disk operating systems allow the computer to function like a big system with features like random access, sequential, and index sequential files in BASIC and I/O distributors which support multiple terminals and industry-standard line printers.

Challenger ll's with disks can have the following optional features:

• 16 to 192K of RAM memory • Single or dual drive floppys • Serial and/or video I/O ports • Up to 4 independent users simultaneously

• Two standard line printer options • Optional 74 Megabyte Hard disk

• Much more

Challenger II disk systems are very economical. For example a 16K Challenger II computer with serial interface, single drive floppy disk, BASIC and DOS costs only $1964.00 fully assembled.

mputer Systems Scientific

Challenger

Ohio Scientific proudly announces the ultimate in small computer systems, the Challenger III. This computer has a 3 processor cpu board equipped with a 6502A, 6800, and Z-80.

This system allows you to run virtually all software published in the small computer magazines!

The Challenger III is fully software and hardware compatible with Ohio Scientific products and can run virtually all software for the 6800, 8080 and Z-80 including Mikbug® dependent 6800 programs!

Incredible as this is, Challenger III costs only about 10% more than conventional single processor microcomputers. For example a 32K Challenger III with a serial interface and a dual drive floppy disk (500,000 bytes of storage) costs only $3481.00. Fully Assembled, complete with software. Terminal not included.

r"

□ Send me the Fall 77 Catalog. I enclose $1.

I I I would like to order directly from this advertisement. (Please allow up to 60 days for delivery)

ADDRESSCITY

_STATE_

_ZIP_

To order:

Payment by: BAC (Visa)_

MC_

Money Order.

Credit Card Account #

Interbank # (Master Charge)

Model 500 Boards @ $298.00

Challenger IIP @ $598.00

Super Kit @ $398.00

16K Challenger II complete with serial interface,

single drive floppy disk, BASIC and DOS

@ $1964.00

32K Challenger III with serial interface, a dual drive floppy disk (500,000 bytes of storage)

@ $3481.00

Ohio Residents add 4% sales tax

TOTAL CHARGED OR ENCLOSED

Order directly from: Ohio Scientific, 11679 Hayden St., Hiram, Ohio 44234 or your local OSI dealer All orders shipped insured UPS unless otherwise requested.^

Circle 365 on inquiry card.

11679 Hayden • Hiram, Ohio 44234

Continued from page 6

"show off" sequences which were viewable at the NCC show. These included false color processing of digitized pictures, as well as dynamically changing kaleidoscopic abstract patterns.

Why Would Anyone Want. . .?

The technological skeptics always pose a more or less unanswerable question of "why do such and so?". Some unnamed ancestor of western civilization probably received the same question in response to making the first wheeled carts, planting crops rather than gathering them wild, or tending and managing fires as the inspiration for the Prometheus myth. It is a repetitive pattern, uneasiness or fear when confronted with new ways of life.

Memory requirements (256 by 256 resolution, 8 by 8 point characters, 256 characters) Character definitions 8192 bytes Screen refresh 1024 bytes

I first ran into this form of question relative to the whole idea of personal computing when I seriously began exploring the possibility of building my own computer after the Intel 8008 first became available. I vividly remember a conversation with one of my professional associates at the time, which contained the question of why applied to personal computers: "Why would anyone ever want a personal computer?" Without answering the question, history has now shown that a lot of people do want such computers. At that time however, I attempted to weakly answer (my mind was made up, remember) with specific applications contrived on the spot as alleged justifications. I knew I wanted one, but I wasn't quite sure why. . .

Today, I would answer with a more general question and an equivalently general response. The more general question is "why would anyone ever want to use an arbitrarily chosen product of human technology (be it automobile, airplane, typewriter, computer,

Total dedicated memory 9216 bytes

ONE CHARACTER CELL

FULL SCREEN CHARACTER REFRESH TABLE (32 X 32)

COLOR CHARACTER DEFINITION TABLE (256 BY 8 X B BY 4 BITS COLOR CODE)

CHARACTER DEFINITION TABLE OFFSETn

CHARACTER INDEX j

8192

BYTES

TOTAL

n + 0

n + 4 n + a n +12 n + 16 n + 20 n+24 n + 28 n + 32

CHARACTER j-l DEFINITION

CHARACTER j+l

Figure 2: A less direct display method which uses considerably less memory to generate a picture is the reprogrammable color character generator technique. In its most general form, each logical character definition contains a matrix of 4 bit color values for picture elements within the character. A display is formed by filling the 1024 character refresh table entries with character values pointing to the programmable character generator matrix. This form of display in the configuration shown requires only 9,216 bytes compared to the 32,768 of figure I, a saving which is achieved at a price of considerable flexibility.

42

The first complete low-cost microcomputer system for home, business or

Radio Shack TRS-80

The TRS-80 is for people who want to use a computer now—without the delay, work and problems of building one. The system is fully wired, tested and U.L. listed — ready for you to plug in and use! Program it to handle your personal finances, small business accounting, teaching functions, kitchen computations, innumerable games — and use Radio Shack's expanding line of prepared programs on cassettes. The Z80-based system comes with 4K read/write memory and Radio Shack Level-I BASIC stored in read-only memory. Memory expandable to 62K bytes. Includes CPU, memory, keyboard, display, power supply, cassette data recorder, 300-page manual, 2-game cassette program. Designed and built in USA by Radio Shack. Only 599.95.

Includes everything you need to start using it immediately!

SOLD ONLY WHERE YOU SEE THIS SIGN:

Radio /haek

A TANDY COMPANY • FORT WORTH, TEXAS 76102 OVER 6000 LOCATIONS IN NINE COUNTRIES

Price may vary at individual stores and dealers

Clip and Mail Coupon Today!

Mail to: Radio Shack, Dept. TRS-80

205 N.W. 7th St., Ft. Worth, TX 76101

Send me more data on the TRS-80 microcomputer

• Description of applications, software and peripherals available through Radio Shack • Owners' newsletter

• Price list • List of stocking stores and dealers

NAME

ADDRESS CITY

. APT. NO. .

.STATE.

.ZIP.

I

Application Software!

HASH

Sort VV AR I LI BRARY

VOLUME II

Vol. I — $24.95

Bookkeeping

Games

Pictures

Vol. II — $24.95 Math/Engineering Plotting/Statistics Basic Statement Def.

Vol. Ill — $39.95

Advanced Business Billing, Inventory Investments Payroll

Vol. IV — $9.95

General Purpose

Vol. V — $9.95

Experimenter's Program

You can buy software from anybody

but ours works in your system.

We only sell one product, Quality.

We have been in business for over nine years building a reputation for providing a quality product at nominal prices — NOT what the traffic will bear. Our software is:

• Versatile — as most programs allow for multiple modes of operation.

• Tutorial — as each program is self prompting and leads you through the program (most have very detailed instructions contained right in their source code).

• Comprehensive — as an example our PSD program not only computes Power Spectral Densities but also includes FFT's, Inverse-transforms, Windowing, Sliding Windows, simultaneous FFT's variable data sizes, etc. and as a last word our software is:

• Readable — as all of our programs are reproduced full size for ease in reading.

• Virtually Machine Independent — these programs are written in a subset of Dartmouth Basic but are not oriented for any one particular system. Just in case your Basic might not use one of our functions we have included an appendix in Volume V which gives conversion algorithms for 19 different Basic's; thats right, just look it up and make the substitution for your particular version. If you would like to convert your favorite program in to Fortran or APL or any other language, the appendix in Volume II will define the statements and their parameters as used in our programs.

Over 85% of our programs in the first five volumes will execute in most 8K Basic's with 16K of free user RAM. If you only have 4K Basic, because of its' lack of string functions only about 60% of our programs in Volumes I thru V would be useable, however they should execute in only 8K of user RAM.

All of our programs are available on machine readable media. For those that have specific needs, we can tailor any of our programs for you or we can write one to fit your specific needs.

SCIENTIFIC RESEARCH

1712-B Farmington Court, Crofton, MD 21114

Phone orders call (800) 638-9194

Information and Maryland residents call (301)721-1148

Add $1.50 per volume handling, all domestic shipments sent U.P.S. sxoept APO and P.O. Box which go parcel post. Foreign orders add $8.00/volume for air shipment and make payable In U.S. dollars only.

AVAILABLE AT MOST COMPUTER STORES

Master Charge and Bank Americard accepted.

Our Software is copyrighted and may not be reproduced or sold.

piano, microwave oven, or television set)?" I would now reply that individual use of the products of technology has the psychological and emotional justification of personal satisfaction, derived from being able to choose from a wider range of activities with such inventions than without.

The More Specific Whys of Color Displays

The advent of high resolution color displays for personal use is near, as I'll demonstrate later in this essay. I have some rough ideas as to the practical consequences of inexpensive color displays in a personal computing context. Any such comments must be viewed in the same light as my responses to the personal computing skeptic several years ago. I am already committed mentally to the concept of the color display with computing intelligence behind it as an artistic and expressive medium for individuals. My attempt to detail my commitment's consequences with specific uses is necessarily a naive first try at explaining the fascination of the concept, just as my earlier attempt to explain the fascination of personal computing by examples was a weak argument at best.

Versatility and Flexibility

Perhaps a major attraction of the color display is the generality it provides. There is a certain fascination with the realization of the general purpose generic form of any program or hardware conception.

Carrying this attitude into the realm of visual displays, I claim that the color display with relatively high resolution is inherently desirable because it represents the most general form of the concept of a two dimensional display. Every other form of a display is a subset of the general ability to paint arbitrary colors in arbitrary patterns on a color display screen. Any given pattern is a subset of the general set of all possible patterns one could make with "n" color levels and an "i by j" pattern of picture elements.

The consequences of this versatility and flexibility are the possibility of color emphasis and detailed representations in conventional applications plus a whole new set of possibilities in the area of visual arts.

In an article we printed in December 1976, Margot Critchfield of the University of Pittsburgh's Project Solo illustrated the

OuanTronics

8K

STATIC RAM...

, Tried Ou-f

8K Witt vdv Be

ASSEMBLED & TESTED / MM8-250ns... 225.00 / MM8B-450ns... 209.00

FEATURES: S100 Bus • Low Power IC's • Selectable: Wait Cycles, Address, and Memory Protect

QuanTronics Computer Products from Problem Sqwer Systems, Jmc.

8040 DEERING AVENUE CAN0GA PARK, CA 91304 (213) 888-5079

45

Circle 368 on inquiry card.

static artistic possibilities in several color renditions using a Cromemco TV-Dazzler and custom peripherals created by Thomas Dwyer and Leon Sweer. (The Dazzler is a first attempt at the personal color organ, a 64 by 64 element display with a limited range of eight colors and "off.") The renditions which she illustrated are examples of the static representations of visual art which are possible merely using the color display as the equivalent of the traditional artist's media of oil or acrylic and canvas.

This use of the color display as a medium of static visual artwork is a necessary first step toward exploring the practical consequences of high resolution color display technology. With use of appropriate inexpensive mass storage devices, libraries of high resolution images can be conceived. (A full size floppy can hold about 500 K bytes of information with contemporary "double density" recording technology, or a total of about 16 unencoded pictures with a 256 by 256 grid of 4 bit color picture elements.) In this mode of operation, the artistic user paints a picture on the display using a joystick or equivalent cursor control plus additional finger manipulated controls to select color, move patterns about with software, repeat patterns, etc. The key here is composition of a color image which is perceived statically. This is the mode of operation of the Project Solo Cybernetic Crayon mentioned earlier, and of the Cromemco Dazzler when it is used with a joystick.

Effective artistic use of this new form of visual imagery creation requires development of interactive software customized to the creator's tastes. The display by itself is not enough to make the facility complete, for it only becomes useful with the software equivalents of paint brushes and motion of the artist's arm. Distribution or copies of this form of the art can be done photographically, since the static image is what counts. In this sense, there is nothing startling or new about use of a color display and its computer backup for static images.

Art Forms Impossible Without Computer Controlled Imagery

Once the artist or experimenter (the two words are actually equivalent) learns to create a visual art work with computer aid the next step is to use the mechanism of the computer to produce effects which would previously have been difficult or impossible to achieve. Motion and change of images according to rules and techniques chosen by

the artist are a part of the very act of composition in this new medium of dynamic visual art.

Here, we are talking about a dynamic and moving art form, the use of programming in a manner which can be directly perceived and understood by all viewers simply by observing it, just as music can be appreciated by anyone simply by listening. This is the true excitement of color imagery as an art form. The only visual antecedents are the use of film technology and choreography; but unlike much film and choreographic imagery, it is not constrained to images of human forms, since the display is general purpose and subject to various forms of abstractions and harmonies previously impossible with visual imagery. The key to this new art form is the time dependent algorithmic transformation of elements of the picture according to the artist's plan and implementation.

The time ordered nature of algorithmic visual arts which come from this source make a combination of the display imagery with music inevitable. If evolution of visual form with abstract or specific images is considered as a criterion, an artistic antecedent of this combination is found in the first experiments of Walt Disney in the form of the movie called Fantasia. (For those unfamiliar with that movie, it was a combination of classical music with cartoon technology which resulted in a feature length film.)

A later example of this combination of visual patterns with musical patterns is represented in the work of John Whitney over the past decade or so, using computers with photographic technology to make high resolution computer generated films which are synchronized to music. He gave an excellent taste of what can be done in his demonstration films and talks at the Personal Computing 76 show in 1976, and at the First West Coast Computer Faire this year. (He is continuing his work with equipment which has much in common with contemporary personal computing technology.) A major tenet of John Whitney's concept of dynamic visual arts is the idea of visual analogs to the harmonies and melodic evolutions in the musical forms. With the visual processors we can achieve with today's technology, it is possible for many more individuals to begin experimentation with dynamic progressions of forms of sensation which include both visual and aural components. The coming of the high resolution, yet not inordinately expensive, color graphic display opens up the wider use of this art form.

46

Circle 369 on inquiry card.

The simplest examples of the algorithmic visual arts have been seen at the various exhibitions. Nearly every computer store which carries the Cromemco TV Dazzler uses the color version of the game of Life as a customer attraction, one mode of algorithmic visual art. A similar display sometimes seen is the colorful forms of a kaleidoscope represented in that product's 64 by 64 color matrix on a TV screen. Another example of a simple, algorithmic art form is the Color Eater program which Apple Computer uses to illustrate the capabilities of its computer and its integral 40 by 40 patch color display generator. But better (ie: high resolution) color technology is sure to follow in the near future.

But Art Is Not All. ..

The programmable versatility of the color display concept is applicable to more than just artistic purposes. From the artistic point of view, the display's content, whether static or dynamically changing, is the object of the exercise. But using the display as a part of the information processing system which is the personal computer is attractive because colors can convey additional information.

Bordering on the concept of dynamic art is the concept of the color display oriented video game. Space War works just fine on a black and white display, for the realism of the simulation only demands points in a two dimensional projection of three space. But consider the possibility of cartoon style animation applied to simulation games. If the game involves a park like setting in which the simulation players move, use the color display to represent that setting, with programs appended for generation of players' movement in the setting. If the game involves simulating a plane landing, or an automobile race, use programs to generate the moving effects on the screen, and variations of the background information. Such suggestions involve significant software development and processor bandwidth when the degree of realism becomes high; but, given the color display and a given processor's capabilities, there can be considerable improvement in the types of displays used with games.

Why put up with a simple numeric time readout for your digital clock software? With a color display for the output device, a very realistic analog clock face could be displayed with moving hands and styling to the user's tastes. The 256 by 256 by 4 bit resolution capability suggested as a near term technological goal should be more than adequate for this task.

M6800

HARDWARE/SOFTWARE

• REALTIME OPERATING SYSTEM

RT/68e is mask-programmed on a 6830 ROM that replaces the Mikbug' ROM in your SWTPC 6800, Motorola D1 or D2 Evaluation Kit, etc. It is a powerful real time, multiprogramming operating system with many versatile system functions. RT/68° can support up to 16 concurrent programs at 8 priority levels.

MICROWARE has improved the Mikbug* functions, added four more (Dump, Exec, Sys, Bkpt) and made tape load and punch program-usable. RT/68® is software and hardware compatible with Mikbug* and supports ACIA or PIA type interfaces. The comprehensive manual includes a complete source listing. RT/68MX 55.00

• ANALOG INTERFACE SUBSYSTEM

Consists of a PIA connected to a high speed, high accuracy 8 bit digital-to-analog converter. Also included is a buffer and precision comparator to implement an analog-to-digital converter using one of several software techniques listed in the manual. Applications include sensor input/output, audio synthesis, vector graphic displays, etc. Circuit board is plugcompatible with the SWTPC 6800 I/O buss.

AS1-K (COMPLETE KIT) 87.50

AS1 (ASSEMBLED and TESTED) 115.00

• SERIAL I/O INTERFACE

An RS-232 type serial interface card with full modem control capabilities (RTS, CTS, DCD). May also be used for interface with audio cassette systems. Plug compatible with SWTPC 6800 I/O buss.

SC1-K (COMPLETE KIT) 30.00

SC1 (ASSEMBLED and TESTED) 40.00

THE MICROWARE CORPORATION

RO. BOX 954 Des Moines,Iowa 50304

Write or use reader service card for free brochure. Phone Orders (515) 279-9856 U.S. Orders Postpaid. BankAmericard and Mastercharge give all info on card. Mikbug* is a trademark of Motorola, Inc.

by XYBEK

An extraordinary 2k memory board for your Altair-bussed computer

* On board 1 702A PROM programmer

* 256 bytes of RAM plus space for 1792 bytes of read

only memory (seven 1 702A EPROMs)

"fc Supplied with one 1702A, pre-programmed with stand-alone programming software — no sense switches are used

* Supplied with programming power supply

+ PRAMME R's own on board clock makes it compatible with almost any Altair-bussed system.

+ All read and write sequences are generated via an board micro-programmed state machine, thus eliminating all one-shots.

"A- Complete 1 702A programming in 18 seconds

W Includes complete listings for PRAMSYS, an elevenfunction development system.

COMPLETE KIT: $209

Assembled and tested: $289

Immediate (off-the-shelf) delivery California residents please add sales tax. COD, Master Charge, BankAmericard and Visa accepted.

XYBEK • P.O. Box 4925 • Stanford, CA 94305 Telephone: (408) 296-8188

47

Circle 370 on inquiry card.

Then consider the use of color in highlighting data. For example, one purpose for which I'd like to use a high resolution color display in the future is highlighting the various melodic themes and chord structures in digital representations of music on the display. Here the color information is used to enhance the different segments of a complicated structure, a principle which has been applied at many points in industry and which is certainly just as useful for personal data displays.

Design Speculations . . . Color Displays

While it is unlikely that any personally affordable color display will soon match the facilities of the Comtal 8000-S which got me started on this subject, improved resolution color displays are a very real possibility for personal computing within the near future. By improved resolution in a personal computing context, I mean displays within the bandwidth range of a standard color television set adapted for direct video input. Taking into account memory prices, and the capabilities of the color television device, this means basically some form of raster scan color generator with a 256 by 256 picture element resolution and four bits of color level information per picture element. I see two methods in which this hardware can be implemented, with varying capabilities. The simplest brute force technique is to have the image generation equipment incorporate memory directly to refresh the display. For the 256 by 256 by 4 bit display this brute force technique requires 32,768 (32 K) bytes of memory. (At a 40 by 40 matrix resolution, the Apple II computer's video generator's color mode uses this brute force technique with a smaller amount of memory.) Figure 1 shows conceptually how each byte defines two picture elements' state of color through hardware which accesses the 32 K byte memory region to generate the display. When the price of a typical 32 K byte memory board is standing at about the $800 range assembled and tested for at least one product currently advertised (using 16 K dynamic chips), dedicating such a memory to a color display peripheral for perhaps $1600-2000 end user price is not unreasonable.

The second method of design I see coming is inspired by the video generator methods used in many video arcade games, and in particular the video generator of the Noval 760 computer, with which I became acquainted on a visit to Gremlin Industries

in late 1976. This is the method of a reprogrammable character generator, which results in considerable compression of the amount of memory required to completely cover the entire plane of a display. (The inherent disadvantage, a trade off of function for less memory than the brute force technique, is that the picture must be represented as a closely packed array of subelements defined by the different character definitions, meaning that it is possible to run out of character definition space if complex patterns are involved.) Using this second method of indirect refreshing through a progammable character generator extended to include color information, a configuration which might be suitable for color is illustrated in figure 2. The particular design of figure 2 (which is not the only configuration possible by any means) uses 256 character definitions of 32 bytes per character, where each character has an 8 by 8 array of 64 picture elements of four bits per element. The hardware of such an indirect refreshing method scans the 1024 byte (32 by 32) array of characters in the refresh memory, then looks up the corresponding character definition in the user programmable color character generator. This form of the color raster display still gives resolution to a 256 by 256 grid, but requires only 9216 bytes compared to the 32,768 bytes of the brute force technique. As a result, one might expect to find this form appearing in less expensive color oriented pe'ripheral products for personal computers.

With memory prices dropping consistently, I expect both general forms of color peripheral units to be appearing in the near future. The details will differ from these conceptual sketches, but the idea of the color display is here. There is no technological reason why such a display cannot be built and marketed to the readers of this magazine within the next one or two years."

Attention Authors:

As a "how to" for reader construction, high resolution color displays and software drivers for them are certainly high priority items for future articles to be published in BYTE.

48

BgWHBMMWBfflHgMMKBBMgBBBHBI

■Hi

HjHjfljHHHH

Have you been waiting for a hard copy printer that doesn't come with a high price tag or very limited performance and features?

Your wait is over. The new Integral Impact is precisely what you've been looking for. It's a micropriced, maxiperformance, full-size, full feature, impact printer that's ready to plug directly into your mini or micro-computer system. No special hardware or software interfacing required. Just connect to any RS 232 or current loop serial data source, and you're in business.

The Integral Impact is a complete professional printer that's fully assembled, tested and ready for use. No extra-cost options, nothing to assemble or wire, no special software to write .. . and no need, either, for expensive special paper. It prints the standard ASCII set of 64 characters using a 5 x 7 dot matrix at speeds to 120 characters per second.. .on full-size, 8>/2-inch paper in fan-fold or roll form.

You can even print multiple copies with up to 132 characters per line. With a long-life (10,000,000 charac

ter) ribbon that is automatically re-inked during printing, and a rugged print mechanism with few moving parts, the Integral Impact offers you outstanding service and reliability.

The Integral Impact has a microprocessor-based controller that features variable character pitch sizes, multiple line buffering and enhanced, double-width characters. Serial baud rates from 110 to 1200 bits per second are supported or, optionally, the printer may be used with a parallel interface. Operator controls for power, printer mode and off-line paper motion are conveniently located on the front panel. Internal switch settings determine serial baud rate, character pitch and number of characters per line.

The micro-price: $745.00 complete.

Where can you get it? Send the coupon below to Integral and we'll ship direct to you. Or have us send you full details by checking the appropriate box on the coupon.

Make big printer performance an integral part of your system ... with the Integral Impact.

ow...Dig printer ormance at a mini-printer price.

Circle 371 on inquiry card.

^integral Data Systems

5 Bridge Street • Watertown, MA Send more information

Name

Address

Bill my VISA

Mastercharge account

Account No.

Expiration Date

M C Interbank No.

Signature

City

State Zip

'Handling and shipping charge: $5.00. Mass. residents add 5% sales tax.

Commodore's New PET Computer

Photo I: Commodore's new PET computer at the NCC show in Dallas.

One of the most interesting new products at the NCC show in Dallas was Commodore's new PET computer. Beneath its futuristic cover, the unit features 14 K bytes of read only memory containing an 8 K BASIC package, 4 K operating system, 1 K machine language monitor and 1 K diagnostic routine.

The display features 64 graphics characters as well as the standard 64 character upper case ASCII set. This gives the effect of high resolution when displayed on the built-in 9 inch (22.86 cm) video monitor. The keyboard is encoded so that by shifting to upper case, the user has access to the 64 graphics characters.

The 8 K extended BASIC package was designed by Microsoft, the people who have created a number of interpreters for personal computers. It features strings, integers, multiple-dimensioned arrays, 10 digit precision floating point capability, and "peek" and "poke" commands.

The price of the PET is $595 complete with 4 K bytes of programmable memory. The $795 version features 8 K bytes of programmable memory. All 10 connections (excluding the built-in tape drive, keyboard and video display) are made via an IEEE488 bus.

The PET is an excellent example of the true appliance computer: a neat, self-contained graphics oriented package designed for the mass market as well as for the serious experimenter."

Photo 2: A closeup of the PET's unusual touch-sensitive keyboard with 73 keys and 64 shifted graphics symbols in addition to ordinary upper case ASCII characters.

Photo 3: A side view of the PET highlighting its modernistic lines.

50

\5erttatim

You want to record your message verbatim—word for whole Now, Verbatim media. It's a new formulation of ferric

You want to record your message verbatim—word for word—whether it's bits, bytes or "Dear Folks" translated into word processor language.

Our objective in manufacturing recording media for the electronics industry—digital tape cassettes, floppy disks, mag cards, computer cartridges—is to give you the finest, the best, the most dependable, the most cost-effective.

That means rugged, long-lived, abrasion-resistant recording media with superior magnetic qualities. If we made tires, they'd be steelbelted radials.

We delivered our first digital grade certified tape cassettes back in the beginning, 1969. We made the first commercial 3740-compatible floppy disks that didn't bear IBM's name. And the first Flippy* reversible flexible disks with anyone's name on them. The first mini data cassette is ours. And we've got the newest miniature flexible disk, the MD 525.

Now, Verbatim media. It's a new formulation of ferric lYltf^^lflO'tf* oxides, an advanced macromolecular binder system , to adhere it to the tough polyester film, and a proc

j^g QlJLOJLltV ess contr°l system that demands over 200 separate ji J quality checks before the material is cut, packaged,

and certified to be 100% error-free.

The final quality check? "Make it pretty!" Our production people tell us that magnetic recording media is one of the rare instances in manufacturing where aesthetic appearance translates directly into final product quality. It has to look beautiful to work beautifully. We have the formulas, the machines, the technology to make high quality recording media. But it takes the best people in the industry to deliver Verbatim disks, cards, cartridges and cassettes. You'll find them at your favorite retail computer store.

■

The end of

Kit-Kits.

The end of bad solder joints, heat damaged components and sick IC's. Introducing the Semikit. Item V a 16KRA Memory Board, $369.

Let's face it. Loading and soldering PC Boards is not much fun for the kit builder. Even more important, it's the place where most of the trouble gets introduced. The real fun and education comes in running and testing boards.

Now the Semikit with fully tested IC's.

At the price of a kit, Processor Technology Corporation introduces the Semikit. It's a fully stuffed, assembled and wave soldered PC Board loaded with IC's that have gone through Q.C. and final checkout (a first in the industry).

We leave you the fun of testing with our fully documented set of instructions. We do the production tasks of loading, wave soldering and inspecting the boards. You do the more interesting and time consuming chore of testing and burning-in the boards.

The result is one sweet deal

for both of us. You get a board where the primary causes of damage (poor solder joints, excess solder and bad IC's) are virtually eliminated. You get a board of highest professional quality. And we get the business!

The 16KRA Memory Board's at your dealer now.

Your Processor Technology dealer has the first Semikit, a 16KRA Memory Board, in stock and ready to go right now. You can take it home tonight for $369 as a Semikit or for $399 fully assembled, tested and burned-in.

You'll have a 16,384 byte memory with a better price performance ratio than anything on the market today. Now you can afford to add quality, high density memory to your system for remarkably little. And you can add enough to solve complex computing problems right in the main frame.

The memory features invisible

refresh. There's no waiting while the CPU is running. Worst case access time is 400 nsec. Each 4,096 word block is independently addressable for maximum system flexibility. Power is typically 5 watts, the same as most single 4K memory modules. Back-up power connection is built-in.

Other Semi's are coming your way.

The 16KRA Memory is Processor's first step in adding more fun, capability and reliability to your computer system at lower cost. Other modules are on the way to your dealer now. Come on down today.

Or you may contact us directly. Please address Processor Technology Corporation, Box B, 7100 Johnson Industrial Drive, Pleasanton, California 94566. Phone (415) 829-2600.

ProcessorTechnology

Circle 355 on inquiry card.

Photo J: The main exhibit hall at the NCC. Photo 2: The Personal Computing section of the NCC.

The NCC:

By Chris Morgan, Editor

Over 36,000 people filled the Dallas Convention Center on June 13 to 16 to attend the biggest National Computer Conference ever. Virtually every manufacturer in the computing field was there either to exhibit or to take notes. But what made this year's NCC different from past shows was the NCC sponsored Personal Computing Fair and Exposition held concurrently in the Convention Center.

Photo 3: Another view of the main exhibition hall.

54

A Dallas Delight

Photographs by Charles Floto

Manufacturers of personal computers and related products turned out in force to display their wares before large crowds. Hopeful hobbyists and experimenters exhibited their home computer projects at the Personal Computing Fair (devoted entirely to noncommercial individual and group owned projects), and vied to win prizes.

Both sections of the show featured extensive seminars and panel discussions about present and future uses of computers; personal computing club representatives met to discuss the possibility of forming a National Club Congress.

It was gratifying to see long term NCC veterans mingling with hackers from all over the country in a congenial atmosphere filled with microcomputers that played games and dazzled the eye with elegant color graphics. One group learned from the other, and ideas were exchanged at extremely high rates.

Seeing everything at the show was quite a challenge: some 300 manufacturers were spread out over five football field's worth of exhibits upstairs. And the main floor exhibits were big: Data General, for example, brought an entire working planetarium controlled by a Nova minicomputer and capable of holding 50 people inside. Many of the "booths" were two stories

Photo 4: Commodore's new PET computer, a popular item at the show. The unit features 14 K bytes of read only memory including an operating system, diagnostic routines and an 8 K BASIC interpreter by Microsoft. It sells for $595 Including 4 K bytes of programmable memory. A lengthy waiting list is predicted for the unit.

Photo 5: Deborah Ashman demonstrating her robot Joey, who moved back and forth to the tune, "If I Only Had a Brain. "

Photo 6: Wes Stewart working at the cabinet desk he built for his SwTPC 6800 computer system. The program running is a golf simulation.

55

Photo 7: Allen Isaacson demonstrates one of the exhibits at the Personal Computing Fair: a video game converted into a color graphics terminal that uses a Teletype instead of a joystick. The hardware was designed by Robert and Richard Benjamin, father and son, respectively.

high; others took up areas of 30 by 60 feet or more.

There was much to see in the Personal Computing section downstairs, too: Commodore's new PET microcomputer, a variety of the latest video games programs (including a tank game for micros), new music programs, talking computers, software packages for FORTRAN, business programs, floppy disks, and so on.

Summarizing the entire show is almost impossible: we found it inspiring (and sometimes frustrating!) to look at some of the state of the art devices, such as high resolution video displays, on view in the main exhibit hall.

From the looks of this convention, the computer industry is in good shape, and we look forward to an even bigger and better show next year."

Photo 8: Personal Computer Fair first prize winner Tom Aschenbrenner shown with the system he amassed over a five year period from surplus computer parts. A Texas Instruments 980A controls a system which stores and transmits messages for the benefit of Dallas area hams.

Photo 9: Photographer Floto reflects on Sperry Univac'sshiny display.

ff

SPERSY^UIMIVAl

56

UP AND RUNNING

TDL EQUIPMENT USED BY NEW JERSEY PUBLIC TELEVISION TO PROCESS NEW JERSEY GUBERNATORIAL PRIMARY ELECTION RETURNS

John Montagna, computer engineer (above left), lead this successful network team in generating election results speedily, efficiently and reliably using predominantly TDL hardware and software. Montagna created three programs to get the job done. The text for a SWAPPER program was written and assembled using the TDL TEXT EDITOR and Z80 RELOCATING MACRO ASSEMBLER. The SWAPPER text and all debugging was run through TDL's ZAPPLE MONITOR. The relocatable object code was punched onto paper tape. A MAIN USERS program updated votes and controlled air display. An ALTERNATE USERS program got hard copy out and votes in. The latter two programs were written in BASIC. Montagna modified the ZAPPLE BASIC to permit timesharing between the two USERS programs.

TDL's XITAN SYSTEMS have the capacity to do similar tasks for you. Write to us for XITAN information and the name of your nearest TDL dealer.

Four screens were incorporated, two terminals entered votes as they came in and were used to call back votes to check accuracy. Montagna called on the power and flexibility offered by TDL's ZPU board and three Z-16 Memory boards.

Montagna's setup worked constantly for over four hours updating and displaying state-wide and county-wide- results without flaw.

"I chose TDL because they have all the software to support their hardware, and it's good; it has the flexibility to do the job."

John Montagna

We salute John Montagna and NEW JERSEY PUBLIC BROADCASTING for spearheading the micro-computer revolution.

TECHNICAL DESIGN LABS

RESEARCH PARK BLDG. H 1101 STATE ROAD PRINCETON, NEW JERSEY 08540 (609) 921-0321

Circle 373 on inquiry card.

Technical Fcpum

More on Inexpensive Plotters

I was intrigued by the proposal to make "the world's least expensive plotter" at the end of Robert D Grappel's interesting article ("Give Your Micro Some Muscles," March 1977 BYTE, page 35). Eliminating the conventional XY carriage mechanism and using model aircraft servos looks like a good start.

May I put forward a somewhat different mechanical arrangement which avoids the two problems you describe in connection with your design, viz the weight of servo 2 sitting on the end of servo 1 arm, and the complexity of the trigonometrical equations requiring solution?

In figure 1 may be seen my alternative set-up in which the two servos are both fixed to ground and arranged concentrically. The inputs 8 and <t>, rotations about the common pivot O, control the XY position of the pen. The moving links comprise a 4 bar linkage which has been dimensioned to Michael W J Carmichaei approximately satisfy the following con

Hanns Cottage, High St ditions: Broughton, Hampshire

S021 8AE • When OA is fixed the point P traces

GREAT BRITAIN a straight line locus.

Figure 1:

x

Technical Forum is a feature intended as an interactive dialog on the technology of personal computing. The subject matter is open-ended, and the intent is to foster discussion and communication among readers of BYTE. We ask that all correspondents supply their full names and addresses to be printed with their commentaries. We. also ask that correspondents supply their telephone numbers, which will be printed unless we are explicitly asked to omit them.

• When produced this line passes through point O.

• The velocity ratio between the angular displacement of the link OC and the rectilinear displacement of the point P is constant.

The upshot of all this is that we now, in place of an XY plotter, have an R6 plotter! The radial distance of P from the origin O is proportional to the angle between the links OA and OC [8 + *). The polar angle is simply proportional to the angular displacement 8 of link OA. It is now a straightforward matter to express X and Y in terms of 6 and <£.

The professional may quibble about geometric distortion, but the homebrew man will discover an acceptable working range. I now confess that I have not actually built such a plotter myself. I am hoping someone else will be good enough to pursue the idea for me!

By the way I do enjoy your publication; it is most readable."

The suggestion you make is very attractive, especially when you consider the niceness of having the servos on concentric shafts. It is not clear, however, what the optimal geometry is for such a plotter. In figures 2a, 2b and 2c we did a paper and pencil exercise to look at a particular geometry chosen by trial and error among about three different extremes. In this geometry, we used a symmetrical quadrilateral for which dimensions of X and 2X were used, with the extension arm to the drawing point P located at a distance X from point B. (Subscript notation on the points is used to identify cases.)

In figure 2a, we've drawn this geometry in a case which looks very promising. For three different values of the angular parameter corresponding to <1> in figure 1, the construction produces an apparently straight line with 8 held fixed at some value. However, in cases of figure 2b and 2c, with 8 changed in either direction from its value in figure 2a, there is an apparent

58

deviation 8 from a straight line path for point P thru several states of angle Still, the construction looks quite promising if the problem can be set up analytically and parameters optimized for the smallest deviations as the angles are changed.

Another point worth mentioning: the useful range of the angles in this type of construction is very small. In going from the example of figure 2b to figure 2c, the change in angle 0 is approximately 45 degrees. This small angular change would require gearing to spread the useful control range of a model aircraft servo (180 degrees) over a smaller angular displacement. Note also that in our choice of parameters for this example, the locus of points P does not intersect the origin when extended as a straight line. If the constraint that distance PC equal distance OC is observed, this will guarantee that P intersects the origin. However, this criterion only guarantees that the locus of all points reachable by the moving point P will pass through the origin, and experiments with a compass and straightedge will verify that this locus is not necessarily a straight line through the origin, but is an arc of a curve. . .CH

r.anaria Boards DO Something

systems, inc.

: I. mm T'«""""'1 CL2400

tr'l^m -mm.* Real Time Clock

!l f II III

1 t I 1 1 • I $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 $360—Assm. PC3216 $189—Kit $240—Assm. PC3202 $39.50—Kit $52—Assm.

If your system needs on/off control of lights, motors, appliances, etc., our PC3200 System components are for you. Control boards allow one I/O port to control 32 (PC3232) or 16 (PC3216) external Power Control Units, such as the PC3202 which controls 120 VAC loads to 400 Watts. Optically isolated, low voltage, current-limited control lines are standard in this growing product line.

naharia p.o. box 51 e

systems, mc. La Canada, CA 91011

(formerly comptek) (213) 790-7957

59

Circle 374 on inquiry card.

Othello, a New Ancient Game

Richard O Duda

590 Vine St

Menlo Park CA 94025

Othello is a 2 person board game based on the 100 year old game of Reversi. It resembles GO, but is much faster paced and easier to learn. If you are not already an Othello buff, this program will both teach you the game and provide an entertaining addition to your games library.

The game is normally played on an 8 by 8 checkerboard with pieces that are black on one side and white on the other. The game begins with four pieces making a checkerboard pattern in the center of the board as shown in figure 1. When it is your turn, you try to convert a run of your opponent's pieces, vertical, horizontal or diagonal, to your color. You can do this if you place your piece so that each end of the run is bounded by pieces of your color. Part of the action comes from the fact that you must either make such a conversion or forfeit your turn. The game is over after 60 moves or when both players must forfeit their moves.

(a)

A B

C D

E F

6 H

(b)

A

B

c

D

E

F

G

H

1

1

X

X

X

X

X

X

X

0

2

2

X

X

X

0

X

X

X

0

3

3

X

X

X

X

X

X

X

0

4

• •

• 0

X •

• •

4

X

X

X

X

0

X

X

0

5

• •

• X

0 •

• •

5

X

X

X

0

X

X

X

0

6

6

X

X

0

0

0

X

X

0

7

7

X

X

X

0

X

X

X

X

8

8

0

0

0

0

0

0

0

X

Figure I: These two example boards show the Othello game board at the beginning and end of a typical game. The game is always initialized to the configuration in figure la. Figure lb shows the board at the end of a typical game. This game was played to completion with 60 moves. The computer was soundly beaten having only 20 pieces to the human player's 44.

The program has two strategies it can deploy against you, one elementary and the other simple. If losing to a computer would be too great a blow to your self-esteem, request the elementary strategy. After your confidence is fairly secure, you can risk a no holds barred encounter. Eventually you will tire of your prowess, and will want to modify the program to improve its play. Hopefully, the comments in the program will make its operation transparent and will invite modifications.

A few words about modifications that may be required to play at all. A random tie breaking strategy is used to provide variety, but it is not essential. If your BASIC does not provide random numbers, you can delete lines 1310 and 1320 with no significant change in performance.

At the outset the program asks if you want it to pause before making its move. This pause is most helpful with a display terminal, since it keeps the output from flashing by too quickly. The output of the board is done by the last subroutine in the program. It requires the ability to display at least 11 lines of 19 characters, and you will probably want to modify the program if your TVT cannot handle the 26 lines of 32 characters needed to see two boards and some accompanying output simultaneously.

Of course, if you use a relatively slow hard copy printer with this program, it will take a long time to type out all the boards. The obvious solution is to suppress this printout except on request, and use an actual board to record the positions of pieces for your own use.

Good luck, and remember: Othello was so named because it is a game of dramatic reversals.

60

Circle 375 on inquiry card.

Listing I: A BASIC listing for Othello.

000 1 0 00020 00030 0001)0 00050 00060 00070 00080 00090 00100

001 10 00120 001 ?0

001 to

00150

001 60 00170 00160 00190 00200

002 1 0 00220 00230 00210 00250 00260 00270 00280 00290 00300

00310

00320 00330 00310

00350 00360 00370 00380 00390

00100

00110 00120 00130 00110 00150 00160 00170 00180 00190 00500

005 1 0 00520 00530 00510 00550 00560 00570 00560 00590 00600

006 1 0 00620 00630 00610 00650 00660 00670 00680 00690 00700

007 1 0 00720 00730 00710 00750 00760 00770 00780 00790 00800 0 0 8 1 0 00620 00830 00810 00850 00860 00870 00880 00890 00900 009 1 0 00920 00930

REM OTHELLO AUTHOR: RICHARD 0. DUDA

REM PLAYS THE GAME "OTHELLO" WITH TWO STRATEGIES:

REM 1. TAKE THE MAXIMUM NUMBER OF PIECES

REM 2. ADD A BONUS FOR OUTSIDE POSITION

REM BOARD IS THE ARRAY A, BOUNDED BY O'S (BLANKS)

REM A = 0 FOR EMPTY SOUARE

REM A = B FOR BLACK SQUARE -- X (INTERNALLY -1)

REM A = W FOR WHITE SQUARE -- 0 (INTERNALLY +1)

REM I AND J ALWAYS USED FOR ROW/COLUMN INDICES REM II AND Jl STORE INCREMENTS TO THE 8 NEIGHBORS REM Ct AND D$ STORE CHARACTERS A-H.X,. DIM A(9,9),IK8),J1(8),Ct(8),D$(2) REM INITIAL GREETING PRINT "GREETINGS FROM OTHELLO" PRINT "DO YOU WANT INSTRUCTIONS (Y OR N) INPUT Xt

"N" THEN 390 "Y" THEN 160

.,0 FOR OUTPUT

OTHELLO IS PLAYED ON AN 8 X 8 CHECKER BOARD, ROWS NUMBERED 1 TO 8 AND COLUMNS A TO H." THE INITIAL CONFIGURATION IS ALL BLANK, EXCE

WHICH FORM THE"

FOR THE CENTER FOUR SQUARES, PATTERN"

OX" X 0"

TRY TO PLACE YOUR PIECE SO THAT IT 'OUTFLANKS 1" MINE, CREATING A HORIZONTAL, VERTICAL, OR" DIAGONAL RUN OF MY PIECES BOUNDED AT EACH END" BY AT LEAST ONE OF YOURS. THIS WILL 'FLIP' MY" PIECES, TURNING THEM INTO YOURS." NOTE: YOU MUST CAPTURE AT LEAST ONE OF MY" PIECES IN THIS WAY IF IT IS AT ALL POSSIBLE." IF IT IS NOT POSSIBLE, YOU FORFEIT YOUR TURN BY" ENTERING 0,0 FOR YOUR (ROW,COL) MOVE."

INITIALIZE

"SHOULD I WAIT BEFORE MAKING MY MOVES (Y OR N) ";

IF X$ = IF X$ <> PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT REM PRINT F2 = 0 INPUT X$

IF X* = 11N" THEN 160 IF X$ <> "Y" THEN 110

F2 = 1

PRINT "OK. TYPING ANY CHARACTER WILL LET ME GO PRINT "SHOULD I PLAY MY BEST STRATEGY (Y OR N) S2 = 0 INPUT X$ IF X* IF Xt <> S2 = 2 B = - 1 W - +1 D$(E + D$(0 ^ D$ ( W 4 FOR K

READ II(K) NEXT K

DATA 0,-1,-1,-1,0,1,1,1 FOR K = 1 TO 8 READ JKK) NEXT K

DATA 1,1,0,-1,-1,-1,0,1

FOR K = 1 TO 8 READ Ct(K) NEXT K

DATA A,B,C,D, REM SET UP FOR I = 0 TO FOR J = 0 TO 0

" N 1

THEN 520 1 THEN 180

1) = "X"

1 ) =

1) = "0"

: 1 TO 8

F , G , H NEW GAME

A(I,J) NEXT J NEXT I A(1,1) A(5,5) A ( 1 , 5 ) A(5,D C 1 = 2 H 1 = 2 N1 = 1 Z = 0 REM PRINT C = W H = B INPUT X$

IF Xt = "X" THEN 920 IF Xt <> "0" THEN 870 C = E

HUMAN'S CHOICES "DO YOU WANT TO HAVE X OR 0

ISOLD OUT!

That's right, if everybody who read this ad for our BASIC SOFTWARE VOLUME 1 album would order one, we'd be sold out! Includes lots 'n' lots of your favorite Basic programs such as LUNAR LANDER and BLASTOFF!, plus new ones like MAILING LIST, FOURIER FIT and AMPLE ANNIE. Plays through your Tarbell, Kansas City or Altair cassette interface (we coded all three ways). Or make cassette copies. Only 6 bucks. Don't be a dummy, order today! Satisfaction guaranteed or money back.

$g to: SOFTWARE RECORDSl

PO BOX 8401-B UNIVERSAL CITY, CA 91508

(CALIFORNIA RESIDENTS: PLEASE ADD 6% SALES TAX)

H = W PRINT INPUT Xt

'DO YOU WANT TO GO FIRST (Y OR N)

00910 00950 00960 00970 00980 00990 01000 01010 01020 01030 01010 01050 01060 01070 01080 01090 0 1100

0 1110

01 120 0 1130 01110 01150 0 1160

0 1170 01180

01 190 0 1200 0 12 10 01220 0 1230 01210 01250 01260 0 1270 0 1280 0 1290 0 1300 0 13 10 0 1320 01330 01310 01350 01360

COMPUTER'S MOVE 0 THEN 1020

IF Xt = "N" THEN 10 20 IF Xt <> "Y" THEN 930 REM PRINT INITIAL BOARD GOSUB 3100 GO TO 1690 REM IF F2 INPUT Xt B1 = -1 13 = J3 = 0 T 1 = C T 2 = H

REM SCAN FOR BLANK SQUARE

FOR I = 1 TO 8

FOR J = 1 TO 8

IF A(I , J ) <> 0 THEN 1380

REM FOUND A BLANK SQUARE

REM DOES IT HAVE AN OPPONENT AS A NEIGHBOR?

GOSUB 2620

IF F1 = 0 THEN 1380

REM FOUND AN OPPONENT AS A NEIGHBOR REM HOW MANY OF HIS PIECES CAN WE FLIP? REM (DON'T DO IT NOW) U = -1 GOSUB 2820

REM EXTRA POINTS FOR BOUNDARY POSITION

IF S 1 = IF ( I S 1 = S 1 IF ( J = S 1

S 1 REM IF S 1 IF S1 REM REM REM

0 THEN 1380

1 ) • (I - 8) + S2

1 ) » (J - 8 )

+ S2

<> 0 THEN 1230

<> 0 THEN 1260

IS THIS BETTER THAN THE BEST FOUND SO FAR? < Bl THEN 13 BO > Bl THEN 1310 A TIE; RANDOM DECISION

THE NEXT TWO EXECUTABLE STATEMENTS CAN BE DELETED FOR A VERSION OF B AS IO--WITHOUT RANDOM NUMBERS R = RND(1)

IF R > 0.5 THEN 1380 REM YES B 1 = S 1 13 = I J 3 = J

61

Listing 1, continued:

01370

REM

END OF SCAN LOOP

0 2 3 0 0

GO TO 2500

01 380

NEXT

J

023 1 0

PRINT "YOU WON !"

01 390

NEXT

I

0 2 32 0

CI = C1 - H1

01 too

REM

COULD WE DO ANYTHING?

02330

IF CI > 0 THEN 2350

0 1 1 1 0

IF B 1

> 0 THEN 01180

0 2 3 10

C1 = -CI

01120

REM

NO

02350

CI = (61 » C1) / N 1

01130

PRINT

"I HAVE TO FORFEIT

MY MOVE"

02360

PRINT "THAT WAS A ";

OHIO

IF Z

= 1 THEM 2 190

02370

IF C1 < 11 THEN 2190

01150

Z = 1

02380

IF C1 < 25 THEN 2170

01160

GO TO

1690

02390

IF C1 < 39 THEN 2150

01170

REM

MAKE THE MOVE

02100

IF C1 < 53 THEN 2I3O

01180

Z = 0

02110

PRINT "PERFECT GAME."

01190

PRINT

"I WILL MOVE TO ";

02120

GO TO 2500

01500

PRINT

I ?;

02130

PRINT "WALKAWAY."

01510

PRINT

11 ti.

ci(J3)

02110

GO TO 2500

01520

PRINT

02150

PRINT "FIGHT."

01530

I = 13

02160

GO TO 2500

01510

J = J3

02170

PRINT "HOT GAME 1"

01550

u = 1

2820

02180

GO TO 2500

01560

GOSUB

02190

PRINT "SQUEAKER !!"

01570

CI =

c 1 + S 1 + 1

02500

PRINT

01580

HI =

H 1 - S 1

025 1 0

PRINT "DO YOU WANT TO PLAY ANOTHER GAME (Y OR N) "

01590

N 1 =

HI + 1

02520

INPUT X$

01600

PRINT

"THAT GIVES ME ";

02530

IF X$ = "Y" THEN 700

01610

PRINT

S 1 ;

02510

IF X$ <> "N" THEN 2520

01620

PRINT

» OF YOUR PIECES"

02550

PRINT "THANKS FOR PLAYING."

01630

REM

PRINT OUT BOARD

02560

STOP

01 610

GOSUB

3100

02570

REM

01650

REM

TEST FOR END OF GAME

02580

REM SUBROUTINE TEST-FOR - PR 0PER-NEIGHBOR

0 1 660

IF HI

= 0 THEN 2190

02590

REM ASSUMES:

0 1670

IF N1

= 61 THEN 2190

02 60 0

REM I,J LOCATES A ELANK SQUARE

0 1 680

REM

HUMAN'S MOVE

02 6 1 0

HhM IUU HUrt iU bht AN AUJALENl 1 £ 1= -1 IJ

01690

T 1 =

H

02 620

FOR 11 = - 1 TO 1

01700

T2 =

C

02630

FOR J1 = -1 TO 1

01710

PRINT

"YOUR MOVE -- IROW,

COL )

02 610

IF A(I+11,J+J 1 ) = T2 THEN 2710

01720

INPUT

I , X}

02 65 0

U t? V T 11

NEXT Jl

0 1730

IF I

< 0 THEN 1720

02660

u [. VT T 1

NEXT 11

01710

IF I

> 8 THEN 17 20

02 67 0

d nu vin rp-> onunn. catiiidc1

REM NO T2 FOUND; FAILURE

01750

IF I

<> 0 THEN 1820

02680

F 1 =0

01760

PRINT

"ARE YOU FORFEITING

YOUR

TURN (Y

OR N )

n

02 690

RETURN

01770

1 NPUT

X$

02700

REM SUCCESS

0 1780

IF X$

<> "Y" THEN 1710

027 1 0

F 1 = 1

01790

IF Z

= 1 THEN 2190

02720

RETURN

c 1800

Z = 1

02730

REM SUBROUTINE SCORE-AND-UPDATE

01810

GO TO

1000

02710

REM ASSUMES:

01820

FOR J

= 1 TO 8

02750

REM CI,J) IS A TENTATIVE PLACE FOR A PIECE TI.

01830

IF C$(J) = X$. THEN 187 0

02760

REM WANT RUNS OF T2 = -TI, TERMINATED BY A T1.

0 1810

NEXT

J

02770

REM IF U IS TRUE (1), MARK THOSE RUNS AS Tl'S.

0 1850

GO TO

1720

02780

REM RETURN SUM OF ALL RUNS (T2'S ONLY) IN SI.

01860

REM

CHECK IF BLANK

027 90

REM MAIN PROGRAM CONTAINS THE FOLLOWING ARRAYS

01870

IF A(I,J) s 0 THEN 1910

02800

REM 11: 0-1-1-1 0 1 1 1

0 1880

PRINT

"SORRY, THAT SQUARE

IS

OCCUPIED;

TRY AGAIN"

028 1 0

REM J1: 1 1 0-1-1-1 0 1

018 9 0

GO TO

1720

02820

S1 =0

0 1900

REM

CHECK FOR LEGAL NEIGHBOR

02830

FOR K = 1 TO 8

01910

GOSUB

2620

02810

15 = 11 ( K )

01 920

IF F1

= 1 THEN 1970

02850

J5 = Jl(K)

01930

PRINT

"SORRY, YOU ARE NOT

NEXT

TO ONE

OF MY

PIECES;"

02860

16 = 1 + 15

0 1910

PRINT

"TRY AGAIN"

02870

J 6 = J + J 5

01 950

GO TO

1720

02880

s 3 = 0

01960

REM

CHECK IF LEGAL RUN

02890

IF A(I6,J6) <> T2 THEN 3070

01 970

11 s

1

02900

REM LOOP THROUGH THE RUN

01980

GOSUB

2820

0291 0

S3 = S3 + 1

01990

IF SI

> 0 THEN 2030

02920

16 = 16 + 15

02000

PRINT

"SORRY, THAT DOESN1

T FLANK A ROW

; TRY

AGAIN"

02930

J6 = J6 + J5

02010

GO TO

1720

02910

IF 1(16,J6) = Tl THEN 2970

02020

REM

EVERYTHING LEGAL; MAKE

HUMAN'S MOVE

02950

IF A(I6,J6) = 0 THEN 3070

02030

Z = 0

02960

GO TO 2910

02010

PRINT

"THAT GIVES YOU ";

02970

S 1 = S1 + S3

02050

PRINT

S1 ;

02980

IF U <> 1 THEN 3070

02060

PRINT

" OF MY PIECES"

02990

REM UPDATE BOARD

02070

U = 1

03000

16 = 1

02080

GOSUB

2820

030 1 0

J 6 = J

02090

H 1 =

H1 + S1 + 1 ,

03020

FOR K1 = 0 TO S3

02 1 00

C 1 =

CI - SI

03030

A ( I 6 , J 6 ) = T 1

02110

N 1 =

N1 + 1

03010

16 s 16 + 15

021 20

REM

PRINT OUT BOARD

03050

J6 = J6 + J5

021 30

GOSUB

3100

03060

NEXT K1

02110

REM TEST FOR END OF GAME

03070

NEXT K

02150

IF CI

= 0 THEN 2190

03080

RETURN

02160

IF N 1

= 61 THEN 2190

03090

REM SUBROUTINE PRINT-BOARD

02 170

GO TO

1000

03100

PRINT

02180

REM

END OF GAME WRAPUP

03110

PRINT" ABCDEFGH"

02190

PRINT

03120

FOR I = 1 TO 8

02200

PRINT

"YOU HAVE »i

03130

PRINT I;

02210

PRINT

H1 ;

03110

FOR J = 1 TO 8

02220

PRINT

" PIECES AND I HAVE

11 .

1

031 50

PRINT » ";

02230

PRINT

C1 ;

03160

PRINT D$(A(I,J>+1 ) ;

02210

PRINT

» PIECES -- "j

03170

NEXT J

02250

IF HI

= CI THEN 2290

03180

PRINT

02260

IF HI

> CI THEN 2310

03 1 90

NEXT I

02270

PRINT

"SORRY, I WON THAT

ONE .

03200

PRINT

02280

GO TO

2320

0321 0

RETURN

02290

PRINT

"A TIE ! ! "

03220

END ■

62

NOW! Every Business Can Own One

A secretary, accountant, and financial advisor all rolled into one for less than $1.50 per hour. Sound too good to be true? Let the ADMINISTRATOR do it for you.

Our "General Ledger Program" is a complete comprehensive business system designed to keep all of your company's records without the need for updating from other programs and there is no need to keep monthly tear sheets to be added together for the end of the year reports as our system will provide you with year end account totals for cash, accural, hybrid and chart of accounts systems. This program generates over 30 major reports. Including: 941's, P/L's, Balance Sheets, and year end account totals for filing Federal Income Tax Schedule C's and/or 1120's plus a lease purchase plan and 24-hour field service in most areas. Hard to believe! For less than $250/month you can lease your very own, nothing else to purchase. ADMINISTRATOR I includes a miniature micro computer; S-100 Buss, with over 65K of user RAM. No switches to set, Power-on operation, multiple I/O interfaces, line printer, Video Terminal, Double-Density Disk, Disk Extended Basic and applications Software diskettes complete with full documentation (includes General Ledger, Payroll, Word Processing, Medical A/R, A/P, Engineering, Statistics, more) includes "Help" and Tutorial Software.

ADMINISTRATOR I $8999.00*

Additional 600K disks optional.

Business Software Too!

Includes over $75,000.00 of business programs free and that's only part of what we're giving away. We built our reputation providing quality software at affordable prices. Now we are going to do the same with our Administrator I

Compare at $30,000 for other micros or $70,000 for mini's

•Add $100 for Express shipping and handling • No Purchase Orders — Include 50% deposit with all COD orders.

SCIENTIFIC RESEARCH

1712-B Farmington Court • Crofton, MD 21114 (301) 721-1148

Dealer Inquiries Invited

An APL Interpreter for Microcomputers

Part 3: Mathematical Processing

Introduction

In part 2 of this 3 part series (see last month's issue) I covered the expression evaluation portion of an APL interpreter. This month's concluding installment deals with mathematical processing. Mathematical processing is a 2 part function: recognition Mike Wimble followed by interpretation. Both of these

6026 Underwood Av SW topics are covered here, followed by a short

Cedar Rapids IA 52404 summary.

The Great APL Interpreter Contest

As an incentive to those experimenters who would like to try writing their 'own APL interpreters based on this series of articles, BYTE announces the Great APL Interpreter Contest. We will award prizes for APL interpreters (suitable for publication with royalties to authors) based on Mike's flowcharts (or independent of them if you prefer).

Contestants are free to write their interpreters for any microprocessor they choose. Entries will, however, be judged on their suitability for use on small systems with a minimum of 16 K bytes of memory, as well as on programming elegance and efficient use of space. All of these factors should therefore be kept in mind.

Entries should be addressed to BYTE, attn: The Great APL Interpreter Contest, 70 Main St, Peterborough NH 03458, and

must be postmarked no later than midnight, February 28 1978. Entries must be in the form of a publication quality manuscript which describes the implementation of the interpreter and which includes a listing of source code and object code. Contestants should also submit machine readable source and object code in the form of paper tape or cassette.

The winners (if any) will receive $1000 plus normal author payments, should the entry be chosen for publication in book form or as an article in BYTE. We reserve the right to choose more than one winner under the same terms.

Judging will be done by the editors of this magazine. Those seriously interested in entering this contest should call Carl Helmers or Chris Morgan at BYTE, (603)924-7217. May the midnight oil burn prosperously for all.

64

Recognition of a Valid Operator

The recognition process involves testing the current syllable in table SP for an appropriate noun. If the noun is found, then CODE will be set to reflect the appropriate specified operation. Figure 29 shows this process clearly for the recognition of monadic operators. The recognition of dyadic operators (see figure 30) is a little more involved, but the principle is the same. The extra processing involved is merely to recognize the two possible special forms of a dyadic operator: the inner product and the outer product.

CALL MOP(B)

B set true if a monadic operator found. B set false otherwise.

^ mop

I SP(I).C-4 A OR ^SP(I).C = 5

CODE-*- SP(I).P B-«— TRUE t-—\ -I

return"^

Figure 29: Recognition of a monadic operator.

^ pop ^

B-*- FALSE

RETURN^

CODE-*- SPUl.P

CODE >80

DYADIC

MIXED OPERATOR WYES

r" i

CALL DOP(B)

B set true if a dyadic operator found. B set false otherwise.

I

. SPdl.C -7 8 ■ A SPID.P- ',' I I I

| YES i INNER/OUTER

PRODUCT FOUND

'SP(I).C-6 ?

I

CODE-*- CODEH 100 • SPID.P I —— I - I B-*-TRUE

|spm.c-7a

I SP(I).P = SMALL ! i CIRCLE

INVALID INNER PRODUCT I . J EXPRESSION

^ERROR 27^

-(^RETURN ^)

^ERROR 26^

INVALID OUTER PRODUCT EXPRESSION

Figure 30: Recognition of a dyadic operator.

65

Figure 31: Interpretation of a monadic operator.

fYIONADIC-^N

IsubrJ

AUX*SVAL(SV)

RED ^ (T°

BOt/ FIGURE 34)

MIXTE ) 'figure 32)

NO; SCALAR MONADIC OPERATOR

X "«— D (AUX) Z ■*— DA

D(Z)-«-D (AUX) AUX-«— AUX+I X"«- X-l

Z+ I

MAKE COPY OF DESCRIPTOR

N0 S Z i (DA + I+D (AUX + I )) I

OPERAND FOR TILDE OPERATOR NOT A BINARY 0 OR I

3,NEGATE

5,INVERSE

(^ERROR 20^

ATTEMPTED DIVISION BY ZERO 6, EXPONENTIATION

2.7182818 f \

( FROM FIGURES 32,33 AND 34)

D(Z)-«— V Z + I AUX-«- AUX+I X-«—X-l

SVAL (SV)-«-DA DA-»— Z

^ return"^

-0

Interpretation of Monadic Operators

After a valid operator is recognized, it is interpreted. Interpretation involves unstacking pointers from table SVAL, which points to the operands; performing the operation to create a result in table D; and finally stacking a pointer to the result back in table SVAL. Figure 31 begins the description of monadic interpretation. Generally, a monadic operator generates a result having the same shape as its operand; in two cases, however, this is not true. The process of reduction produces a result with one less dimension than the operand. Also, the monadic operators iota, rho, and ravel may produce results having greater or fewer dimensions than their corresponding operands.

So, in figure 31, after saving a pointer to the argument for the monadic operator, a test is made for a reduction or mixed operator and the appropriate process is executed. The interpretation of nonspecial monadic operators is then straightforward. First, since the result will have the same shape as the argument, it is given the same descriptor as the argument. Next, the monadic operator is performed on each value in the argument (or on the single value for scalar argument) to produce each value in the result. Finally, a pointer to the result is stacked in table SVAL and index DA is updated to point to the next free space in table D.

66

MOST ORDERS SHIPPED WITHIN 10 WORKING DAYS

[Wrire in each box the quantity ol eacli part required]

KIT ASSEMBLED KIT ASSEMBLED

1 1 WWC 68EXT-L 8KSC-Z [ I I 88 EXT 68WWC □

1 I 68EXT-S LZ1 □ BBUC

ORDER FORM

KIT ASSEMBLED I I 4KROM I [

j 68KSC J 8KSC

| ASSEMBLY AND OPERATING MANUAL $4.00

NAME.

PLEASE PRINT OR TYPE

ADDRESS. CITY

.STATE.

ZIP.

SEND CHECK • MONEY ORDER • COD S ACCEPTED • CREDIT CARDS

SEALS ELECTRONICS, INC P.O. BOX 11651 KNOXVILLE, TN 37919

EXPORT INFORMATION

Canadian and European community customers use our EXPORT DELIVERY SERVICE Guaranteed delivery to your address We take care of charges for customs clearance, duties, federal taxes and insurance Add exactly 35% to the prices shown (45% in Canadian dollars! Allow 5 extra days for delivery Minimum export order S100 00 DEALER INQUIRIES WELCOME

zSh PW PffB

II81

JbIt* ■

■ ■ • »

m

i i ri I ri i'im 11 ii

1'. »»m

UjJ [READ ONLY MEMORY]

Will accept up to 16 ea. 1702-A or 5203 EProm Providing up to 4096 words of non-volatile memory for Boot Loads to Complete Programs. Programming Available at Factory for $3.00 per EProm when accompanied by binary formated tape.

I Each 1702-A has its own Vgg clocked for Low Power Consumption. 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 i

TATIC MEMORY CARD FO

8192 Words of Static Memory Access Time: 500 nsec. (250 nsec on request) Memory Chip91L02 APC or 2102AL-4 Battery Standby

Address Selected 8 Ea. SPST Dip Switch Low Power All Lines Buffered. All IC's with sockets

Solder Masked on both sides of PC Board.

Price. . . $268.00

[STATIC MEMORY CARD]

ALTAIR'^iMSAI*1and S-100 buss compatible. Access Time: 250 nsec max. Ziloq 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

STED PRODUCTS AT KIT PRICES

ham No.

8KSC WWC 88 EXT 68 Ext S 68 Ext L 68 WWC 3BUC

Description

8K Static Memory Card 500 usee Wire Wrap Card 88 Extender Card Extender Card (Small) ■ Extender Card (Large) .1 Wire Wrap Card wife Battery Back-Up <

$ 269.00 $ 37.50 $ 29.00 $ 19.00 $ 29.00 $ 35.00 $ 55.00

$269.00 $ 47.50 $ 38.00 $ 25.00 $ 39.01 $ 45.01 $ 68.0

ORDER DELIVERY: FROM STOCK TO 10 DAYS

0 ELECTRONICS.INC.

TELEX NO. 55 7444 TELEPHONE NO. 615/693-8655

67

X <

Q 1 i to

* + + o

< < < I

Q££ »

Q O Q N

i.

O □ *

i2

111

~3 J

o

<3

§1

E>

O CM £ &

-a

.5? o

CD £

bo tZ <u r

nj

C <u

C X)

o

c

CD

M—

.Q

o

c

-4-1

c

o

ris

IUS

o

j:

=i

b

i/i i/i

he

c

<p

<D

CD

L_

i

E

Q.

i_

:

i—

<D

o

E

□

00

L_

1—

c

O

rci

CD

4->

CD

Q.

4->

-C

O

o E Em

< a

id -2 >.- «

5 01 r

CD S— CD .

o ^

0) cd ■ai >

rc! CD

1/1 q_ 3

J 0) CO

-a

1 s*s

C

O

< Q

o -a

cd o

3

BO

CD

D- _

O « M

"a c

•o c

m

_l < >

§• o

c o

cu

53

o

15 0

s

p.

Si .1

Continued on page 78

68

The new generation of Diskette Drives is here and under control.

PerSci has it-a family of diskette drives "design-years" ahead of competitive drives available in complete low cost subsystems for interface to 8080, 6800 and other major microprocessors.

The Highest Performance Diskette Drives:

PerSci diskette drives, both single and dual head units, offer a combination of performance features unique in the marketplace while still maintaining compatibility in existing systems:

□ Voice coil positioning for access speeds seven times faster than competitivt (76 tracks in 100

□ A low power all DC system reduces cost and assures high reliability

□ Automatic electric loading simplifies operation and protects media

□ Small size permits 5 single drives or 4 dual drives to be mounted vertically in a 19 in. rack

The Most Powerful Diskette Drive Controller

The PerSci Model 1070 Diskette Drive Controller puts the advanced performance of PerSci drives to work in microprocessor based systems. An IBM format compatible, "intelligent" controller, the Model 1070 will handle from 1-4 drives with minimum demand on the host system.

-now

In fact, with addition of a power supply and keyboard to the PerSci subsystem, the user can

perform many floppy disk routines without additional hardware or software. Controller features include:

□ 8080 microprocessor

□ Formatter/control IC

□ 4K disk operating system

□ IK data buffer

□ 8080 or 6800 microprocessor interfaces

□ RS-232 serial interface optional

□ IBM data format

An Economical Diskette Drive Subsystem

A complete subsystem including a single diskette drive (Model 70), the Model 1070 controller with interface and a controller-to-disk-drive cable is available in single units or OEM quantities. For double capacity, a dual diskette drive (Model 277) subsystem is also available. Don't settle for yesterday's diskette drive. Get the new generation under control from PerSci,

Incorporated, 12210 Nebraska Ave. W. Los Angeles, CA 90025 (213) 820-3764

Peripherals a Generation Ahead.

Circle 361 on inquiry card.

PREPARE a EXECUTE

YES

RECOGNIZE AND

CATEGORIZE INSTRUCTION

MOVE

INSTRUCTION TO INSTRUCTION BUFFER

SET UP OPERATING ENVIRONMENT THEN EXECUTE

RESTORE VALUES OF HARDWARE REGISTERS

EXECUTE INSTRUCTION IN BUFFER

RESTORE CORRECT PC VALUES

SAVE VALUES OF HARDWARE REGISTERS

^ return"^

FORMAL SIMULATION OF INSTRUCTIONS IMPOSSIBLE TO DIRECTLY EXECUTE' CORRECTLY

Figure I: Basic flowchart for the simulator. Each of the square blocks constitutes a separate subroutine.

An 8080 Simulator

A simulator can be very useful to the personal computing experimenter for a number of reasons. The idea of a simulator is to perfectly duplicate the operation of a certain computing system using the instruction set of another computer. For example, suppose you have an 8080 program which you want to run on your 6800 system rather than completely write a new program. Since the simulator acts functionally like an 8080 processor to interpret the 8080 object code bit patterns, its hardware registers and program counter, it is possible for the 6800 system to run the 8080 program. Another attraction of a simulator is that in software it is possible to achieve a number of debugging and checkout functions as a part of the simulator itself, since the machine being run is always under total software control. When a simulator for rpachine X is run on machine X, these attractions can justify the use of the simulator.

A simulator usually has two drawbacks however: memory requirements and speed reduction. The speed reduction drawback is usually the more objectionable feature, although a fairly complex simulator can easily take up 8 K to 16 K bytes of memory space, depending on the complexity of the computer system being simulated. It is not unusual that thousands of instructions are executed before the functions of a single instruction can be simulated. This means that the simulator runs at a speed thousands of times slower than the actual computer does, which may be a difficulty in some cases.

Writing a simulator is a straightforward process as its functions are more or less well-defined by the documentation of the computer being simulated. All it has to do is to recognize the machine instruction, carry out its function, and record its effects. Of course you will have to keep track of the

70

Kin-man Chung 2114-204 S Orchard St Urbana IL 61801

values of various registers, stack pointer, program counter, etc.

If, however, the computer being simulated is written on the same computer doing the simulation, eg: an 8080 simulator on an 8080 microcomputer or a Z-80 simulator on a Z-80, then a lot of work can be simplified. As a matter of fact, I have discovered a very neat trick for writing such a simulator that greatly reduces the program length and increases its speed. An 8080 simulator was written on my 8080 computer which uses about 350 bytes of memory. Using the simulator, a quite sophisticated debugging program was also written using another 1 K bytes of memory.

General Description

In a simulator the hardware registers, such as the program counter, stack pointer, index registers, conditional flags, etc, have to be simulated by memory locations. The instructions have to be recognized and executed, and the memory locations simulating the hardware registers have to be updated accordingly. Take as an example the INR A, increment accumulator, instruction in the 8080. The value 1 is added to the location simulating the accumulator, and the locations simulating conditional flags are updated according to whether the carry, sign bit, etc, are affected. This has to be done for all the instructions in the instruction set, using software. A major portion of the simulator program is actually "wasted" doing this kind of work. In my 8080 simulator, I still have to use memory locations to simulate hardware registers, but I do not simulate the instructions at all. How can this be done? The idea is actually quite simple. Instead of simulating the process of each instruction by elaborate software, I let the computer actually execute the instruction. Since the computer is simulating a

computer whose language it speaks, this can always be done. Of course before we can do this, we have to fetch the instruction to be simulated into an instruction buffer, a section that is under simulator control. Under the correct operating environment, the simulator should remain in control right after executing the instruction in the instruction buffer. The various parts of the routine that simulate a single instruction cycle are illustrated in figure 1.

For those instructions that do not change the values of the program counter abruptly, there is no problem. After actually executing the instruction in the instruction buffer, the instruction next to it is the next instruction to be executed. The only problem which occurs is when there is a jump or call instruction. If this type instruction is actually executed in the instruction buffer, control would be forced to go to whatever location is specified in the instruction. The trick used is to change the call or jump operand of the instruction to a location under simulator control. The original address must be stored someplace, of course; more about this later.

There are five types of instruction that

Listing 1: The 8080 assembler listing for the 8080 simulator.

■ *** 8080 SIMULATOR ROUTINE ***

SIM:

LHLD PC

MOV A,M

CALL RECOGN

LHLD NBYTE XCHG

LHLD PC

DAD D

SHLD PC

; *** FETCH **« MVI

D,4

LXI B.IBUFF+2 NXT: DCX H

MOV A,M

; Get the value of PC.

; Load the instruction into acc.

; Call the recognizer.

; Get number of byte and

; load it into (D,E).

; Get the value of PC again

; and add these 2 num to get the next PC.

; Store it back at PC.

; Reg D, which keeps track of # byte to fill the

; inst buff, is initially set to 4.

; (B,C) is set to the last byte of inst buff.

; (H,L) points to the last byte of the inst in user prog.

; Fetch the instruction from user program.

71

Listing 1, continued:

NXT2:

NOT1:

N0T2:

NOT3:

LDSTK:

ST AX

B

DCX

B

DCR

D

DCR

E

JNZ

NXT

XRA

A

DCR

D

JZ

PREPARE

STAX

B

DCX

B

JMP

NXT2

'ARE ***

: LDA

TYPE

DCR

A

JNZ

NOT1

LHLD

HL

SHLD

PC

RET

DCR

A

JNZ

NOT2

LHLD

IBUFF+1;

SHLD

JCAD

LXI

H.CAPT

SHLD

IBUFF+1

JMP

LDSTK

DCR

A

JNZ

NOT3

LHLD

IBUFF+1

SHLD

JCAD

LXI

H,JPPT

SHLD

IBUFF+1

JMP

LDSTK

DCR

A

JNZ

LDSTK

LHLD

PC

XCHG

LHLD

USESTK '

DCX

H

MOV

M,D

DCX

H

MOV

M,E

SHLD

USESTK

LDA

IBUFF+2

ANI

70

MOV

L,A

XRA

A

MOV

H,A

SHLD

PC

RET

LXI

H,0

DAD

SP

SHLD

STACK

LHLD

USESTK

SPHL

DCR

A

JNZ

RESTORE

LXI

H,REPT

PUSH

H

; *** RESTORE ***

RESTORE: LHLD BC

MOV C,L

MOV B,H

LHLD DE

XCHG

LHLD SW

PUSH H

POP PSW

LHLD HL

; *** INSTRUCTION BUFFER

IBUFF: DB 0,0,0

■ * * * SAV E * * *

SAVE:

SHLD HL PUSH PSW POP H

; and store at the inst buffer. ; starting from the last byte.

; Rem: E contains the number of bytes of the inst.

; Repeat until all bytes of the inst are moved.

; Set A=0, the NOP inst.

; Decrement D.

; If inst buffer is filled, quit.

; else fill the rest of the inst buffer

; with NOP inst

; until all done.

; Now check type of inst for special preparation.

; If it is not a type 1 inst, goto NOT1. ; Type 1 - PCHL inst.

; PC is loaded with the value of HL. ; Return.

; if it is not a type 2 inst, goto NOT2.

; Type 2 — CALL and Ccond inst.

; The operand of the call inst in the inst buffer

; is temporarily store at JCAD

; and the address CAPT is put

; into the instruction.

; Goto LDSTK directly.

; If it is not a type 3 inst, goto NOT3. ; Type 3 — JMP and Jcond inst. ; Similar to type 2 inst.

; except JPPT is used instead of CAPT.

; If it is not a type 4 inst, goto LDSTK. ; Type 4 — RST inst.

; The next 8 inst push the value of PC into userstack:

; Set (D,E) to PC value.

; Load address of user stack.

; Move high value of PC.

; Move low value of PC.

; Update user stack pointer value.

; The next 6 inst set PC to its correct value.

; ACC now contains the RST inst.

; The higher 2 and the lower 3 bits are stripped.

; Set L = low address.

; high address is zero.

; Set H = high address.

; store (H, L) at PC.

; Return.

; Store the simulator stack pointer value. ;at location STACK,

; and set the stack pointer to the value stored

; at USESTK, which contains user stack pointer value

; If it is not a type 5 inst, goto RESTORE. ; Type 5 — RET and Rcond inst.

; The address REPT is forced onto the stack.

; Restore values of reg B and C from loc BC.

; Restore values of reg D and E from loc DE. ; Restore values of acc and PSW from loc SW.

; Finally, restore values of reg H and L from loc HL.

; The 3 bytes of inst in the inst buffer are executed.

; Values of reg H and L are saved at HL. ; Values of acc and PSW are saved at SW.

need special preparation and clean up work. These are:

1) PCHL,

2) CALL and call with conditional execution,

3) JMP and jump with conditional execution,

4) RST,

5) RET and return conditional.

Detailed Description

The size of the instruction buffer is set to hold one instruction. It is a 3 byte memory location for an 8080. If the instruction to be simulated is less than three bytes, the buffer is filled with NOP instructions. A 2 byte memory location, which we call PC, is used as a pointer into the user program to be simulated. It always points to the first byte of the next instruction to be simulated. Memory locations are used for storing the stack pointer, accumulator, program status word and the other six 8080 registers. Since the value of the actual 8080 stack pointer is shared by the simulator and the user program, variables STACK and USESTK are used to store the simulator and user program stack pointer values during alternate use.

Below is a detailed description of each of the modules in the simulator routine. The program is listed in listing 1, and should be read in conjunction with the text.

Recognizer

The recognizer routine determines the number of bytes used by the instruction and the type of instruction to be executed. This is done by the use of a table (TBL). Each entry in the table consists of four bytes, which we call b-|, b2, b3 and b4. The algorithm used is (using a BASIC-like statement):

IF (((inst AND b^ XOR b2)=0) THEN number-of-byte=b3, type-of-instruction=b4

AND and XOR are the logical AND and exclusive OR operations to be carried out bit by bit. The logical operation for each of the entries in the table is checked until one is found to satisfy the logical condition. If no entry satisfies the logical condition, we assume the instruction is a type 6, a 1 byte instruction. This method has the advantage over a table of 256 entries in that it saves space and processing time. The box at the end of this article gives examples of how it works.

The simulator starts by loading the value of the instruction's address and calling the

72

The 8K-32K Expandable Memory That Grows WithYour System

Now, for the first time, you can have a reliable true static memory that will grow with your system. Start with the board and 8K memory. Then add on one, two or three 8K increments of memory up to 32K. 250 ns access time. The Artec 32K Expandable Memory allows you plenty of room for memory and all necessary support hardware.

For five years Artec craftsmanship and reliability has been proven in tough industrial use. Now, you too can enjoy breadboards and memories that will work time after time. Boards like the GP 100 and the wire wrap WW-100. Send for an Artec Board, your order will be sent the same day as received.

Board & 8K of memory—$290.00 8K add on kits—$255.00 ea. Full 32K board—$1,055.00

GP-100—$20.00

Maximum design versatility along with standard address decoding and buffering for S—100 systems. Room for 32 uncommitted 16 pin IC's, 5 bus buffer & decoding chips, 1 DIP address select switch, a 5 volt regulator and more. High quality FR4 epoxy. All holes plated through. Reflowed solder circuitry.

WW-100—$20.00

A wire wrap breadboard, similar to the GP 100. Allows wirewrap of all sizes of sockets in any combination. An extra regulator position for multiple voltage applications. Contact finger pads arranged for easy pin insertion.

TO ORDER: Use your Mastercharge or BankAmericard. Or just send along a money order. Your order will get same day service.

FOR MORE INFORMATION: For more information about these or any of Artec's complete line of circuit boards or for either industrial or personal use, please call or write. A catalogue will gladly be sent.

Please send me:

□ 32K □ GP-100 □ WW-100

□ I've enclosed a money order. Bill my □ Mastercharge

□ BankAmericard No

Name

Address City

. State

-Zip.

10% discount for students & computer club members.

mec aecTRONia, inc.

605 Old County Rd. • San Carlos, CA 94070 • (415) 592-2740

Circle 378 on inquiry card.

Listing 1, continued:

qui n on i_u

SW

; Values of reg D and E are saved at DE.

QUI Pi

on LU

DE

MOV

H,B ; Values of reg B and C are saved at BC.

IVIOV

L,C

SH LD

BC

LDA

TYPE ;

Load TYPE into acc.

CPI

5 ;

Is it a type 5 inst?

JNZ

STSTK ;

Skip the next inst if not.

POP

H ;

Clean the garbage from the stack.

STSTK:

LXI

H,0

Store the user stack pointer value

DAD

SP

SHLD

USESTK ; at location USESTK,

LH LD

STACK

and set the stack pointer back to the value

SPHL

; at STACK.

RET

; Return.

■*** CLEAN UP ***

CAPT:

POP

H

For Type 2 inst, clean up the garbage on the stack

LH LD

PC ; and load correct return address onto

PUSH

H ; the stack.

JPPT:

LHLD

JCAD

For Type 2 and 3 inst, load correct execution address

SHLD

PC ; previous stored at JCAD and store at PC.

JMP

STSTK

Resume processing at STSTK.

REPT:

POP

H

For Type 5 inst, the correct return address is on the

;top of the stack

SHLD

PC ; which is popped and stored at PC.

JMP

STSTK ; Resume processing at STSTK.

; *** THE RECOGNIZER SUBROUTINE ***

RECOGN

LXI

H,TBL-2

Load the starting address of the table minus 2.

; Rem: acc contains the inst to be simulated.

MOV

C,A

It is temporarily stored at C.

AGAIN:

MOV

A,C

The inst is restored from reg C.

INX

H

INX

H

(H,L) points to the 1st byte of entry in the table.

MOV

B,M

Get AND mask.

ANA

B

Perform AND operation.

JZ

BYTE1

If result is 0; either NOP inst or end of table.

INX

H

MOV

B,M

Get XOR mask.

XRA

B

Perform XOR with B.

INX

H

JNZ

AGAIN

■ If result is 0 then the inst is not recognized yet.

MOV

A,M

; else get and

STA

NBYTE

■ store number of byte of the instruction.

INX

H

MOV

A,M

Also get

STA

TYPE

and store type of instruction.

RET

; Return.

BYTE1:

MVI

A,1

This is a 1 byte inst.

STA

NBYTE

; Store 1 into NBYTE.

MVI

A,6

This is also a type 6 inst.

STA

TYPE

Store 6 into TYPE.

RET

; Return.

; *** VARIABLE AND DATA ***

NBYTE: DW ; Number of byte of the instruction.

TYPE: DB ; Type of instruction.

PC: DW ; Program counter for the user program.

STACK: DW ; Simulator stack pointer.

USESTK: DW ; User program stack pointer.

SW: DW ; User program accumulator and status word.

BC: DW ; User program B and C registers.

DE: DW ; User program D and E registers.

HL: DW ; User program H and L registers.

JCAD: DW ; Temporary storage for Type 2 and 3 inst.

; The table used in the recognizer consisted of entries of 4 bytes each.

;Byte1: AND mask Byte 2: XOR mask

; Byte 3: Number of inst bytes Byte 4: Type of inst.

TBL: DB 377,351,1,1 ;PCHLinst

DB 377,315,3,2 . CALL inst

DB 307,304,3.2 ; Ccond inst

DB 377,303,3,3 ; JMP inst

DB 307,302,3,3 ;Jcondinst

DB 307,307,1,4 ; RST inst

DB 377,311,1,5 ; RET inst

DB 307,300,1,5 ; Rcond inst

DB 317,001,3,6 ; LXI inst

DB 347,042,3,6 ; STA and LDA inst

DB 367,323,2,6 ; IN and OUT inst

DB 307,006,2,6 ; MVI inst

DB 307,306,2,6 ; 2 byte acc arith inst

DB 0 ; end of the table

recognizer. The recognizer should return the correct values for NBYTE (number of bytes) and TYPE (type of instruction). The value of PC is then updated tentatively, by adding NBYTE to PC. We say "tentatively" because it may be altered later if the instruction happens to be a type 1 to type 5.

Fetch

The instruction is then moved from the user program to the 3 byte locations in the instruction buffer. The loop NXT moves the instruction, while the loop NXT2 fills the instruction buffer with NOP instructions to take care of short instructions.

Preparation

The first five types of instructions have to be specially processed before the instruction in the instruction buffer is executed. Type 1 and type 4 instructions actually bypass the instruction buffer.

Type 1: PCHL

The content of PC is set to the value stored at HL.

Type 2: CALL and Conditional Call

A CALL or conditional call instruction, a CZ ADDR for example, is changed to a CZ CAPT instruction, where CAPT is the starting address of a routine that takes care of the preparation for CALL and conditional call instructions. The original address ADDR is stored at JCAD for further processing at CAPT. When the instruction in the instruction buffer is executed, and in our example, if the zero flag is not set, the next sequential instruction is executed. If however the zero flag is set, then it would branch to location CAPT instead of the original location ADDR. Either way we are in control.

Type 3: JMP and Conditional Jump

A JMP or conditional jump instruction is treated similarly to a CALL instruction, except that JPPT is used instead of CAPT.

Type 4: RST

These instructions are simulated by first loading the value of PC into locations indicated by USESTK-1 and USESTK-2, and decreasing the value of USESTK by 2. This simulates the push stack operation. PC is then set to its correct value. The low PC value is decoded by using an AND operation. The high PC value is zero.

Before starting preparation work for

74

24 Channel LOGIC ANALYZER, complete with 2 cards and 3 sets of probes (only one set shown).

Features

— 24 channels with 256 samples each.

— Display of disassembled program flow.

— Dual mode operation — external mode analyses any external logic system. Internal mode monitors users data and address bus.

— Selectable trigger point anywhere in the 256 samples.

— 0-16 bit trigger word format or external qualifier.

— 10MHz sample rate (50ns min. pulse width)

— Synchronous clock sample with coincident or delayed clock mode.

— User defined reference memory.

— Displays and system control through keyboard entry.

— TTL Logic level compatible (15 pf and 15 pa typical input loading).

— Includes annotated source listing.

' *w see n> m sb l>: t «s m k f w ..<: ?»» m w.* m

nc mi m :e.

w nun

Ml ID. «,!

mi m rr

Elf (?! T

Display of disassembled program flow.

Circle 379 on inquiry card.

Databyte, Inc

P.O. Box 14 7433 Hubbard Avenue Middleton, Wisconsin 53562 Tel: (608) 831-7666

24 channel Logic Analyzer plugs into

your S-100 Bus

The DATALYZER

The Databyte Logic Analyzer (DATALYZER) is a convenient, flexible, high quality device. Efficient engineering has allowed a combination of features previously available in only the most expensive units.

Designed to plug easily into your S-100 Bus, the DATALYZER is a complete system — for only $495. Display of disassembled program flow is a standard feature, not an extra. And the low price includes 30 logic probes, so you can hook up immediately, without additional expense.

The DATALYZER is available in kit form ($495), and as a fully assembled device on two PCB's ($595). Four-week delivery, a substantial warranty, and the Databyte, Inc. commitment to service make the DATALYZER a worthwhile investment. Begin debugging by sending the coupon now.

am aiitn—w nx lima iiiwnwiiwil

mim uMuumMitniift inwi *MMit»«ti«n» Hum iai':»i«Biusiitna xm: iKisinHiimainii

Displays in Hex

Displays in Binary

["Please send me the 24 Channel LOGIC ANALYZER

□ Kit - (manual included) $495.00 (Wis. res. add 4%)

□ Assembled and Tested (manual included) $595.00

□ Operators' manual only $7.50 Delivery of all items in four weeks to:

Name

Address

City

State

Zip_

Telephone

Payment Enclosed: □ Check □ Money Order

□ BankAmericard □ Master Charge Exp. Date

Number

Signature . ^

x AND v

x XOR y

1

Table 1: The results of the AND operation and the XOR operation.

Examples of the Use of TBL

The opcode for conditional jump instructions is 3d2 in octal, where d can be 0, 1, . . ., 7. Pick an instruction, say the JZ instruction;

JZ:

312 11001010

n the program we also know:

AND mask; XOR mask:

307 11000111 302 11000010

Referring to the table for the logical bit operation, perform the required operation:

AND

11001010 11000111

XOR

11000010 11000010

00000000

producing a zero. You can check that all the conditional jump instructions produce a resultant zero. Table 1 is an illustration of the results of the AND and XOR operations.

If you pick another instruction, say the RET instruction:

RET:

311 11001001,

nd perform the same operation:

AND

11001001 11000111

XOR

11000001 11000010

00000011

you will find a nonzero result. It is also obvious that any instruction other than conditional jump instruction would produce a nonzero result.

How do you get the AND mask and XOR mask in the first place?

As an example, look at SHLD, LHLD, STA and LDA instructions:

SHLD: LHLD: STA: LDA:

042 00100010 052 00101010 062 00110010 072 00111010.

Combine these four instructions into one using an OR operation:

001dd010

where d stands for don't care, meaning that it can be either one or zero. Obtain the AND mask by assigning a 0 to d bits and a 1 to the others. Therefore;

AND mask = 11100111.

AND

001dd010 11100111

XOR mask:

00100010

The resultant byte from the AND operation is then the XOR mask.

. . _

return instructions, we have to save' the simulator stack pointer value and set the stack pointer to the user program stack pointer value. There is no instruction in the 8080 processor that directly transfers the value of the stack pointer to registers. We have to use a DAD SP instruction by setting register pair HL to zero first.

Type 5: RET and Conditional Return

The return address (REPT) is first pushed on to the stack. The philosophy here is similar to the call instructions. If the conditional test for the instruction is satisfied, the program will return to REPT instead of the original returning point. The extra unwanted entries on the stack should be cleared. The address REPT is within the simulator and the program is still under simulator control.

Restoration

Since the value of the user stack pointer has already been restored, we only have to restore the values of the accumulator, program status word, and the other six registers from memory locations where they were saved. The only way to obtain the program status word is to push PSW into the stack and pop it up again, making use of the user program stack pointer temporarily. This means that the location USESTK must be properly initialized for the simulator to work. Once the stack pointer is set to a specific value in the user program, that value is used for our temporary work.

Instruction Buffer

By now the instruction buffer should contain the desired instruction, either the modified one or the original one. When this instruction is executed, we should go either to REPT, or to CAPT, or to J PPT, or to the instruction next to it.

Clean Up

If we ever come to the location CAPT, it means that the conditional test for the CALL or conditional call instruction (if any) has been successful and a call has been made. The top of the stack now contains garbage, and should be replaced with the correct return address, the value stored at PC. PC is then set to its correct value, the one that we have previously saved at J CAD.

The clean up work for the JMP and conditional jump instructions is similar except that no stack is involved.

If we come to the location REPT, it means that the conditional test for the RET or conditional return instruction (if any) has

76

been successful and a return has been made. The top of the stack now contains the true return address. It is then popped and stored at PC.

Save

The values of accumulator, program status word, registers and the stack pointer are saved in memory locations, reversing the process in RESTORE.

This completes our discussion for the simulation of a single instruction cycle.

Conclusion

This article has demonstrated how an 8080 simulator can be written on an 8080 computer. Similar simulations can be clone on any other microcomputer, using the same basic technique. Writing such a simulator can be greatly simplified by making use of the existing host computer. The scheme I have shown is a subroutine that simulates an instruction cycle. It can be called repeatedly to simulate continuous execution. Various tests can be made each time before calling the subroutine, and execution can be suspended at any time if necessary. A combination simulator and debugging system can be easily designed and implemented to include the following features:

• A monitor routine that parses, recognizes the commands and branches to the appropriate routines.

• A single step routine that calls the simulator routine once and returns.

• A set break point routine that allows the user to enter break point addresses into the break table.

• A dump register and load register routine that displays and loads the values of various registers.

• An examine, deposit, examine previous, examine next routine that simulates the functions of front panel switches.

• A run routine that repeatedly calls the simulator routine. Before calling the routine it compares the value of PC (the program counter) with the entries in the break table, checks whether the value of PC is within the designated limits, and stops execution or gives warnings if appropriate.

Such a combination simulator and debug system can be very useful in developing and debugging programs written in assembler or machine language. Such a project may turn out to be too complex for beginners, but it is one that is worth undertaking as a challenge by more experienced programmers."

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 compatible 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 regulation 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. cn date and signature. Uncer

UlbKhlltb 3>4.b(J ea. tified checks require 6

FPB-A $359 weeks processing. Calif.

(ASSEMBLED) $499 residents add sales tax.

NORTH STAR COMPUTERS, INC. 2465 Fourth Street Berkeley, CA 94710

77

Circle 359 on inquiry card.

Continued from page 68

Figure 34: Interpretation of the reduction operators.

78

Interpretation of the Reduction Operators

Interpretation of the reduction monadic argument is one of the longer processes. The argument is any nonscalar value, and the result, which has one less dimension than the argument, is formed by applying the reducing operator iteratively to every element in the highest dimension.

Figure 34 illustrates the reduction process. First, the descriptor of the result is built. This descriptor will be the same as the argument descriptor except that the last dimension is omitted and, correspondingly,

the length of the result may be smaller. Next, the identity value is determined by the type of reduction specified. If the last dimension of the input argument is zero, the reduction results in the identity value. Otherwise the elements of the result are computed by applying the monadic operator to the vector of elements along the last dimension of the input argument. Note that since reduction proceeds right to left across this vector, it actually results in the dyadic use of the monadic operator.

OPG-«- SVAL (SV) SV-4-SV - 1 OPD-»- SVAL (SV)

OPG = RIGHT ARGUMENT ADDRESS OPD = LEFT ARGUMENT ADDRESS

30 S

SHAPE S

ENATE y

* * *

FIGURE 40 *

H D(OPG + |). D( OPD+ I ) I I I

YES; BOTH ARGUMENTS ARE SAME DIMENSION

BOTH ARGUMENTS ARE SCALARS (TO FIGURE 37)

NO; BOTH ARGUMENTS ARE MATRICES

Z-«-OPG + 2 X«-OPD + 2 Y-«— I

* NOT IMPLEMENTED IN THIS VERSION OF THE APL INTERPRETER

Figure 35: Interpretation of dyadic operators.

DYADIC OPERATOR APPLIED TO ARGUMENTS WITH NON CONFORMABLE RANGES

Yl<- Yl * D(Z) Z«- Z+ I

Z-—

OPD

x+—

OPG

FALSE

Z POINTS TO ARRAY X POINTS TO SCALAR

DYADIC OPERATOR APPLIED TO ARGUMENTS WITH NON CONFORMABLE RANGES

RROR 28

Z-— OPG X»- OPD L-- TRUE

FIGURE 39

Z POINTS TO ARRAY X POINTS TO SCALAR

Interpretation of Dyadic Operators

Any routine designed for the interpretation of dyadic operators must, in contrast to monadic operators, be able to handle a myriad of possibilities. Not only are there the special cases of inner and outer products, but iota, reshape and concatenate operators must be specially handled. Furthermore, the nonspecial cases may have scalar arguments, nonscalar arguments of the same size and shape, or a scalar argument and a nonscalar argument. Each case requires some extra processing.

Figure 35 begins the description of dyadic operator interpretation. Two pointers are popped from stack SVAL. OPG points to the right argument of the dyadic operator and OPD points to the left argument. Next, the various processing method requirements are determined as described above. Inner and outer product interpreters as well as IOTA and CATENATE interpreters were not implemented in this version of the APL interpreter and will not be described here. The special processing then continues at one of the following blocks: RESHAPE, SCAL, SAMERANK and DIFRANK.

79

Calculating a Numerical Dyadic Result

Figure 36: Computation of a numerical dyadic result.

(dyad-comp)

Before proceeding further, look briefly at figure 36. Whenever a numerical dyadic result is needed, this subroutine is invoked. This saves the redundant coding which would result if the various special dyadic handlers each calculated their own results. Instead, the special handlers need only set up the required SFLOAT and VALUE arguments for processing by this subroutine. The result is a smaller, simpler and better structured program.

52, ADDITION

-| SFLOAT-*- VALUE + SFLOAT

53, SUBTRACTION

-| SFLOAT* VALUE-SFLOAT

54, MULTIPLICATION

-| SFLOAT* VALUE * SFLOAT

55, DIVISION

-| SFLOAT* VALUE / SFLOAT

56, EXPONENTIATION

-\ SFLOAT* VALUE ^ SFLOAT*

71, EQUALITY

72, INEQUALITY

FEQUAL

73, LESS THAN

FLESSTHAN

FNOTEQUAL

74, LESS OR EQUAL

75, GREATER OR EQUAL FGRTEQ

76, GREATER THAN

FLESEQ

7 7, AND

58, MIN

59, LOG

AND-SUBR

FMAX

FLOG

FGREATER

Q RETURN^

6800 REFERENCE GUIDE

FOR PROFESSIONAL AND HOBBYIST

The TOOLyou have been waiting for. A 6800 Reference Data Guide (similar to the IBM green card) containing just about every piece of pertinent information that you are currently spending valuable time searching for. The guide saves TIME, EFFORT and WORK SPACE when programming, debugging and utilizing the 6800 system.

Included are INSTRUCTIONS, SPECIAL OPERATIONS, HEXADECIMAL/DECIMAL CONVERSION TABLES, code translation tables for MACHINE CODES/MNEMONICS/ASCII/HOLLERITH/BINARY, 6800 MPU, 6820 PIA, 6850 ACIA and almost everything else that will increase your productivity. TRY IT, YOU'LL LOVE IT.

Send $4.95 plus 35$ shipping and handling to: MICRO AIDS, P.O. Box 1672, St. Louis, Missouri 63011

Circle 380 on inquiry card.

80

■ ANY NUMBER OF FILES MAY BE OPEN (IN USE) AT ONE TIME

■ THE NUMBER OF FILES AND SIZE OF FILES IS LIMITED ONLY BY THE SIZE OF THE DISC

■ MERGING FILES REQUIRES NO EXTRA DISC SPACE

■ NO WAITING FOR THE DISC TO RE-PACK

■ LONGER DISC LIFE-MORE EVEN DISC WEAR

Our Basic Floppy Disc System (BFD-68) must, in all modesty be called superb. It comes completely assembled with a disc controller that is plug compatible with the SWTPC 6800. In fact all our products use the 6800 standard SS-50 (Smoke Signal 50) bus used by SWTPC. The cabinet and power supply are capable of handling up to 3 Shugart Mini-Floppy Drives. One drive is included in the price of the BFD-68 and others may be added easily at any time. Or you may save money by ordering the dual-drive BFD-68-2 or triple drive BFD-68-3 (pictured). Price: BFD-68 $795, BFD-68-2 $1139, BFD-68-3 $1479, SA-400 Drive $360.

The BFD-68 includes our Disc Operating System Software. Our software provides for a soft-sectored disc format consisting of 128 bytes per sector, 18 sectors per track and 35 tracks per disc. The software provides direct commands to name and rename files, transfer memory to disc and disc to memory and to automatically jump to the starting location of any program loaded from disc to memory. The direct command names are: RUN, GET, GETHEX, CLOSE, SAVE, DELETE, APPEND, RENAME, COPY, LIST, FIND, LINK and PRINT. In addition, the Disc File Management subroutines are available to create files under your program control.

A bootstrap PROM is included on the controller board to initiate the Disc Operating System which loads into a 4K memory board located at 7000 or optionally at D000. Thus, you can be up and running from a cold start in just a few seconds.

SUPER SOFTWARE

Free patches are provided for SWTPC BASIC version 2.0 and Co-Resident Editor/Assembler. These patches allow the SAVE and LOAD commands to work with the disc or the cassette at your option.

SUPER EDITOR: Smoke Signal Broadcasting now has its own editor. It is a content oriented editor with string search and block move capability. Changes may be made by referring either to line number or string content or a combination of references. Naturally, it is designed for file transfer to and from the BFD-68. Price: SE-1 $29 on diskette or cassette.

ALLOUR PRODUCTS EXCEPT THE PS-1 ARE COMPLETELY ASS EM BLED.

SUPER ASSEMBLER: Inputs source code from file on the BFD-68 disc system and outputs object code to disc file. Assembly listings include alphabetized and tabulated symbol table. Price: SA-1 $29 on diskette or cassette.

Complete source listing included for both editor and assembler. Order both for $53 and save $5.

SMARTBUG — A CURE FOR MIKBUGITIS: A super smart Motorola-Mikbug replacement that preserves almost all Mikbug entry locations so your present programs will run without modification. Uses ACIA instead of PIA and includes many additional features including a software single-step trace command. A SMARTBUG listing is included and object code is provided on a 2708 free with each P-38 series board purchased. Source listing available separately for $19.50.

NEED A FULL SIZE FLOPPY? Our P-38-FF is a plug-in interface card to the ICOM Frugal FloppyTM. 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 software package. Price $299.

Our P-38 is an 8K EPROM board containing room for 8 2708's. Or, you may use it to hold up to 7 2708's plus your Motorola Mikbug or Minibug II ROM. The P-38 addressing is switch selectable to any 8K location. Price $179.

The P-38-1 contains all the features of the P-38 plus an 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 modification to be made to the 8 volt supply that will increase its output by one volt. Price $24.95.

Our M-16-A is a 16K single power supply STATIC RAM memory system. The M-16-A is fully buffered and requires only half the power of a similar size system using low-power 2102's. With the M-16-A, you can expand your system to 48K and still have room left for one of our EPROM boards. The M-16-A is switch selectable to any 4K starting address and hardware write protect is included. Quick delivery. Price. $529.

BANKAMERICARD, VISA AND MASTER CHARGE WELCOME.

Circle 381 on inquiry card.

Special Cases for

Dyadic Operator Arguments

When both arguments of the dyadic operator are scalars, processing is simple (see figure 37). Similarly, for nonscalar arguments with the same size and shape, the scalar process is more or less applied iteratively (see figure 38). Where only one argument is a scalar, interpretation is a hybrid of figures 37 and 38. This is shown in figure 39. Here the scalar value is applied iteratively to the vector or array.

D(DA)*3 D(DA+D* 0

OA* DA+2 SFLOAT* DIOPG+2) VALUE* DIOPD + 2)

DYAD.

-COMP

D(DA)* SFLOAT SVAL(SV)* DA - 2 DA*DA + 1

Figure 37: Dyadic interpretation for the case in which both arguments are scalars.

SFLOAT = RIGHT ARG VALUE VALUE = LEFT ARG VALUE

COMPUTE RESULT

^ return"^)

AUX* DA Y*l

D(AUX)* DIX + Y-I) AUX* AUX + I Y * Y+ 1

VALUE* D(Z+D(Z)-Y) SFLOAT* D(DA + D (DA)-Y)

DYA D—COMP

D(DA+D(DA)-Y)* SFLOAT Y* Y+ 1

<^ Y<>

''NO

SVAL(SV)* DA DA*DA+D(DA)

RETURN^

MAKE COPY OF ONE OF THE ARRAYS

COMPUTE RESULTS

Figure 38: Dyadic interpretation for the case in which both arguments are nonscalar but of the same shape and size.

ALPHA Z- 80 $ 495

ASSEMBLED

• 12 SLOT MOTHER BOARD

• 12 CONNECTORS (S-100 BUS)

• 17 AMP POWER SUPPLY

• HEAVY DUTY CABINET WITH FAN

• Z-80 CPU BOARD: All Sockets Included, Gold Contact Fingers, High Quality Glass Epoxy PC Board, Double-Sided, Plated Through Holes, Requires Only + 8 VDC / 800 MA.

NOTE: 22 SLOTS/30 AMP POWER SUPPLY - $595.

ADS also sells IMSAI and NORTH STAR Assembled at Kit Prices + LEAR SIEGLER ADM 3A Assembled at $888.00. TERMS: Cash with Order. Prices include Freight. (N.C Residents add 4% Sales Tax.)

ADS

ALPHA DIGITAL SYSTEMS

Data Acquisition, Computation anci Control

ROUTE 4 BOX 171A BOONE, NORTH CAROLINA 28607

Circle 382 on inquiry card.

82

Figure 39: Dyadic interpretation for the case in which only one argument is a scalar.

AUX » DA Y * 1

D(AUX) -» AUX ■» Y ■»

DIZ+Y+I) AUX + 1 Y+ 1

MAKE A COPY OF THE ARRAY

AUX■» AUX-I Y ■* 1 Yl •» Z-i-2

Y ■» Y* D(YI) Yl » Yl + 1

AUX NOW POINTS TO LAST ELEMENT IN ARRAY

, Y<(Z-H + D(Z + I) ) I

YES

COMPUTE NO. OF ELEMENTS IN ARRAY

TRUE

VALUE *

D(AUX)

SFLOAT ■»

D(X+-2)

VALUE -»

D<X + 2)

SFLOAT "*

D(AUX)

DYAD-COMP

D(AUX) ♦ AUX * Yl -»

SFLOAT AUX - 1 Yl +1

COMPUTE RESULT

NO

SVAL (SV) » DA DA •* DA+ D(Z)

^ returnJ

Fun and Games from BITS

101 BASIC Computer Games by

David Ahl. A treasure store of games and simulations, 101 all written in BASIC. It contains both a complete listing and a sample run, along with a descriptive write-up. 256 pages, $7.50.

WHAT TO DO AFTER YOU HH RETURN

P.C.C.'s First Book of Computer Games

What to Do After You Hit Return or PCC's First Book of Computer Games. This is PCC's first book of computer games, a compendium which includes descriptions of numerous games, and listings of 37 selected BASIC games. New second edition, $8.

BITS Inc 70 Main St

Peterborough NH 03458

For ease in ordering, use the coupons on pages 175 and 176, writing in the name(s) of the book(s) you want.

Please note that processing may exceed 30 days in unusual cases.

Circle 383 on inquiry card.

83

t

A D(OPD+l) = I i ' I i

NO

-^ERROR 29^

Figure 40: Dyadic interpretation of the reshape operator.

LEFT ARGUMENT FOR RESHAPE OPERATOR NOT A VECTOR

AUX * DA+2 SIBIN ■* 1 Z * 1

SIBIN ■* SIBIN+DI0PD+2+Z ) Z -• Z+l

I 1

J Z<D(OPD+2) l

COMPUTE NUMBER OF ELEMENTS IN RESULT NOTE: PROBABLY DO NOT WANT TO MULTIPLY IF D10PD + 2 + Z) IS ZERO.

NO

D(AUX) » SIBIN *D(0PD+2) + 2 DIAUX + I) •* DIOPD + I) AUX * AUX+ 2 Z » 1

D(AUX) » D(OPD+ 2+ Z) AUX ■* AUX+I Z -» Z+l

| 1

V. lz< DlOPD + 2) i

XT i_ -J

YES

D ^ 1

NO

BUILD LENGTH OF RESULT BUILD RANK OF RESULT

BUILD DIMENSION ENTRIES

Interpreting the Dyadic Reshape Operator

The last dyadic interpreter described is shown in figure 40. This process interprets the dyadic reshape operator, but the general methodology used is of more importance. By examining how the various pointers are manipulated in this subroutine, as well as the previously described subroutines, the reader should be able to design any other dyadic subroutine. The procedure, as with most numerical processors, is to first check the legality of the arguments. Following this, the descriptor of the result is built. Finally the value elements of the result are computed and a pointer to the result is stacked in SVAL and index DA is updated.

S2BIN * D(OPG)-2-D(OPG+l)

NUMBER OF ELEMENTS IN RIGHT OPERAND

NO

SVAL (SV) » DA

DA ■» AUX

RETURN ^

I "> 1

i SIBIN <S2BINj

YES

X •* SIBIN

X* S2BIN

D(AUX) ■» D(OPG + l+D(OPG + l)+Z AUX -* AUX+I Z ■» Z+l

SIBIN * SIBIN -X

Conclusion

Anyone who has worked with powerful high level interpreters knows that it is no mean task to describe them in so short a series of articles as this. Nevertheless there should be enough information here to allow the building of a powerful APL interpreter. Admittedly, there is room for improvement

84

Circle 384 on inquiry card.

in some areas of design and implementation. Using the experience I gained from my first implementation, I have incorporated many desirable features into several microprocessor implementations which are currently being designed.

Anyone designing an APL interpreter based upon this series of articles and encountering problems should first consult Mr Robinet's article, "Architectural Design of a Directly-Executed APL Processor" (National Technical Information Service, US Dept of Commerce, 5285 Port Royal Rd, Springfield VA 22161), and, failing resolution, should contact me. Finally, although I have attempted to verify the accuracy of all tables, charts and methods used herein, it is still possible that errors or omissions remain.

During the time that these articles have been prepared, I have been actively working on an 6800-based APL interpreter. This work has led to changes and improvements to the flowcharts. Readers who would like to have the latest information are welcome to send a stamped, self-addressed envelope to Mike Wimble, 6026 Underwood Av SW, Cedar Rapids IA 52404."

BUILDING YOUR OWN COMPUTER?

WHY NOT DO IT THE OBJECTIVE DESIGN WAY?

STARTER SET INCLUDES FRONT AND REAR PANELS OF ANODIZED ALUMINUM PRE-PUNCHED AND DRILLED FOR MAXIMUM DESIGN VERSATILITY, COMPLETE PLANS AND SPECIFICATIONS INCLUDE INFORMATION ON NECESSARY PARTS AND SUPPLIERS, IDEAS FOR CUSTOMIZING, AND DETAILED INSTRUCTIONS FOR BUILDING A 12 OR 22 SLOT S-100 CARDFRAME AND POWER SUPPLY.

* AN INTERESTING AND INEXPENSIVE WAY TO GET INTO PERSONAL COMPUTING!

* A GREATSCIENCE FAIR PROJECT!

* IDEAL FOR SCHOOLS AND UNIVERSITIES!

ASK ABOUT OUR INTELLIGENT FRONT PANEL OPTION ORDER THE CRATE KIT FOR ONLY:

$39.95

PLUS SHIPPING: U.S. —$3.00 CANADA—$4.00 FOREIGN—$10.00 ALL ITEMS SHIPPED AIR FREIGHT OR UPS BLUE LABEL SEND CHECK OR MONEY ORDER TO:

OBJECTIVE DESIGN, INC.

P.O. BOX 20325 TALLAHASSEE, FL 32304 FLORIDA RESIDENTS ADD 4% STATE SALES TAX.

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 execution starts at any location in memory without interfering with programs in any other portion of memory.

S-100 BUS; +8 and -16 VDC; P/C BOARD SOLDER MASKED BOTH SIDES WITH PLATED THROUGH HOLES; ALL SOCKETS INCLUDED.

OPTIONAL FIRMWARE: 512 byte monitor for use with Tarbell tape interface on 2, 1702A PROMs.

PROM/RAM KIT WITHOUT PROMS $89

+ OPTION A-SIORev.1 or3P+S $129

+ OPTION B - 2 SIO (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

CO* G3APHC illC.

LAKEFIELD ROAD. SUITE F • WESTLAKE VILLAGE, CA 91361 • (805) 497-0733

PROM/I

BOAR

5^ fmm

i

Circle 385 on inquiry card.

Photo 1: This is the video display at the start of a Space War game. The two spaceships are in their normal starting positions and accelerating slowly towards the sun. The sun image is 14 units across and centered on the screen, but its gravitational field permeates all of space in its vicinity (table 4).

How to Implement Space War

Dave Kruglinski 3256 Portage Bay PI E Seattle WA 98102

You say you'd love to go and play "Pong," "Tank" or "Shoot 'em" down at the corner tavern but they won't let you in because you're not old enough? Or maybe you learned to play Space War back in college on a turbocharged PDP 911/S megacomputer and you don't think your poor microcomputer could keep up? Or perhaps you hate BASIC but can't think of a good reason to mess with 50 pages of assembly language. Even if you don't fit into any of the above categories, merely reading this article will sufficiently disturb your mental equilibrium to start you on your way to being a Space War freak, making all other problems fade into insignificance.

Yes, it's true, despite what false impressions you may have held. You can play Space War on your micro: real Space War with gravity and torpedoes and thrust and explosions and hyperspace, all right there in front of your eyes on the screen. No message slowly banging out. on the Teletype "THE KLINGONS ARE APPROACHING," but. your own spaceship orbiting the sun, able to change direction, accelerate and fire at the enemy. There's even a score to keep

track of how many times you've been hit. "Hold it!" you say, after pouring over the listings. "This doesn't conform to ANSI 74 Space War Standards. Alpha Centauri isn't at coordinates 137, 245 like it's supposed to be." Relax, just, change the program to suit your taste.

It should be apparent by now that you need more than just a "naked micro" to do the job, but what you do need is not too unreasonable. Table 1 lists the equipment I found necessary to implement a quite realistic Space War game which is the subject of this article.

If you don't like the part about using an oscilloscope with its small screen, don't knock it if you haven't tried it. You just have to sit close. Besides, you can move up to a bigger display later. A vector graphics system would be an improvement, allowing more odds and ends on the screen before flicker sets in. The ideal, however, is a raster scan TV monitor system with resolution close to 256 by 256; anything less is just too coarse. Thomas R Buschbach's article in the November 1976 BYTE ["Add This Graphics Display to Your System, "page 32]

86

0

nn! n

Ut3 U

/^ofo 2: Were the larger of the two ships is accelerating towards the lower right of the screen. This information is relayed visually by the trail that is seen in back of the spaceship. The small dot which is positioned at roughly equal distances from both ships is a torpedo which has just been fired by the smaller spaceship.

(or Using Your Oscilloscope as a Telescope)

should be helpful here. Bear in mind that if you go the refresh memory raster scan route you will have to think about erasing things, not a problem with the analog refresh approach.

Meanwhile, back to the software. To start with, BASIC is out because it's far too slow. What's in is 5.5 K bytes of programs and tables, all in assembly language. "What's the

secret?" you say. "Why has Space War only been seen on expensive systems up to now?" The answer is a special added ingredient called TLU. TLU stands for Table LookUp and eliminates the need for all multiplications and divisions, making your program run ten times faster. Together with simple difference equations you can use table lookups to generate gravity for pretty

TACTICAL MATERIEL NEEDED

• An 8080 type microcomputer with 8 K of memory and a way to load programs. An Altair 8800 or equivalent will do fine. An assembler and text editor will be necessary if you want to modify the program conveniently.

• A general purpose DC oscilloscope with X input. Bandwidth isn't too important, but it must be DC. The bigger the screen the better. You can get one surplus for about $100, and they're handy for other things, too. A raster scan continuously refreshed point display can also be used with appropriate modifications of graphic generation and object motion routines.

• A 2 channel digital to analog con

verter. This device converts two bytes of digital data to two analog signals with a resolution of 1/256 (3.9x10-3). It is the interface between the microcomputer and the oscilloscope, capable of displaying dots at any of 65536 locations on the screen in a 256 by 256 grid. The circuit is quite straightforward. The "Beer Budget Graphics Interface" described in November 1976 BYTE, page 26, will do fine. You could even skip the second latch on the Y strobe.

• Two or more hand held boxes, each with four push buttons. The two boxes together look like one memory byte or input port and are read by the program to determine what the player wants to do.

• Software functioning as described in this article.

Table I: Basic facilities needed to implement Space War on a microprocessor.

87

o

t—:

/%o?o 3: 77;e larger of the two spaceships has been hit and destroyed. It had fired a torpedo just before it was hit.

respectable orbits for your spaceships and torpedoes. Another thing, after subtracting 2 K for the gravity table you have 3.5 K of program to manage. This translates to 55 pages of assembly listing with macros expanded (more on macros later). To do this and not go crazy you have to have a

system, a way to organize the code into modules for ease of understanding, modification and debugging. But first some preliminaries.

The Game of Space War

As the game starts you will see a sun in the center of the screen, two scores of zero at the bottom, and two spaceships at opposite corners. You and your opponent each have a ship. Each ship is uniquely identifiable and is moving slowly towards the sun. Photo 1 shows the screen at the beginning of the game as I implemented it.

Each player has a hand held box as shown schematically in figure 1. The functions of the buttons are as follows:

CCW: The player's ship rotates counterclockwise as long as this button is held down. Rotation increments are 45° and the rate is about one rotation every 5 seconds.

CW: Same as a CCW except rotation is clockwise.

FIRE: A torpedo is fired from the player's ship when this button is depressed. The torpedo always originates from the front of the spaceship and travels in the same direction the ship is pointing. Its initial velocity is constant, relative to the ship's. Each ship at any one time has only one active torpedo at its disposal and thus can't fire a second until the first has hit a spaceship, hit the sun, hit the screen edge, or timed out.

Figure 1: The player control boxes consist of eight switches, four per player, which define data for one input port to the microprocessor. The pullup resistors boxed by a dashed line may be omitted, depending on details of your input port.

ACC: Acceleration is applied to the player's ship as long as this button is held down. The acceleration is applied in the same direction the ship is pointed and is indicated visually by an exhaust, trail at the rear of the ship.

The object of the game is to get your spaceship into a stable orbit around the sun and then shoot down the enemy. You have to, of course, watch out for the enemy shooting you down; and you have to be careful not to fall into the sun. If either of these two calamities should befall you, your ship will explode, your score will be incremented, points count against you, and a new spaceship will be delivered to the starting position.

You have a rather interesting option when the going gets tough. You can enter hyperspace by holding down both the CCW and CW buttons at the same time. Your ship disappears, then reappears at some random position with a random velocity. This happens not without risk; however, there is a definite probability, increasing as the game progresses, that your ship will explode when it comes back.

A word about orbits: both spaceships and torpedoes conform to Kepler's laws, traveling in elliptical orbits around the central sun, with revolution periods averaging about. 15 seconds. In general, the further away from the sun the ship is, the slower it moves. Thus, if a ship is in a long elliptical orbit the effect will be a little like "crack the whip": the ship zips quickly around the back of the sun, then drifts slowly out into space, then back again. Torpedoes, usually moving faster than spaceships, are less affected by gravity and usually escape to the edge of the screen where they disappear. If they get close to the sun their trajectories may be bent, as much as 90°. Due to limitations of the numerical method, the ships and torpedoes may not come closer than seven units (screen is 256 units wide) to the center of the screen. Thus the sun's radius is defined to be seven units and anything coming that close is destroyed. A spaceship which starts anywhere on the screen with zero velocity will move radially inward to the sun and be zapped.

Photos 1 to 5 show some scenes from a typical Space War game. Some are snapshots and two are time exposures showing the motion of spaceships and torpedoes.

Photo 4: A time exposure showing the two ships in orbit and a near miss of a torpedo. The inner spaceship fired at the outer orbiting spaceship. Notice how the gravity effects of the sun curve the orbits of ships and torpedo.

# ...

Software - General

Many of the techniques discussed here apply not only to Space War but also to other video games, display systems and real time applications. The only assumption made is that you know what, an assembler

Photo 5: A very long time exposure showing the maneuvering of the two spaceships. Notice that Kepler's laws of motion are being followed, and the spaceship that is closer to the sun is orbiting faster than the spaceship that is farther away, since it has only traveled a portion of one revolution while the inner ship has completely circled the sun. These gravity effects encourage real time tactics and use of strategy in playing the game.

89

r

DISPLAY PROCESSOR

DISPATCH TABLE

SPACE WAR

APPLICATIONS

MODULE

OBJECT BLOCKS

PROGRAMS

MOVE

DISPLAY FILE

ACCELERATE

I

RANDOM

SYSTEM FUNCTIONS MODULE

GRAVITY TABLE

Figure 2: Block diagram of the software for Space War. The rectangles represent programs and the squares represent data. This general type of setup can be used in many other games besides Space War.

does and can read 8080 assembly language.

Since relocatable assemblers and loaders aren't: generally available for microcomputers yet, chances are you will have to make the most out of the absolute variety. It is very useful to avoid having the entire 4 K of program in one source module. By

breaking the code up into modules you generally need only to edit and assemble a portion of the entire program to make a correction or enhancement. Linkage between modules is made through a few fixed locations in low memory (0 to 80 hexadecimal). There are two categories of modules: system and application. System modules exist to support a variety of application modules. The application module in this case is the Space War video game. The systems modules needed here include: graphics display processor, interrupt handlers and real time executive, system functions. The applications module is a collection of programs and data related specifically to the game. Let's look at each of these modules in detail, while referring to the block diagram in figure 2.

Display Processor

In order to have a video game you have to be able to put pictures on the screen. Still pictures are a good place to start; it's easy to make parts of them move later. With the digital to analog converter and XY oscilloscope hardware configuration of the "Beer Budget Graphics lnterface"/6y Peter Nelson, in November 1976 BYTE, page 26], it is necessary to paint the picture one dot at a time and also to continuously refresh any image put on the screen a minimum of 20 times a second. This suggests a loop consisting of a sequence of dot producing instructions executed over and over again. It would be very cumbersome, though, to have to write a new assembly language program every time you want a new picture. What about a single program which cycles through a table of XY coordinates? This is better, except it takes a lot of dots to draw a line or spaceship, and it's difficult to move something when you have to move all the dots together. A better solution is an interpretive "language" which you can use to describe pictures. A display file written in this language is interpreted by a special program called the display processor in order to provide the proper sequence of XY coordinates to paint the picture.

Understanding the display processor requires you to visualize the beam which defines a point on the face of the oscilloscope at position X,Y. A dot can be displayed at the beam position or at points relative to the beam position. This is very useful because you can define a spaceship, for instance, as a series of dots relative to the beam coordinates. To move the spaceship you merely move the starting beam position. Rather than define a series of dots individually, why not specify a vector

90

or row of dots? This can be done neatly in one byte where you specify both the length and direction of the vector. Let's say that you have defined your spaceship, but that you want to display it more than once on the screen. Just as in any other computer program you use a subroutine. The subroutine in this case contains a series of relative vector commands and is called from several places in the display program, just after beam positioning commands.

You can pick up the details of the

graphics language by studying the nine commands shown in figure 3. Figure 3 also shows the layouts of the graphics commands. In my assembler the mnemonics along with the arguments are put right into a program and the assembler produces the object code by means of macros. (A macro is a way of telling the assembler to substitute a group of instructions for a given symbol.) All the macros are defined at the start of the program with dummy arguments. The real arguments are sub

Hexadecimal Op Code

00

02

04

06

OA

0C

0E

10

Layout

00000000

X coordinate

Y coordinate

0 0 0 0 0 0 1 0

X coordinate

Y coordinate

0 0 0 0 0 1 0 0

X coordinate

Y coordinate

0 0 0 0 0 1 1 0

length |0/F drctn

08

0 0

0 0

1

0 0 0

scle

orent

0 0 0 0 1 0 1 0

low order address

high order address

0 0 0 0 1 1 0 0

low order address

high order address

0 0 0 0 1 1 1 0

Assembler Macro Form

MBEAM x,y

MDISP x,y

LVEC x,y

SVEC SV length, drctn SVF length, drctn SVE length, drctn SVEF length, drctn

E = escape

O/F = beam on/off

PAR AM s,o

0 0 0 1 0 0 0 0

JUMPaddr

JUMPS addr

RETS

EXEC

Meaning

The beam is moved from its previous position to the new coordinates x,y where x and y are between 0 and 255. This command does not cause a dot to be displayed, but is used as a setup for following commands.

Same as MBEAM except a dot is displayed at x,y.

A "long vector" is drawn from the previous beam position to the new coordinates x,y. The new beam position is now x,y.

The relative vector is called the short vector to distinguish it from the absolute long vector. The list is a sequence of length and direction pairs where the length is 0 to 7 dots and the direction is specified by a number from 0 to 7 where 0 is straight up, 1 is 45° in a counterclockwise direction, 2 is 90° counterclockwise, etc.

This command alters the effect of all following SVEC commands until the next PARAM statement. It is possible to change both scale (s) and orientation (o) of all following short vectors. If scale is set to 1, for example, all short vectors would be twice as long as they would have been if scale were 0. If orientation is set to 2 instead of 0, all short vectors appear rotated 90° clockwise. Thus a figure drawn entirely In short vectors can be enlarged and rotated by changing one command.

Interpreter control is transferred to the command at address addr.

Interpreter control is transferred to the command at address addr and the address of the command following the JUMPS statement is saved. This is the graphics subroutine call.

Return from the subroutine entered command. Subroutines may be nested.

by JUMPS

Control is transferred to the executive so that the proper applications programs are executed. When these are finished, control is returned to the graphics interpreter command following the EXEC command.

Figure 3: The nine graphic commands used by the display processor showing the op code, related mnemonic, memory allocation, and meaning for each command. These instructions and related programs can be used to implement a wide variety of animated video applications.

91

Entry

Byte

Data

Functon

1

0

1

look at last bit of TIME only

1

0

execute on even TIME only

2,3

object block 1 starting address

4,5

ship fly program starting address

2

0

1

look at last bit of TIME only

1

1

execute on odd TIME only

2,3

object block 2 starting address

4,5

ship fly program starting address

Table 2: This table design will allow the updating of the positions of two spaceships on alternating cycles. Byte 7 determines whether the updating takes place on an odd or even cycle. If it is set to zero, as in entry 1, updating will occur on an even cycle. If byte I is set to I, as In entry 2, updating will occur on an odd cycle.

Bytes

(Hexadecimal Offsets) Function

0,1 X (n), present x coordinate with 16 bits, 0 at screen center.

2,3 X (n—1), previous x coordinate.

4,5 X acceleration.

6,7 Y (n), present y coordinate.

8,9 Y (n—1), previous y coordinate.

A,B Y acceleration.

C,D pointer to MBEAM instruction display file.

Table 3: A list of object parameters which are found at the head of an object block and used by the object move function. These coordinates are continuously updated as the program progresses.

stituted when the macro is actually used.

Now that you can describe a picture with a concise list of graphics commands you should be able to see how easy it is to animate the picture. All it takes is some other program in the system to periodically change parts of the display file. For example, if the MBEAM command preceding a spaceship subroutine call is given a label through the assembler, then the X and Y coordinates can be updated, causing the ship to move. To destroy the ship, replace the spaceship subroutine address with the explosion subroutine address.

See listing 1 for the display processor, and listing 2 for numeral subroutines 0 to 9.

Executive Program

The Space War program was originally designed to work with a real time clock producing 20 interrupts a second. It was discovered later that the update and refresh cycle was stable enough to make the clock unnecessary. This reduced the hardware requirements for the game. To reiterate, Space War runs on a 50 ms cycle. The first 15 ms are used to update positions of spaceships, test buttons, compute scores, etc. The remaining 35 ms are used to refresh the display, that is, process the display file from one EXEC command to the next. The executive:

• determines what update tasks are to be done.

• dispatches a control to these tasks.

• increments a variable called TIME.

A few words on tasks and dispatching are in order here. The applications module consists of a number of independent programs, each with a distinct function which is described in detail in the next section. When each of these programs runs, it references an object. For example, the ship fly program has to run once for ship 1 and again for ship 2. The combination of a program and a particular object is called a task. There are three pieces of information necessary to specify a task:

• frequency and phase at which the task is executed.

• address of the object block containing all parameters relating to a specific object.

• starting address of the program.

The dispatch table (table 2) in the applications module is a list of all the tasks. Each task has a 6 byte entry having the format:

byte 0: Mask which is logically ANDed with TIME and compared with the value in byte 1.

byte I: Execution time. When this matches the masked value of TIME the task is executed.

bytes 2,3: Address of the object block for this task. It is passed to the program in register pair BC.

bytes 4,5: Address of the program to be called by the executive.

If, for example, you want to update the position of each of two spaceships on alternating cycles, you set up two entries as in table 2.

Most of the task schedules are set up just once when you assemble the applications program. However, it is possible to dynamically schedule one task from another. That scheduled task runs "right now" if both the mask and time bytes are set to zero. It runs "n cycles from now" if the mask is all 1 and the time is TIME+n. The dynamically scheduled task will, however, have to later deschedule itself by setting the mask to 0 and time to 1.

Now for a few words on how programs interface with object blocks. Normally a program references a number of fixed memory locations using direct addressing. This works fine, for example, if you have one program flying one spaceship. For two spaceships you could write two programs,

92

NOTIC€

to oil BVT€ magazine

subscribers and would-be subscribers

SAVE MONEY! As of January 1, 1978, we are raising our subscription rates to meet the increased costs of producing and mailing BYTE to our more than 110,000 monthly readers. The new domestic subscription rates, effective January 1, 1978:

Current Rates

Rates Effective January 1, 1978

One year U.S. —

$12

One year U.S. — $15

Two years U.S. —

$22

Two years U.S. — $27

Three years U.S. —

$32

Three years U.S. — $39

If you already subscribe to BYTE and still have several months to go before expiration of your subscription, you can still take advantage of current rates for renewal (even up to three years). Use coupon below. When your present subscription expires, your renewal order commences.

If you are not yet a subscriber to BYTE, the leading magazine for the creative home computer experimenter, don't delay . . . mail this coupon and start getting your own copies of this invaluable magazine, before new rates become effective.

BUTE

USE THIS MONEY-SAVING COUPON TODAY

To new subscribers: Read your first copy of BYTE, if it's everything you expected, honor our invoice. If it isn't, just write "CANCEL" across the invoice and mail it back. You won't be billed, and the first issue is yours.

Allow 6 to 8 weeks for processing.

Byte Publications, Inc. 1977

BYTE Subscription Dept.79D • P.O. Box 361 • Arlington, Mass. 02174

PLEASE ENTER MY SUBSCRIPTION FOR: □ Renewal □ New Subscription

□ One year $12 (12 issues) □ Two years $22 □ Three years $32

□ Check enclosed (entitles you to bonus of one extra issue)

□ Bill me □ Bill BankAmericard/Visa □ Bill Master Charge

Card Number 1 I I I I I I I I I 1 I I l~t Expiration Date:

Signature: Name (please print)

Address: ———

City: State/Country:

HIE

Code:

FOREIGN RATES FOR ONE YEAR: (Please remit in U.S. Funds)

□ Canada or Mexico $17.50 (Air delivered) □ Europe $25 (Air delivered)

□ All other countries except above: $25 (Surface delivery) Offer expires December 31, 1977

Air delivery available on request

Table 4: The 1024 by 2 byte gravity table used by the acceleration lookup function. Notice the maximum acceleration values of 999 in the upper left of the table which correspond to the position of the sun. The table can be rotated around its axis of symmetry to cover the entire screen in a minimum amount of memory. Lines drawn In the table illustrate several contours of roughly equal gravitational acceleration.

999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 917 907 816 808 730 724 657 652 594 590 541 537 494 491 453 450 416 414

1384 383

356 354

330 329

308 307

287 286

269 268

252 251

999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 966 888 860 792 770 711 693 642 627 582 570 530 520 485 477 445 438 410 404

999 745 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 973 922 871 825 784 742 709 670 644 608 586 555 536 507 492 466 453 429 418

452|295 999 840" 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 917 904 834 816 759 740 693 673 634 614 582 561 535 515 493 474 455 438 422

3,. 1 4

203 14510882 64 51 41 33 28

379 374 351 347 327 323 304 301 284 281 266 264 250 247

396 387 367 359 341 334 318 312 297 291 278 273 260 256 244 241

405f39T 376 364 350 340 326 317 305 297 285 278 268 262 251 246 237 232

900 660 999 844 999 970 999 999 999 999 999 999 999 999 999 980 999 925 984 867 905 808 832 751 764 696 702 645 645 598 594 554 548 514 507 478 469 444 435 414 404[~386 361 338

315 241| 188 150 121

377 351 328 317 307 297 288 279 271 263 255 248 240 234 227 221

498| 384 302' 646 504 4001 755 598 480 826 664 540 864 705 581 873 725 606 862 727 616 837 716 614 802 695 604 762 669 587 719 638 566 675 605 542 632 572 517 591 539 491 552 507 465 515 477 440 481 448 416 449 420(392 420[~355 370 371 350 368 349 330 345 328 311 324 309 295 304 291 278 286 275 263 270 260 249 254 245 237 240 232 224 227 220 213 215 209 202

242|196 323 264 391 322 444|369 483 405 509 431

524 448 528 456

525 458 516 454 502 445 485 434 466 421 446 405 426 405|373 385 356 365 340 347 324 329 308 311 293 295 279 280 265 265 253 252 240 239 229 227 218 216 208 2061198 196 189

400 400

351 36:;

199 19T 190 183 182 175

113 96 154 131 191 163 "223] 191 250 216 272 236 289 252 301 264 309 273

313 278

314 281 313 281 309 279 303 276 296 271 289 265 280 258 271 251 262 244 252 235 243 228 234 220 224 212 216 204J 207fT96 198 189 190 182 183 175 175 168 168 161

140 122 165 144 187 163 2061 180 221|195 233 206

242 215 248 221

252 226

253 228 253 229 251 228 248 226

243 223 238 220 233 215 226 210 220 205 213 200 2061194 200|188 193 182 186 176 179 170 173 165 167 159 161 154 155 148

106 93

126 111

143 126

159 141

172 153

183 163

192 172

198 178

65 58 77 69

112 100

125 112

136 122

146 131

154 139

203 206 208 208 207 205 203

170 154

172 157

174 159

174 160

199 185

196 182

191 178

187 175

182 171

177 166

172 162

167 158

162 153

157 149

152 144

147 140

142 136

89 80

100 90

110 99

118 106

125 113

131 119

136 124

141 128

144 131

146 134

147 136

148 137 148 137 147 137 146 136

145 135 143 134 141 132 139 130 136 128 133 126 130 123 127 121 124 118 121 116 118 113

113 104

117 108

121 111

123 113

125 116

126 117

127 118 127 118 127 118 126 118 125 118

124 116 123 115 121 114 119 113 117 111 115 109 113 107 110 105 108 103

73 67 TSOl 73

83~l 95 87 99 91

102 94

105 97

107 99

108 101 110 102

110 103

111 103 110 103 110 103 110 103

109 102 108 101

106 100 105 99

103 98 102 97 100 95

98 93

but this would be a pain in the asteroid. How about grouping all the variables together and defining a data layout common to all spaceships? The data includes coordinates, the address of the MBEAM instruction in the display file, orientation and about a million flag bits [a bit of hyperbole . . .]. The program knows which object block it's working with because it started out with the block start address in an index register, in this case the BC register pair of the 8080. All memory references then go through this index register. Don't let the fact that the 8080 microprocessor doesn't have real index registers bother you; you simply use assembler macros to invent your own indexed instructions as follows:

LOADX reg,offset: Loads data from object block relative location "offset" into register "reg."

STORX reg,offset: As above but stores.

LDBLX offset: Loads data from object block relative locations "offset" and "offset" + 1 into registers L and H respectively.

SDBLX offset: As above but stores.

Listing 3 shows the executive program and interrupt handlers.

System Functions

System functions are general purpose subroutines common to a number of appli

cations programs. These include object move, acceleration look up, random number and a system call program which links with calling programs. To call one of the functions you invoke the macro SCALL n where n is 0 for move, 1 for acceleration and 2 for random number routine. This macro generates the code RST 7, DB n causing transfer of control through memory location 38 hexadecimal.

Looking at the first function, object move, you find a function fundamental to all video games. The function depends on a fixed layout of object coordinates at the head of the object block as shown in table 3. Calling object move updates these coordinates according to the following formulas:

X(n+1) = X(n) + X(n) - X(n-1) + Xacc

X(n-1)=X(n)

X(n) = X(n+1)

The same equations are used for Y.

The XY coordinates of the MBEAM command are updated with the new higher order values of X(n) and Y(n). It is important to note that the X and Y bytes in the MBEAM command are referenced to the lower left of the screen, but the 2 byte coordinates carried in the object block are referenced to the screen center.

These equations of motion represent what the math jocks call second order dif

94

ference equations. Note the absence of multiplications and divisions. You can consider the difference between X(n) and X(n—1) to represent the X velocity of the object, and the corresponding Y difference to be the Y velocity. If you set both accelerations to zero and initialize the other coordinates appropriately, your object moves in a straight line with a constant velocity. If Y acceleration is a negative constant, the object falls in a parabolic trajectory like a thrown stone.

The object move function is sufficient for most video games, but not for Space War. For orbiting objects the accelerations are neither zero nor constant. Each point on the screen has unique values of X and Y acceleration. The acceleration lookup function finds these values for you, using the X(n) and Y(n) coordinates, so that when you alternately call it and the object move function, your spaceship or torpedo zips neatly around its orbit.

First generation Space War systems would calculate the accelerations each time they moved their objects according to the following formulas:

Xacc = cX/R3 and Yacc = cY/R3 where c is a constant and

R = a/(x2 + Y2). This requires a total of five multiplications, two divisions and one square root extraction for each update, clearly impossible for most of today's microprocessors.

Acceleration lookup, the heart of the Space War system, uses a 1 K by 2 byte table to find these accelerations, taking advantage of symmetry.

The third function, random number, returns an 8 bit pseudorandom number in the accumulator. This number is derived from a common shift register feedback scheme and has a repetition period of 255.

Listings of all system functions are shown in listing 4.

Gravity Table

Table 4 shows the 1 K by 2 byte gravity table used by the acceleration lookup function. The values were calculated by a FORTRAN program running on a larger computer. The table entries represent the absolute value of X acceleration in one quadrant. Y accelerations are found simply by transposing the indices. Because halving the distance from the sun causes the acceleration to increase by a factor of 4, the table can be magnified to produce more accurate values closer in. By proper shifting of indices and output values, the same table can be made to cover index ranges 0 to 16, 16 to 32, 32 to 64 and 64 to 128.

Thus the maximum value of 999 applies only inside the sun.

Space War Applications Module

This module, occupying about 2 K bytes of user program memory, specifically defines the game of Space War. It is composed of constants, macro definitions, system linkages, the dispatch table, object blocks and programs. It interfaces with all the system modules described earlier. All programs execute once for each related object unless otherwise specified. Listing 5, the applications module, is divided into several sections which are described in a separate box entitled "A Guide to the Space War Applications Module."

Installation of Space War in Your System

The following steps might make it easier for you to get Space War up and running on an 8080 system:

• Make sure that your graphics output and button input work the way you think they do. Write short test programs if necessary.

• Modify the display processor module so it communicates with your particular graphics interface. The SHLD XYOUT instructions of the assembly listings are the ones you will want to look at carefully.

• Modify the ship fly and rotate programs in the applications module so that they read your buttons properly.

• Modify the keyboard handler (executive module) to accept interrupts from your keyboard. If you don't have keyboard interrupts you can periodically read your keyboard in the rotate program.

• Assemble all programs and load in the following order: display processor, executive, numerals, applications, system functions and gravity table.

• Temporarily eliminate the EXEC command in the display file, then start execution at hexadecimal location 100. This tests the display file and the display processor module, the correct result being a still picture which should make sense.

• Restore the EXEC command and deschedule all but the first task in the dispatch table, then start at 100 again. The system should remain in the still picture mode because not enough tasks have been enabled to support object motion.

• Enable tasks one at a time, thereby testing each. If the program bombs you will know exactly where to look.

• Fasten securely all loose objects in your computer room in anticipation of the large unruly crowds which will soon gather.

95

Listings 1-5 for Space War follow, concluding on page 111.

Conclusion

With Space War you will have come a step closer to making your computer The Ultimate Toy. In the process you will have learned some software fundamentals which

will make you less afraid to put together some large systems of your own. Maybe you can think up some new and original video games which match or surpass the appeal of Space War. I'll be watching the pages of BYTE for the results.

A GUIDE TO THE SPACEWAR APPLICATIONS MODULE

Important Constants

All constants used in fine tuning the game are defined in this first section. These include the loading address, collision radii of the sun and torpedoes, acceleration constants and time-out values.

Macro Definitions

All macro definitions used in the module appear in this section. These include the graphics command macros and the load and store indexed macros.

System Linkages

Space War references two bytes in the system area: TIME, as described under the executive routine, and NUMS, the starting address of the list of graphics numeral addresses. The system modules, in turn, reference three points in the Space War module: the start of the display file, the dispatch table and the keyboard decode program.

Dispatch Table

The layout of this table is described in detail under the executive routine. The table is preceded by one byte indicating the number of entries, in this case 14. The ENTRY macro is used to define the entries.

Object Blocks

These include: ship 1, ship 2, torpedo 1, torpedo 2, score 1 and score 2.

Initialization Program

Executes: At start of game.

Function: Zeros score.

Schedules the ship start program to run immediately. Deschedules itself.

Ship Start Program

Executes: When scheduled by initialization program.

A fixed time delay after a

ship is destroyed. Function: Puts spaceship subroutine call

into display file.

Sets coordinates and orientation to starting values.

Deschedules itself. Executes: On hyperspace return when

ship is not set to destroy. Function: Puts spaceship subroutine call

into display file.

Clears hyperspace flag.

Deschedules itself. Executes: On hyperspace return when

ship is set to destroy. Function: Puts explosion subroutine call

into display file.

Ship Fly Program

Executes: On every clock cycle. Function: Updates ship coordinates and

acceleration values.

Adds acceleration and displays

exhaust if the ACC button is

held down.

Bounces ship off screen edge if necessary.

Replaces ship routine with explosion routine if:

ship is too close to any torpedo

ship is too close to the sun. Releases torpedoes which get close enough to destroy spaceship.

Torpedo Fly Program

Executes: On every clock cycle. Function: Updates torpedo coordinates and acceleration values. Releases torpedo if:

torpedo hits edge of screen torpedo gets too close to the sun.

Torpedo Fire Routine

Executes: When scheduled by the rotation program.

Function: Claims one torpedo belonging to the firing ship if it is not claimed.

Substitutes MDISP for MBEAM instruction at torpedo location in display file. Computes initial position and velocity of torpedo from spaceship's coordinates and orientation.

Score Program

Executes: Every 16 clock cycles.

Function: Reads 1 byte binary coded decimal score value and converts it into addresses of two numeral subroutines which are inserted into display file.

Buttons Program

Executes:

Function:

Executes: Function: Executes: Function: Executes:

If hyperspace is entered (CCW and CW buttons both held down).

Blanks spaceship.

Schedules ship start program

after a time delay.

Indicates hyperspace destroy

on random probability.

If CW button is held down. ■

Increments orientation value.

If CCW button is held down.

Decrements orientation value.

If FIRE button is down.

96

torpedo fire

Function: Schedules program.

Function Includes orientation value in during appropriate PARAM instruc

all tion in display file,

executions: Releases any timed out torpedoes.

Decrements counters for other torpedoes.

Keyboard Decode Program

Executes: In response to interrupt from keyboard. Called from executive module.

Function: Schedules initialization program twice when the C key is hit.

Listing 1: The display processor takes care of all the video display routines used for the game.

DISPLAY PROCESSOR MODULE COPYRIGHT 1976 D. KRUGLISSKI

INITIALIZATION

STACK

EBU

0 FFH

;STACK ADDR

CINTC

EQU

0 FFFBH

;RTC CONTROL ADDRESS

3STRT

EC J

100H

[START ADDRESS

KINTC

EQU

BFFCfJH

;K3RD I NT CONTROL A DDR

TIKE

EQU

3 FH

;SYSTEM TIME

TOP

EQU

4E H

;DISPLAY FILE START ADDR

XYOUT

EQU

FFFFCH

;CRT OUTPUT ADDR

ORG

GSTRT

I NIT:

LXI

D,£

;ZERO XY (IN DE ALWAYS)

LXI

H,TA3LE

SHLD

INCPT

; INIT INCREMENT POINTER

LXI

SP,STACK ilNIT STACK POINTER

MVI

A, 10H

STA

KINTC

:TURN ON KB I NT

MVI

A, 82 H

STA

CINTC

;TURN ON RTC INTERRUPT

EI

LHLD

TOP

SHLD

PNTR

; INIT INSTRUCTION POINTER

; OPCODE DECODING

MLOOP:

LHLD

PNTR

;ADDRESS OF OPCODE

MOV

C, M

MV]

B,0

!OPCODE IN 3C

LXI

H,JMTAB

J BASE OF JUMP TABLE

DAD

B

; ADD OPCODE

MOV

C, M

I NX

H

MOV

H, M

MOV

L, C

; ADDR OF ROUTINE IN HL

PCHL

; JUMP TO IT

; JUMP

TABLE

FOR OPCODE

PROCESSING

JMTAB:

DW

MBEAM

;0

DW

MDISP

;2

DW

LVEC

lA

DW

SVEC

i6

DW

PARAM

:8

DW

JUMP

; a

DW

JUMPS

; c

DW

RETS

; E

DW

EXEC

;]0H

DW

SYNC

:12H

j MOVE

BEAM

DON'T DISPLAY POINT

MBEAM:

LHLD

PNTR

I NX

H

MOV

D, M

;GET X COORD

INX

H

MOV

E, M

;GET Y COORD

I NX

H

SHLD

PNTR

;RESTORE POINTER

JMP

MLOOP

:GET ANOTHER INSTRUCTION

; MOVE

BEAM AND DISPLAY

POINT

MDISP:

LHLD

PNTR

I NX

H

MOV

D, M

INX

H

MOV

E, M

I NX

H

SHLD

PNTR

XCHG

;XY TO HL

SHLD

XYOUT

:WRITE TO CRT

XCHG

;SY TO DE

JMP

MLOOP

; SET

ORIENTATION AND SCALE

PARAM:

LHLD

PNTR

INX

H

MOV

C, M

I NX

H

SHLD

PNTR

MOV

L,C

;NEW ORENT S SCALE IN HL

Circle 386 on inquiry card.

Mini Micro. ! Maxi Savings. f

The Mini-Micro Designer - a complete microcomputer system for just $830.50!*

Here's the real thing - a microprocessor that takes you right to "real world" situations for about half the price of other systems. With our hardware, you'll receive the most complete software package in the business. 700 pages of clear instruction, written by Rony, Larsen, Titus - famous for their BUGBOOKS'K. Designed to show you how to get your MMD-1 up and working even if you have no prior knowledge of digital electronics. With our MMD-1 and M/l board combination you'll get all of the interfacing hardware you need, without costly extras.

•Suggested resale price (U.S.A.).

Here's what we pack in for $830.50:

2.5K RAM ... 1.5K PROM (special D-Bug, Monitor and Keyboard Interpreter) ... Audio Cassette Interface ... TTY Interface ... Built-in Keyboard for Control and Data Entry ... Direct Access to latched ports ... Built-in Breadboarding Capability ... Single Step Option . .. Monitors for Address and Data Busses. And more. Best of all, it's on the shelf at your computer store now. Write us for an info-packed brochure and the name of the dealer nearest you.

Dealer inquiries invited.

E&L INSTRUMENTS, INC.

61 First Street, Derby, Conn. 06418 (203) 735-8774 Telex No. 96 3536

^Pf J^*' ^^^^^

97

Listing 7, continued:

MVI

H,3

LXI

B,TABLE

;ADDRESS OF INCREMENT TABLE

DAD

B

• Ant) nDFMT > CfAl P"

SHLD

INCPT

; b1URb IN INORtntwl rulNltR

JMP

MLOOP

JbL1 ANU1HEK INblnULIlUN

; JUMP

TO A NEW

LOCATION

IN UibPLAT PILL

JUMP:

LHLD

PNTR

I NX

H

MOV

A, M

. 1 O T U A 1 C AC AlinDTCC

Jlbl HALr Ur AUUKLbb

I NX

H

MOV

H, M

;2ND HALF OF ADDRESS

MOV

L, A

SHLD

PNTR

;STORE IN INSTRUCTION POINTER

JMP

MLOOP

; JUMP

TO SUBROUTINE

JUMPS:

LHLD

PNTR

1NX

H

MOV

C, M

I NX

H

MOV

B, M

i NEW ADDRESS IN BC

I NX

H

PUSH

H

SSTORE OLD POINTER IN STACK

MOV

H,B

MOV

L, C

SHLD

PNTR

;A'JDPESS IN INSTRUCTION POINTFR

JMP

MLOOP

: RETURN FROM 5

U3R0UT1NE

RETS:

POP

H

; 'ESTO'iE POINTER FROM STACK

SHLD

PNTR

JKP

MLOOP

; SHORT

VECTOR

MODE

SVEC:

LHLD

PNTR

;CURRENT INSTR INDEX

NEXT:

INX

H

MOV

B, M

;SHORT VECTOR INSTRUCTION

INX

H

SHLD

PNTR

;RESTORE POINTER

MOV

A, 3

ANI

7H

:MASK DIRECTION BITS

MOV

C, A

;OFFSET IN C

MOV

A, B

; ORIG INST I N A

MVI

3,0

; ZERO IN 3

LHLD

INCPT

; INCREMENT POINTER

DAD

8

i ADD DIRECTION OFFSET

MOV

B, M

;X INCREMENT

INX

H

I NX

H

MOV

C, M

;Y INCREMENT

XCHG

:XY IN HL

MOV

E, A

:ORIGINAL INSTR

ANI

70 H

!LENGTH BITS

RRC

RRC

RRC

RRC

;SHIFT RIGHT 4

MOV

D| A

; IN D

MOV

A, E

;ORIGI»AL INSTR

ANI

3H

:01/OFF BIT

JNZ

FLOOP

: JUMP IF "OFF"

SHLD

XYOUT

;INITIAL DOT TO C> I

NLOOP:

MOV

A, B

;X INCREMENT

ADD

H

MOV

H, A

MOV

A.C

ADD

L

MOV

L,A

i NEW XY IN HL

SHLD

XYOUT

;WRITE TO CRT

DCR

D

JNZ

NLOOP

;LOOP IF NOT DONE

JMP

CKESC

;CHECK "ESCAPE"

FLOOP:

MOV

A,B

;X INCREMENT

ADD

H

;ADD TO X

MOV

H, A

MOV

A, C

;Y INCREMENT

ADD

L

;ADD TO Y

MOV

L,A

! NEW XY IN HL

DCR

D

JNZ

FLOOP

! LOOP IF NOT DONE

CKESC:

MOV

A.E

!ORIGINAL INSTRUCTION

XCHG

JXY TO DE

RLC

;SET CARRY IF "ESCAPE"

JC

MLOOP

;MA IN LOOP IF SO

LHLD

PNTR

JMP

NEXT

;GET MORE DATA IF NOT

; LONG

VECTOR MODE

LVEC:

LHLD

PNTR

INX

H

MOV

B, M

;NEW X POS

INX

H

MOV

A, M

i NEW Y POS

I NX

H

SHLD

PNTR

i

MVI

C.0F8K

!SPECIAL MASK FOR

SUB

E

;DEL Y IN A

JC

PLUSY

j TEST SIGN OF DEL

MVI

C,0

;SPECIAL MASK FOR +

PLUSY:

RLC

RLC

RLC

;DIVIDE BY 32

MOV

H, A

;SAVE IN H

ANI

0F8H

;SAVE 1ST 5 BITS

NOV

L.A

:L.O. YINC

MOV

A, H

;RESTORE

ANI

7H

;SAVE LAST 3 BITS

XRA

C

jXORSPEClAL MASK

MOV

H, A

;H.O. YINC

SHLD

YINC

;STORE

i

MOV

A.B

iX POS

MVI

C.0F8K

LLOOP:

SUB

JC

MVI

RLC

RLC

RLC

MOV

ANI

MOV

MOV

ANI

XRA

MOV

SHLD

MOV MVI MOV MVI MVI

LHLD

DAD

XCHG

LHLD

DAD

MOV

MOV

MOV

SHLD

DCR

JNZ

XCHG

D

PLUSX C,0

H, A 0FBH L, A

A, H

7H

C

H, A

XINC

B, D

c,e

D, E

E, 0

A, 20H

YINC D

XINC B

B, H

C, L L,D

XYOUT A

LLOOP

JMP

MLOOP

: TRANSFER CONTROL TO E

EXEC: LHLD

PNTR

INX

H

SHLD

PNTR

MVI

H, 80 H

MVI

L.80H

SHLD

XYOUT

RST

J

JMP

MLOOP

i SYNCHRONIZE

WITH REAL

SYNC: LHLD

PNTR

INX

H

SHLD

PNTR

MVI

H.80H

MVI

L.80H

SHLD

XYOUT

LXI

H,TIME

MOV

A,M

SLOOP: CMP

M

JZ

SLOOP

JMP

MLOOP

: TABLE FOR VECTOR ORIE

TABLE: DB

0

D8

2

DB

2

DB

2

DB

0

DB

-2

DB

-2

DB

-2

DB

0

DB

2

DB

2

DB

2

DB

0

DB

-2

D3

-2

DB

-2

DB

0

DB

3

DB

3

DB

3

DB

0

DB

-3

D3

-3

D3

-3

DB

0

D3

3

D3

3

DB

3

DB

0

DB

-3

DB

-3

DB

-3

DB

0

DB

4

DB

4

DB

4

DB

0

DB

-4

DB

-4

DB

-4

DB

0

DB

4

DB

4

DB

4

DB

0

DB

-4

DB

-4

DB

-4

DB

0

! DEL X IN A

;L.D. XINC

;H.O. XINC

;X IN 3C CH.O.) ;Y IN DE (H.O.) ;32 POINTS IN VECT

;NEW Y IN DE

;NEW X IN BC

;XY IN HL (H.O.) ;WRITE TO CRT

;RESTORE XY TO DE

XECUTIVE ;3UMP POINTER

;BEAM TO SCREEN CENTER

1XFER TO LOC I8H ;NEXT INSTRUCTION TIME CLOCK ;3UMP POINTER

!BEAM TO SCREEN CENTER

:OLD TIME IN A ;OLD = NEW? i YES - KEEP TRYING ;NO - NEXT INSTR

THE FOLLOWING ARE STORAGE CELLS NOT TO BE IN PROM WORKING STORAGE

PNTR: XINC: YINC: INCPT:

TZ*

DW DW DW DW END

;POINTER TO NEXT INSTR ;LVEC ONLY i LVEC ONLY

;POINTER TO INCREMENT IN TABLE

98

Only $750 from Peripheral Vision

Peripheral Vision is a brand-new company that's dedicated to selling reasonably priced peripherals for various manufacturers' CPU's.

We think you'll flip over our first product.

It's a full-size floppy disk for the Altair-lmsai plug-in compatible S-100 BUS. And it's available for as low as $750.

Here are the features:

• 1 interface card supports 4 drives

• Stores over 300,000 bytes per floppy

• Bootstrap EPROM included—no more toggling or paper tape

• Completely S-100 plug-in compatible

• Interface cabling included

• Drive is from Innovex (the originator of the floppy concept)—assembled and tested

• Interface card design is licensed from Dr. Kenneth Welles and the Digital Group

• Disk operating system with file management system included on floppy

• Cabinet and power supply optional

Prices:

Interface card kit and assembled and tested drive

Power supply h24V at 2A

Cabinet—Optima, blue

Kit Assm.

$750 45

$850 65 85

Now, a little more about our company.

Peripheral Vision may be brand-new, but we have some old-fashioned ideas about how to run our business.

We know there are serious incompatibilities among the different manufacturers' peripherals and CPU's. We want to get them together. And, we want to bring significant new products to market—products consisting of everything from adaptation instructions/kits for hardware and software to major new products.

It's a tall order, but we feel we're up to the task. Peripheral Vision has already obtained a license from The Digital Group to adapt versions of some of their products to the S-100 BUS. And we're working on getting more from other companies.

Most important to our customers, Peripheral Vision is committed to helping you get along with your computer. We'll do all we can to make it easy.

Write us now for all the information on our company, our philosophy and our exciting line of products. And be prepared to flip over all of it.

P.O. Box 6267/Denver, Colorado 80206/ (303) 777-4292

Send me the works, and I just might flip over it!

Name

Address.

Circle 387 on inquiry card.

City/State/Zip.

Listing 2: Numeral display module contains the graphics dot code to draw the numerals 0 thru 9.

Listing 3: The interrupt handler and executive module covers the real time clock, keyboard scan routines, and dispatches object blocks on correct execution times.

NUMERALS MODULE

COPYRIGHT 1S7S D. KRUGLINSKI

NSTRT EOU

400H ; LOAD ADDRESS

; GRAPHICS MACROS

N3EAM

MACRO

X, Y

03

0

D3

X

DB

Y

ENDM

;

MD1SP

MACRO

X, Y

DB

2

DB

X

D3

Y

ENDM

;

LVEC

MACRO

X,Y

D3

4

DB

x

D>3

Y

ENDM

!

SVEC

MACRO

D3

S

ENDM

SV

MACRO

len m

U 1 H UK l LC- iv

ENDM

gw

MACRO

LEN,DIH

DB

DIR OR (LEN

SHL

4)

OK

?H

ENDM

sv~

L t. N ( U 1 K

DJ

Dili OR (LEN

SHL

1)

OR

30 H

ENDM

SVEF

MACRO

LEN, Dili

DB

DIR OR (LEN

SHL

4)

OR

35 H

ENDM

PARAM

MACRO

SCL,OR N

Dd

a

DB

OH N OR (SCL

SHL

4)

ENDM

'jump

MACRO

ADDR

DB

0 AH

DJ

ADDR

ENDM

'jumps

MACRO

ADDR

DB

0 CH

DW

ADDR

ENDM

RETS

MACRO

DB

0 EH

ENDM

: system linkages

ORG

46H

DJ

ZERO

DJ

ONE

DW

TWO

DW

THREE

DW

FOUH

DW

FIVE

DW

SIX

DW

SEVEN

D J

EIGHT

DW

NINE

ORG

NSTRT

; NUMERALS 0-9

ZERO:

SVEC

SV '

6,0

SV

4,2

SV

6,4

SV

4,6

SVEF

6,2

RETS

ONE:

SVEC

SVF

1,2

SV

6,0

SVF

6,1

SVEF

2,2

RETS

TWO:

SVEC

SVF

6,0

SV

1,2

SV

■5,1

SV

1,6

SV

3,1

SV

1,2

SVEF

2,2

RETS

THREE:

SVEC

sy

1,2

SV

6,0

SEVEN:

NINE:

INTERRUPT HANDLERS S EXECUTIVE MODULE , COPYRIGHT 1976 D. KRUGLINSKI

; SYSTEM LINKAGES

ESTRT

EOU

■LOAD ADDRESS

TADR

EQU

• ADDRESS OF * TASKS

KI N T A

EOU

• KBRn TNT A TVi) R

CINTA

EQU

' .J

•ptt tnt Anns

j ^1 L INI Huun

KINTC

EQU

0 f r CI rf

. vaon T nT rnwpni Anno

KDCOD

EQU

4 4 H

. i/cv^nAO^ ncpnnfQ Anno { KtYaUflMD DLCUULii ADUn

TIME

EQU

3 FH

ORG

• KEYBOARD INTERRUPT

JMP

K3ENT

'; HANDLER ADDR

ORG

CINTA

;PTC INTERRUPT

JMP

CENT

;CLOCK HANDLER

ORG

TIME

D3

0

ORG

KDCOD

DW

K3DUM

;DUMMY K3 DECODER

ORG

ESTRT

; HANDLER FOR

REAL-TIME

CLOCK OR ■ EXEC COMMA N

CENT:

PUSH PUSH PUSH

PSW

1

D

PUSH

H

jSAVE ALL R£GC

LXI

H, TIME

INR

M

;INCREMENT TIME ;ENABLE INTERRUPT

EI

CALL

EXEC

i CALL EXECUTIVE

POP

H

;RESTORE REGS

POP

D

POP

B

POP

PSW

RET

J RETURN TO GRAPHICS

SV

4,

, 6

SVF

SV

SVF

it 4. i,

,4 ,2 ,4

i HANDLER FOR

KEYBOARD

SVEF

z,

,2

K3ENT: PUSH

psw

RETS

PUSH

B

SVEC

PUSH

D

SVF

4.

,2

PUSH

H

SVF

3.

>0

LDA

KINTC

; REAC CHAR/CLEAR

SV

4

16

EI

SV

3

,0

LXI

H,HRTN

SVF

4

,2

PUSH

H

;SAVE RETURN ADDR

SV

6,

, 4

LHLD

KDCOD

;KEYBOARD DECODER

SVEF

2.

,2

PCHL

;SIMULATED 'CALL'

RETS

HRTN: POP

H

SVEC

POP

D

SV

4,

,2

POP

B

SV

3.

,0

POP

PSW

SV

4

.6

RET

;RTN TO INTERRUPTED PGM

SV

3

,0

SV

4,

,2

SVF

6

.1

; EXECUTIVE -

SCANS DISPATCH TABLE, DISPATCHES

SVEF

2.

,2

: PROGRAM WITH OBJECT

3L0CK WHEN TIMES MATCH

RETS

SVEC

EXEC: MOV

B, M

;SAVE TIME IN 3

SVF

3

,0

LHLD

TADR

;t OF TASKS

SV

4

,?

MOV

C, M

SV

3

,1

I NX

H

;TOP OF DISPATCH TABLE

SV

4

,6

LXI

D,5

SV

6

,0

ELOOP: MOV

A, M

SV

4

,2

ANA

B

; MASK TIME FOR TASK

SVF

6

INX

H

SVEF

2

,2

CMP

M

i COMPARE OBJECT TIME

RETS

JNZ

NOTEQ

;DISPATCH IF EQUAL

SVEC

PUSH

8

;SAVE BC (TIME 4 #)

SVF

s

,0

I NX

H

SV

4

,2

MOV

C, M

SV

6.

,1

I NX

H

SVEF

2

,2

MOV

B, M

:OBJECT BLOCK ADDR IN BC

RETS

I NX

H

SVEC

MOV

E, M

SV

6

,0

INX

H

SV

4.

,2

MOV

D, M

iPROGRAM ADDR IN DE

SV

6,

,1

I NX

H

SV

4.

,6

PUSH

H

;SAVE HL (POINTER IN LIST)

SVF

3.

,i

LXI

H, ERTN

SV

1.

,2

PUSH

H

;SAVE RETURN ADDRESS

SVF

3,

.1

XCHG

;PROGRAM ADDRESS IN HL

SVEF

2,

.2

PCHL

;JUMP TO PROGRAM (CALL)

RETS

ERTN: POP

H

;RESTORE POINTER

SVEC

POP

B

j RESTORE BC

SVF

4,

,2

LXI

D,5

SV

s,

0

JMP

ENDL

i CONTINUE SCANNING TABLE

SV

4.

,6

NOTEQ: DAD

a

; HL=HL+5

SV

3,

, 4

ENDL: DCR

C

i DECREMENT TASK CNT

SV

4,

,2

JNZ

ELOOP

; TEST NEXT TASK

SVF

3,

.4

RET

; RETURN TO HANDLER

SVEF

2,

,2

KBDUM: RET

RETS

;DUMMY KB DECODER

END

END

tz*

100

the Processor Terminal.

A logical forward step in Microcomputer design

the Processor Terminal. A new desisn by TEI and look at what you set... a complete, self contained microcomputer system with display and mass storase, a full keyboard and plenty of slot space for additional boards. And that famous TEI CVT power supply that makes brownouts a thins of the past.

Display — A15" hish-resolution black and white video display with an optical filter face plate to reduce slare and improve type visability . .. Keyboard — Full upper and lower case ASCII detached keyboard with 8 prosrammable special function keys. Keyboard status indicators show computer BUSY or READY. And a 16-key numeric cluster pad set up calculator style ... Disk Drive & Controller — A Shusart SA-400 mini-floppy disk drive. Soft sectored

with a capacity of about 90 KB. IBM compatible format. Controller will handle 3 drives.. . CPU — 8080 based with a flexible desisn that allows you to implement a start up "jump to" operation to any dip switch selected byte address you choose. Merely turn on power or press RESET and you are off and runnins. Excellent for power failure automatic restart. .. Memory — 16K of static RAM memory Low power chips. Selectable address assisnment and memory protect features ... I/O — 3P+3S input/output board. 3 parallel ports and 3 serial ports with selectable baud rates of 75 to 19,200. RS-232C and TTL outputs ... Video — A video board provides the support for the video display functions .. . Mainframe — A 12 slot mainframe with a 17-amp CVT power supply motherboard assembly heavy duty aluminum cabinet, fan and washable filter. All edse connectors and card suides provided ... Software — CP/M disk operates system and BASIC provided on disk.

the Processor Terminal (Model MCS-PT) fully assembled and tested is priced at $3495.00.

the Processor Terminal partially assembled (We build the cabinet, keyboard, monitor, power supply disk drive and motherboard and you build the CPU, RAM, I/O, Video and Controller boards which we supply as kits). This partially assembled unit is priced at $2995.00.

MCS

SPECIAL SYSTEMS GROUP

MICROCOMPUTER SYSTEM

Contact your local TEI Dealer or if you are not near one of our dealers, write or call CMC Marketing Corp direct for more information.

CMC MARKETING CORP 7231 Fondren Rd, Houston, TX 77036 Telephone (713) 774-9526

See you atPers. Comp. 10/27-29 Chicago Booth #53 Circle 388 on inquiry card.

Listing 4: The system function module takes care of all system calls, acceleration lookups, and random number generation.

SYSTEM FUNCTIONS MODULE

COPYRIGHT 1976 D. KRUGL1NSKI

SYSTEM CALL, MOVE, ACCELERATION, RANDOM

MSTRT EQU

0 C00 H ;LOAD ADDRESS

MACROS

COMPLEMENT HL COMHL MACRO

MOV A, H CMA

MOV H, A

MOV A, L

CMA

MOV L,A

INX H ENDM

; LOAD HL INDEXED C 8C= BASE)

LDBLX MACRO OFSET

PUSH D

LXI H,OFSET

DAD B

MOV E,M

INX H

MOV D,M

XCHG

POP D ENDM

; STORE HL INDEXED (BC=BASE>

SDBLX MACRO OFSET

MOVI :

PUSH

D

XCHG

LXI

H,

OFSET

DAD

B

MOV

M,

E

INX

H

MOV

M

D

POP

D

ENDM

LOAD REG INDEXED C BC= BASE) HL DESTROYED

LOADX MACRO REG,OFSET LXI H,OFSET

DAD B MOV REG,M

ENDM

; STORE REG INDEXED (BC=BASE) ; HL DESTROYED STORX

PUSH

B

;SAVE BC

CALL

MOVI

;UPDATE X

CALL

MOVI

;UPDATE Y

LDAX

B

iINST PNTR IN DE

MOV

E,

A

INX

B

LDAX

B

MOV

D,

A

INX

D

;X COORD ADDRESS

POP

B

; ORIG BC ( TOP OF LIST)

LOADX

A>

1

;X(N) H.O.

ADI

80

H

;ZERO AT SCREEN CENTER

STAX

D

;X COORD

I NX

D

i Y COORD ADDR

LOADX

A,

7

;Y(N) H.O.

ADI

8a

H

;ZERO AT SCREEN CENTER

STAX

D

;Y COORD

RET

! EITHER

X

OR Y

PUSH

B

; SAVE BC FOR XC N)

LDAX

B

; X( N) TO DE

MOV

E,

A

I NX

B

LDAX

3

MOV

D

A

I NX

3

;-X(N-l ) TO HL

LDAX

B

; AND DE TO NEW XCN-1)

CMA

MOV

L

A

MOV

A

E

STAX

B

1 NX

B

LDAX

B

CMA

MOV

H

A

MOV

A

D

STAX

B

INX

H

DAD

D

; HL+DE+DE TO HL

DAD

D

I NX

B

;XACC TO DE

LDAX

B

MOV

E

A

INX

B

LDAX

a

MOV

D

A

DAD

D

iHL+XACC TO HL

POP

D

; BC FOR X( N)

MOV

A

L

; HL TO NEW X(N)

STAX

D

I NX

D

MOV

A

H

STAX

D

INX

B

;SETUP FOR NEXT BYTE

RET

i; i

ORBITAL ACCELERATION LOOKUP FUNCTION

MACRO

REG, OFSET

1024

VALUE VERSION <2 BYTES/VALUE)

LXI

H, OFSET

CALL:

SCALL 1

DAD

B

MOV

M, REG

ENDM

ATAB

EQU

0E00H ; LOCATION OF ACC TABLE

XN

SET

0

ORG

38 H ;RST 7 ADDRESS

XACC

SET

4

JMP

SYSCL

YN

SET

6

ORG

MSTRT i LOAD ADDRESS

YACC

SET

0 AH

i SYSTEM CALL FUNCTION

j ENTERED ON RST 7 FOLLOWED BY FUNCTION t

i DESTROYS HL ONLY

ADJUST X 4 Y FOR TABLE LOOKUP 4 SET SHIFT COUNT A,J

;SET- SHIFT COUNT (6 SHIFTS) ;X VALUE

;;;;;;;

SYSCL:

POP

"h

;GET CALL » ADDR

INX

H

PUSH

H

;RETURN ADDRESS

DCX

H

;CALL 1 ADDRESS

PUSH

D

;SAVE DE

MOV

E, M

MVI

D,0

; CALL 1 IN DE

LXI

H,CALTB

; CALL TABLE BASE

DAD

D

DAD

D

; ADD 1

MOV

E, M

I NX

H

MOV

D, M

XCHG

;ADDR IN HL j RESTORE DE

POP

D

PCHL

;JUMP TO SUBROUTI

DW

MOVE

DW

ACCEL

DW

RAND

DW

0

POSY:

GENERAL PURPOSE MOVE FUNCTION

ASSUMES FIRST OBJECT BLOCK LOCATIONS AS FOLLOWS: X( N)

MVI STA LDBLX MOV STA CP I JP

COMHL

XCHG

LDBLX

MOV

STA

CPI

JP

COMHL

MOV

OR A

CPI

JP

DAD

XCHG

DAD

XCHG

LDA

DCR

STA

JNZ

SHCNT XN A, H HOXN

POSX

YN A, H

HOYN 0

POSY

A, H

D

40 H

GETAD

H

H

SHCNT

A

SHCNT POSY

| SAVE H.0.

i ABS VALUE X

; IN DE ;Y VALUE

! SAVE H.0. Y ; ABS VALUE OF Y

i IN HL i COMBINE

;JUMP IF ; DOUBLE Y

H.O. X i Y

OR IN H

i DOUBLE X IN DE

;DECREMENT SHIFT COUNT ;LOOP IF > 0

; COMPUTE XACC TABLE OFFSET FROM X 4 Y (IN DE) GETAD:

1

2 3 4 5 6 7 8 9 A B C D

CALL: SCALL

X(N-l)

X ACCELERATION Y( N) Y(N-l)

Y ACCELERATION

POINTER TO ' MBEAM' INSTR

MOV RRC RRC RRC RRC MOV ANI MOV MOV ANI MOV MOV RRC ANI ORA MOV

A, D

E, A 7H

D, A A, E 0C0H

E, A A, H

3 EH

E

E, A

; H. 0.

;ROTATE RIGHT 4

iH.O. TABLE OFFSET

:H. 0. Y

SL.O. TABLE OFFSET

102

Talk to your computer for $299 with SpeechLaB.

Use SpeechLab to directly control any S-100 Bus Computer such as Sol, IMS AI, Altair and so on. SpeechLab can teach you almost as much as the Bell Laboratories know about voice recognition, voice control and computer input.

SpeechLab digitizes and extracts data from speech wave form and applies pattern matching techniques to recognize the vocal input. Response is real time. The system features 64 bytes of storage per spoken word and can handle up to a 64 word vocabulary. And recognition after very little practice is 95 percent or better.

$299" assembled and tested

When we talk price everybody's skeptical. And why not? We give you a complete hardware/software system, a 275 page laboratory manual, 95 page hardware manual and high fidelity microphone.

The lab manual includes 35 graded experiments with over 100 tables and graphs. In fact, it's the only introductory volume on speech recognition currently available.

Software includes SpeechBasic Basic programming language in source and

"Available in kit form for slightly less.

paper tape, assembly language speech recognition program in source and paper tape, hardware self-test program in source and paper tape. SpeechBasic plot, correlation, recognition and advanced recognition programs are offered in source.

Hard to believe, you bet. True? A Los Angeles customer says, "I love your kit!!! I have 40 boards and 2 IMSAI's and your kit was the best documented of them all. I love the way you integrated the software and hardware together. I love your lab manual'.'

We loved those comments. They tell the story better than we ever could. The LA customer did ask who the founders of the firm were so he could relate better. They're a couple of

gifted young engineers who got tired of the big firm, big technology trip and decided to take a chance with a better idea.

Yovi can't get better quality You can't get more performance

Sure, more complex, higher price equipment is available for about 50 times more money. It won't do much more than you can do with SpeechLab. And the quality and state-of-the-art engineering can't be any better. We use CMOS design for low power and ultimate reliability.

See SpeechLab at your nearby computer store

Selected computer stores have SpeechLab on display. Visit your nearest. If he doesn't have it, ask him to contact us or simply write us directly.

Heuristics, Inc. □ Master Charge

Box B, 900 N. San Antonio Rd. □ BankAmericard (Visa)

Los Altos, CA 94022, Phone (415) 948-2542 Acct. No.

□ Send me SpeechLab. I enclose $299. Date Card Expires

California residents add sales tax. Interbank No

□ Send me more information.

( Master Charge only )

Name Street . City_

State.

Zip.

In Canada: Trintronics Ltd. 186 Queen St. W. Toronto. Canada M5V 1Z1

Heuristics

INC.

Listing 4, continued:

Listing 5: The applications module, which is specified for a particular program, is described in detail on page 96.

PUSH

D

:SAVE OFFSET FOR LATER

CALL

RETRV

:GET ACC VAULE

WE XACC

SIGN AGREE WITH -X CCORD

LDA

HOXN

• u f\ v urt i i If ; n• U( ft vh LUE.

CPI

0

; T E S T SIGN

JM

XMINS

comiil

NS: SDBLX

XACC

COMPUTE YACC TABLE

nrircpT ci?hM yarn drf^ft

H

I \ H L L UrtT'Ll L \i ML

MOV

A, L

sic

SRC

SRC

MOV

E, A

ANI

7H

MOV

D, A

(11,6. TABLE OFFSET

MOV

A, E

ANI

0CCH

HOV

E, A

MOV

A, L

ANI

SJC0H

ORA

H

RLC

RLC

RLC

ORA

E

MOV

E, A

:L.O. OFFSET

CALL

RETRV

:GET YACC VALUE

MAKE YACC

SIGN AGREE WITH -Y COORD

LDA

HOYN

CPI

3

JM

YM I NS

COMHL SDBLX RET

:STORE YACC IN 03J 3LK

:RETURN TO CALLING PROGRAM

SU3R0UTIHE TO RESTORE ACC VALUE FROM TABLE TO HL AND ADJUST ACC BY SHIFT COUNT INPUT: OFFSET IN DE

;TABLE 3ASE :ADD OFFSET

RETRV: LXI DAD MOV I NX MOV PUSH LDA MOV CPI JZ

; SHIFT'DE MOV RRC RRC MOV MOV RRC RRC PUSH ANI ORA MOV MVI

; DECREMENT LOOP: DCR JZ

H, A T A B D E, M H

D, M

3

SHCNT

B, A

EXIT RIGHT 2 A, D

D, A A. E

:SAVE SHIFT COUNT IN 3

SHIFT COUNT=0

(DE < 10000

SHIFT E RIGHT 2 (D = 0 >

PSW J SAVE CARRY FOR ROUNDING

3 FH

D

E, A D,0

TEST SHIFT COUNT 1

ROUND ;DONE SHIFT 1NG

EXIT:

POP

PSW

SANE STACK

MOV

A, E

RRC

RRC

PUSH

PSW

PAVE CARRY

ANI

JFH

MOV

E, A

JMP

LOOP

POP

PSU

"'rSTORF CARPY

FROM LAST PFT

MOV

A, E

L.O. ACC

AC1

P

'•'OUND

MOV

E, A

ESTORE E

XCHG

ACC IN HL

POP

13

RESTORE INDEX

REG

RET

NUM3ER

FUNCTION

A AND 'SND'

i CALL:

SCALL

2

RAND:

LXI

H, HND

MOV

A, M

ANI

3 EH

;FEEDBACK MASK,CLEAR CARRY

JPE

CLEAR

jXOR FEEDBACK 31TS

CMC

;SET CARRY IF XOR TRUE

CLEAR:

MOV

A, M

i RESTORE RND

RAL

:SHIFT IN CARRY

MOV

H, A

; IN MEMORY

RET

; WORKING S

TORAGE

RnD:

D3

23 H

; "ANCOt- NUMBER

HOXN:

D3

a

! H. 0. X VALUE

HOY".':

D3

b

;H.O. Y VALUE

SHCNT:

D3

a

: ICC SHIFT COUNT

END

;SPACE JAR APPLICATIONS MODULE ; COPYRIGHT I97S D. KHUGLINSKI

i IMp'oR

FA NT

CONSTANTS

ASIRT

EOU

500 H

;LOAD ADDRESS

BADRI

EliU

0 FFFEH

;BUTTON READ ADDRESS

SUN

EQU

7

;COLLISION RAD OF SUN

INTVL

EOU

18H

;DURATION OF EXPLOSION

EPSLN

EOU

B H

;C0LLSIION RAD OF TOHPF.UCS

ACON

EOU

8

;ACCELERATION CONSIANI

HMAX

EOU

1 2

;TORPEDO TIMEOUT

VCON

EOU

30-0 H

;TORPEDC RELATIVE VELOCITY

HULY

F.QU

20 H

;HYPERSPACE Evil DELA"

LIMIT

EOU

7 AH

S SCREEN EDGE

MACROS

GRAPHICS MACROS

M3EAM

MACRO

X, Y

DB

0

n^i

X

y

ENDM

M DIS P

MACRO

X, v

DB

2

03

X

DB

Y

EN DM

LVEC

MACRO

X, Y

DJ

n

DJ

X

DB

Y

ENDM

SVEC

MACRO

03

6

ENDM

sv

MACRO

LEN,

DIR

DB

DIR

OR ( LEN

ENDM

SVr

MACRO

LEN,

DIR

DB

DIR

OR (LEN

ENDM

SVE

MACRO

LEN,

DIR

D3

DIR

OR (LEN

ENDM

SVEF

MACRO

LEN,

Dili

03

DIR

OR (LEN

ENDM

PARAM

MACRO

SCL,

ORN

03

8

D3

ORN

OR (SCL

ENDM

JUMP

MACRO

ADDR

DB

2 AH

DW

ADDn

ENDM

'jumps

MACRO

ADDR

D3

0CH

DW

ADDK

ENDM

'rets

MACRO

DB

0 EH

ENDH

EXEC

MACRO

D3

10H

ENDM

; ENTRY MACRO FOR DISPATCH TABLE

MACRO

D3

DB

DW

DW

ENDM

MASK,TIME,OBJ,PROG

MASK

TIME

OBJ

PROG

! SYSTEM CALL MACRO SCALL MACRO MODN RST 7 DB MODN ENDM

; MACRO TO CREATE 12-3YTE COORDINATE 3LK COORD MACRO XN,XM,XAC,YN,YM,YAC XN XM XAC YN YM YAC

DW DW DW DW DW DW ENDM

MACRO TO LOAD REG INDEXED (BCrBASE) DESTROYS HL LOADX MACRO REG,OFSET

104

How to get more bytes for your buck.

First, come to Micropolis. Where you get a MetaFloppy instead of an ordinary 5/4" floppy disk system.

Then, forget all things average.

Because the Micropolis MetaFloppy delivers over four times the 70K (or so) bytes of storage you'd expect. A whopping 315K bytes per disk to be exact. All formatted — not raw. And all on a single disk side.

But that's not all. Because Micropolis delivers everything else you need, too. Power Supply. Interface cable. Extended BASIC software. Plus an S-100 controller for your Altair 8800, I MSA I 8080, COMPAL 80, or the like.

There's even a dual drive model for maximum convenience. And savings.

Circle 390 on inquiry card.

The Micropolis secret: We build every component we sell. In fact, we're the only totally integrated 514" floppy disk system builder around. And where there's no middleman, there's no middleman to pay.

So, before you swallow someone else's price/performance story, find out how much your buck really buys and how much faster it buys it —at Micropolis.

For a free brochure and price sheet, write: Micropolis Corporation, 7959 Deering Ave., Canoga Park, California 91304 or phone (213) 703-1121.

MICROPOLIS

Listing 5, continued:

LXl DAD MOV ENDM

H, OFSEI B

REG, K

MACRO TO STORE REG INDEXED (3C=BASE) DESTROYS HL

STORX

MACRO

REG, OFSET

LXI

H, OFSET

DAD

3

MOV

M, REG

ENDM

• MACRO

TO LOAD 2 BYTES FROM OFSET

; INTO

HL <BC=

BASE ADDR)

LD3LX

MACRO

OFSET

PUSH

D

LXI

H,OFSET

DAD

3

MOV

E,M

I NX

H

MOV

D, M

XCHG

POP

D

ENDM

; MACRO

TO STORE 2 3YTES IN OFSET

i FROM

HL CBC=

BASE ADDR)

S D3 LX

MACRO

OFSET

PUSH

D

XCHG

LXI

H, OFSET

DAD

3

MOV

M, E

I NX

H

MOV

IH, D

POP

D

ENDM

■ MACRO

TO TAKE

ABSOLUTE VALUE OF A

A3S

MACRO

CPI

0

JP

POS ;JUMP IF A POS

CMA

; COMPLEMENT A

POS:

ENDM

i LINKAGE BETWEEN SYSTEM AND APPLICATION

TIME

EQU

3FH

SUMS

EQU

46H

ORG

40H

DW

START ;DISPLAY FILE

ORG

4211

D'J

NTSK :# TASKS + LIST

ORG

■MH

DW

K3DCD ;KEYBOARD DECODE

; DISPATCH TABLE + NUMBER OF OBJECTS

ORG

ASTRT

NTSK:

DB

14 :# TASKS

; DISPATCH TABLE

1LNT1:

ENTRY

0,0,SHI,INIT

IENT2:

ENTRY

0 ,0 , SH2, INIT

PENT1 :

ENTRY

0,1, SHI , SSTFi r

PENT2:

ENTRY

0,1,SH2,SSTHT

ENTRY

0,0,SHI,SFLY

ENTRY

0,0,SH2,SFLY

ENTRY

0,0,BUI,3FLY

ENTRY

0,0,BU2,3FLY

GENTI :

ENTRY

0 , 1 ,SHI ,FIRE

GENT2:

ENTRY

0,I,SH2,FIRE

ENTRY

0FH,0 , SCI ,SCORE

ENTRY

0 FH,8,SC2,SCORE

ENTRY

7H,2, SHI , ROT

ENTRY

7 11, 6, SH2, ROT

COORD

Dal

DW

DW

DW

DW

DW

DW

DW

D3

DB

D3

DB

DB

DB

DW

DB

DS

D3

DW

6F00H, 70610 H, 2 ,-6000H, -6000 H,0 3112

PEXH2+1

SHIP2

PSU32+]

PDIR2+I

PENT2

GENT2

SC2

10 H

20H

40 H

80H

BADR1 0C0H 0

IENI2

TORPEDO OBJECT BLOCKS

0,0,0,0,0,0

BPOS1 3U2 0

0,0,0,0

3P0S2

BUI: COORD DW DW

DB

BU2: COORD

DW DW DB

i SCORE OBJECT BLOCKS

SCI: DB 0

DW SCI 1+1

DW SC12+I

SC2: DB 0

DW SC2I + 1

DW SC22+1

; WORKING STORAGE LOCATION

ORSAV: DW 0

;DYN COORDS ;PNTR TO NDISP INSTR ; PNTR TO NEXT TORPEDO ;COUNTDOWN SINCE FIRING

;BINARY SCORE VAL ;1 ST DIGIT :2ND DIGIT

; DISPLAY FILE

03JECT BLOCKS

SHIP OBJECT BLOCKS

COORD

0,0,0,0,0,0 :DYNAMIC COORDS

DW

PPOSI

PN IR TO MBFA M INS Hi

POSTN

COORD

-6F00 11, -7000 H, i: , SSPF H.SBMi 11,0

DU

HUI

PSII. TO TORPEDO

DW

PEXHI+I

CALL EXHAUST/ZERO

DW

SHIHI

SHIP SUB

DW

PSUBI+1

CALL SHIP/EXPLO

DW

PDIR1+I

SHIP ORE N T

DW

PENT!

BACK POINTER

DW

GENTI

FIr.E ENTRY

D

SCI

SCORE

DB

0 1 II

ACC BUTTON MASK

DB

02)1

FIRE MASK

DB

0111

CW MASK

DB

fioH

CCW MASK

DB

0

INHIBIT FlhE

D6

0

ORIENTATION

DW

3AURI

BUTTON ADDRESS

D3

0 CH

HYPERSPACE MASK

DB

0

HYPER3PACE FLAG

DB

0

INITIAL ORIENTATION

DW

IENT1

PACK PNTH TO INIT POM

COORD

3,0,0,0,

.0

DW

PPOS2

START:

EXEC

M3EAM

S0H,30H :SUN

P A R A M

2 0

JUMPS

SUNSB

Pp OS1 :

M B E A M

2 , 0 £0 H

PDIRl :

P A R A M

1 , 0

pcn-i! '

JUMPS

:

JUMPS

SH IP1

PP0S2:

M3EAM

0 ,0 CP H

P DI R£ :

PARAM

1 ,0

PEXH2:

JUMPS

NULL

PSU32:

JUMPS

SH IP2

BPOSl:

MBEAM

0,0

3P0S2:

MBEAM

0,0

PARAM

1 ,0

MBEAM

1 < 1

SCI 1 :

JUMPS

NULL

3C12:

JUMPS

NULL

MBEAM

0D0H, 1

SC2 1 :

JUMPS

NULL

SC22:

JUMPS

NULL

JUMP

START

SUNSB:

SVEC

SVF

S,0

sv

3,2

sv

3,3

sv

6,4

sv

3,5

sv

6,6

sv

3,7

sv

6,0

sv

3, 1

SVE

3,2

RETS

SHIP1:

SVEC

SVF

3 , 0

SV

2,5

SV

4,4

SV

2,2

SVF

2,5

SVF

4,0

SVF

2.1

SV

2,3

SV

4,4

SVE

2,6

RETS

SHIP2:

SVEC

SV

3,0

SV

2,5

SV

4,4

SV

2,2

SVF

2,6

SVF

4,0

SVF

2, 1

SV

2,3

SV

4,4

SVE

2,6

REIS

EXPLO:

PA RAM

2,0

SVEC

SVF

3,0

SV

6,4

SVF

3,2

SV

6,7

SVF

3,4

SV

6,2

SVF

3,0

SVE

6,5

RETS

NULL:

RETS

106

HOBBYIST

ME AJ 8411/O-A COMPLETELY REFURBISHED IBM SELECTRIC TERMINAL WITH BUILT IN ASCII INTERFACE-JUST $995

Features:

■ ASCII code

■ 14.9 characters per second printout

■ Special introductory price —$995 (regularly $1195). 75% discount over original price of new unit.

■ Choice of RS 232 Serial Interface or Parallel Interface (requires 3P + S)

■ Order direct from factory

■ 30 day warranty —parts and labor

■ Nationwide service locations

AJ 841 WARRANTY AND SERVICE IS AVAILABLE IN THE FOLLOWING CITIES:

High quality selectric printing

Reliable, heavy duty selectric mechanism

Off line use as typewriter

Los Angeles Philadelphia Hackensack Columbus Cleveland San Jose Boston Washington, D.C.

Cincinnati Detroit Dallas Houston Atlanta Chicago New York

mrm anderson

y|JACOBSON

Anderson Jacobson, Inc., 521 Charcot Avenue San Jose, California 95131, (408) 263-8520

r

HOW TO ORDER AN AJ 841 I/O TERMINAL

1. Make cashier's check or money order payable to: ANDERSON JACOBSON, INC.

Address your request to: Personal Computer Terminal ANDERSON JACOBSON, INC. 521 Charcot Avenue San Jose, CA 95131

2. Upon written notification, pick up your terminal at the AJ service office located in one of the above cities. Allow six to eight weeks for delivery.

3. Afinal check of your unitwill bemadeatthe local AJ service office at time of pick up.

4. For warranty or repair service, return unit to designated service location.

CLIP AND MAIL WITH ORDER

SELECT EITHER:

□ RS 232 Serial Interface

□ Parallel Interface (requires 3P f S)

Number of units @

$995.each$_

Local Sales Tax

Shipping and handling $35.00 each (excluding San Jose)

TOTAL

NAME

ADDRESS CITY

.STATE.

_ZIP

PHONE (.

Circle 391 on inquiry card.

Listing 5, continued:

EXHST: SVEC

SV 7,4 SVEF 7,0 RETS

; *********** PROGRAMS *************

INITIALIZATION PROGRAM SCHEDULED AT START i BY CTL C

SCPNT

SET

28 H

IEPNT

SET

35H

PEP NT

SET

24H

INI T:

LDBLX

SCPNT

;GET SCORE A DDR

MVI

M,0

;ZERO SCORE

LD3LX

PEPNT

;GET ADDR OF SHIP ST

INX

H

; TIME

MVI

M,0

i SCHED SHIP START

LDBLX

IEPNT

; ADDR OF INI T ENTRY

I NX

H

MVI

M,l

;DESCHED SELF

RET

SHIP START PROGRAM

DC

SET

0

STCRD

SET

0 EH

F3PNT

SET

1 AH

EXPNT

SET

1 CH

PLPNT

SET

1 EH

PCPNT

SET

20 H

PDPNT

SET

22 H

ORENT

SET

2FH

HFLAG

SEI

JJH

;HYPERSPACE FLAG

IORNT

SET

2AH : INITIAL ORIENTATION

; SELECT ACCORDING TO HFLAG

SSTRT:

LOADX

A, HFLAG

CPI

0

JNZ

HYPR

; CA5E

-H=0-

NORMAL START--NOT HYPERSPACE

CALL

STRT

i SHIP INST, DESCHED

CALL

BEGIN

i ORENT-0,START POS

RET

HYPR:

JM

HDEST

; CASE

-H= 1 -

HYPERSPACE RETURN--NO DESTROY

CALL

STRT

CALL

HCORD

;RANDOM COORDINATES

RET

; CASE

-HYPERSPACE RETURN—DESTROY

HDEST:

CALL

DSTRY

CALL

HCORD

: RAND COORDS

RET

; EMDSELECT

STRT:

LDBLX

PLPNT

:NORMAL SIART

XCHO

: SHIP SU 1 ADDR III DE

LDBLX

PCPNT

;CALL ADDR IN HL

MOV

M, E

: HHP SUB -> CALL

I NX

H

MOV

M, D

L03LX

PEPNT

; E.NT"Y ADD

MVI

M,t<

: MASK

I NX

H

MVI

M,i

i DESCHED SELF

RET

BEGIN:

LOADX

A,IORNT

;SET ORIENTATION

STORX

A, ORE NT

LX1

H, STCRD

; SIA:iT COORD

DAD

a

: ADDR IN HL

MVI

D, 12

: ! 2 BYTES TO MOVE

PXLOP:

MOV

A, M

: FROM START COORDS

STAX

3

; TO DYN COORDS

I NX

H

1 NX

B

DCR

D

JNZ

PXLOP

RET

ilCORD:

SCALE

2

;RANDOM RvyF IN A

STORX

A,XN+I

: H. 0. X COORD

STORX

A, XNM+1

SCALL

2

STORX

A, YN+I

;H.O. Y COORD

STORX

A, YNM+I

SCALL

2

STORX

A, y N

:L. 0. X (VELOCITY)

SCALL

?.

STORX

A, XNM

SCALL

2

STORX

A, YN

;L.O. Y

SCALL

2

STORX

A, YNM

MVI

A,0

:l-ERO HYPERSPACE FLAG

STORX

A,HFLAG

RET

; SHIP FLY PROGRAM

XN

SET

0H

YN

SET

SH

XNM

SET

2H

YNM

SET

3H

XACC

SET

04H

YACC

SET

BAH

INPUT

SET

0 CH

N3PNT

SET

0 EH

RCNT

SET

I0H

:TORPEDO TIMEOUT

FIPNT

SET

26H

ACCM

SET

2 AH

FIREM

SET

2 3H

CWM

SET

2 CH

CCWM

SET

2 DH

HYPM

SET

32H

;H"PERSPACE MASK

FINH

SET

2 EH

3APNT

SET

30H

ACONI

EQU

(5*AC0N)/7

SFLY:

SCALL

a

;MOVE SHIP/EXPLO

SCALL

1

:ACCELERATE

; TEST BUTTONS ONLY IF

HOT IN HYPERSPACE

LOADX

A, HFLAG

CPI

0

RNZ

; CHECK IF ACC BUTTON

DN

LD3LX

3APNT

;BUTTON ADDR

MOV

D,M

;BUTTON WORD

LOADX

A, ACCM

; ACC MASK

ANA

D

LXI

D,NULL

i NO EXHAUST

JZ

XHST

: NO ACCELERATION

MVI

D,0

LOADX

E,ORENT

LXI

H, XATAJ

DAD

i;

DAD

D

;X ACC ADDR FOR ORENT

MOV

E, y.

;XACC L.0.

1 NX

H

MOV

D, M

;XACC H.0.

LD3LX

XACC

; ADD TO OR IGINAL

DAD

S D3LV

XACC

SAME

LOGIC

FOR YACC

M VI

D, 0

LOADX

E, ORENT

LXI

u V A T A '3

DAD

0

DAD

o

MOV

E, M

I NX

H

MOV

D, M

LD3LX

YACC

DAD

D

SD3LX

YACC

LX I

D, EXHS T

;EXHAUST

XHST:

LD3LX

EXPNT

•INSERT EXHAUST/ZERO

MOV

M, E

:IN DISPLAY FILE

INX

H

MOV

M, D

; TEST

IF X

NEAR EDGE

ETST:

LOADX

A, XtH-1

A3S

CPI

LIMIT

CP

SJAPX

: »;:s

; TEST

IF Y

NEAR EDGE

LOADX

A, Yl.'tl

AJS

CPI

LIMI I

CP

S'.'APY

: yes

: SHIP

ill I s

UN?

LOADX

A, XN+1

A3S

CPI

SUN

:H.o. r. < sua HAU1US

JP

BTST

LOADX

A, YN+1

A3S

CPI

SUN

;H.0. Y < SUN RADIUS

JP

3TST

CALL

DSTRY

RET

: TEST

FOR CLOSE TORPEDOS

3 rST:

LOADX

D,i)C+l

:Ho x pos of ship

LOADX

E.DC+7

:HO Y POS OF SHIP

PUSH

3

! SAVE SHIP "LK PI1TH

LXI

H, 3U1

:FIRST TORPEDO BLK PUTR

FLOOPi

MOV

3, H

:hl ->ac

MOV

C, L

LOADX

A,RCNT

:TO"PED0 CLAIMED?

CPI

0

:TEST FOR ZERO

JZ

IIX3UL

:NEXT TORPEDO

NRTST:

LOADX

A, DC+I

:HO X POS OF TORPEDO

SU3

D

A'<S

CPI

EPSLN

JP

NX3UL

:NOT CLCSF ENOUGH

LOADX

A, DC+7

:HO Y POS OF TCRPEDO

SUB

!SU3T SHIP POS

A3S

CPI

EPSLN

JM

HIT

; >OTH CLOSE ENOUGH

NX3UL:

LDBLX

N3PNT

:NEXT TORPEDO PNTR

SUB

A

;ZERO A

CMP

H

; CHECK OF H -3

JNZ

FL00P

; NO

CMP

L

JNZ

FLOOP

i L NOT 0

POP

B

;SANE STACK

RET

:BOTH HSL ZERO

HIT:

LDBLX

INPNT

;TORPEDO POSTION

MVI

M,0

;M3EAM INSTR ( BLANK)

MVI

A,0

:RELEASE TORPEDO

STORX

A, RCNT

POP

3

!RESTORE SHIP BLK

CALL

DSTRY

RET

; SUBROUTINE TO INCREMENT SCORE, SCHED ; SHIP START AND REPLACE SHIP WITH EXPLOSION J ALSO USED IN HYPERSPACE PROCESSING DSTRY: LD3LX SCPNT ;RESTORE SCORE ADDR

MOV A,M ■ : INCREMENT SCORE

INR A

DAA

108

Listing 5, continued:

MOV M, A

SCHED SHIP START

LD3LX PEPNT

nvi

LDA ADI I NX

MOV

M,-l TIME INTVL H

M, A

; REPLACE SHIP WITH EXPLOSION

;SHIP ENTRY AUDR ; MASK = -I

;TIME+INTVAL TO PL ST

I NX DCR JNZ LXI

DAD MOV MOV

D

XLOOP H,-10

3

B, H

C, L

;DECREMENT CNTR ;NOT DONE YET

;RESTORE TORPEDO BLK

PCPNT M,E

H

M,D

XNM XN

LXI LDDLX MOV INX MOV RET

;

SWAPX: LDBLX XCHG LDBLX SDBLX XCHG SDBLX RET

SWAPY: LD3LX XCHG LDBLX SDBLX XCHG SDBLX RET

! ACCELERATION TA3LE XAIA1: DW 3 DW DW DW DW DW DW DW DW DW

D,EXPLO ;EXPLO SU3

COMPUTE INITIAL TORPEDO COORDINATES

X(N-l) i YCN-1) ARE SHIP'S* COLLISION RAD

; SUB CALL

; SWAP X COORDS

; SWAP Y COORDS

YNM YN

YATA3:

ACONI ACON ACONI i>

-ACONI

- ACON

- ACONI

z

ACONI

Y( N) LHLD LXI DAD MOV I NX MOV LDBLX DAD SDBLX

LHLD

LXI

DAD

MOV

I NX

MOV

LD3LX

DAD

SD3LX

LHLD

LXI

DAD

MOV

INX

MOV

LDBLX

DAD

SDBLX

ARE SHIP'S + VELOCITY + COLL RAD ORSAV

D. XVTA3 ;X VELOCITY TABLE D

E, M

H

D, M

XN

D. XN

;XVEL IN DE

; ADD VEL+COLL TO X( N)

ORSAV

D. XRTAB ;COLL RAD TABLE

b

E, M

H

D, M

XNM D

XNM

:ADD COLL TO X< N-l>

ORSAV

D. YVTAB

D

E, M H

D,M

YN

D

YN

! ADD VEL+COLL TO YC N)

;

TORPEDO FLY PROGRAM

;ACCELERATION LOOKUP ;MOVE TORPEDO

3FLY:

SCALL SCALL

1

a

; TEST

IF X NEAR SCREEt,

EDGE

L0A3X

A, DC+l

;HO X POS OF TORPEDO

A3S

;A3S VALUE OF X

CPI

LIMIT

:SU3TRCT LIMIT

JP

3LANK

:nea:-) edge if + or a

; TEST

IF Y NEAR EDGE

LOADX

A, DC+7

:H0 Y POS OF TORPEDO

ASS

CPI

LIMIT

JP

3LANK

:NOT NEAR edge

; TORPEDO HII

SUN

LOADX

A, XN+I

A3S

CPI

SUN

HP

i'ETN IF NOT

LOADX

A, YM+ 1

A3S

CP I

SUN

RP

; IETURN

IF NOT

BLANK:

LDBLX

INPNI

jMBEAM/MDISP INST

MVI

if,i

;M3EAK

MVI

A, a

STORX

A, RCUT

; RELEASE TORPEDO

RE I

i TORPEDO FIRE PROGRAM

GEPNT

SET

26H

LHLD ORSAV

LXI D.YRTAB

DAD D

MOV E, M

INX H

MOV D,M

LDBLX YNM

DAD D

SDBLX YNM RET

; COLLISION RADIUS TABLES

XRTA3: DW B

j ADD COLL TO YCN-1)

YRTA3:

; H. U.

XVIA3:

YVTAB:

DW DW DW DW DW DW DW DW DW

VtLOCllY DW I DW DW DW DW DW DW DW DW DW

RCON RCON RCON

a

-RCON -RCON -RCON

e

RCON

COLL HAD IAjLES

0

VC0H1+3CON VCON+RCON VCON1+ RCON C

-VCONI -RCON -VCON-RCOII -VCONI-RCON 0

VCONI+SCON

SCORE PROGRAM

;;;

RCON VCONI FIRE:

EOU

EQU

LDBLX

INX

MVI

LOADX

ADD

MOV

MVI

SHLD

LDBLX

PUSH

EPSLN*!1BH (5*VCON)/7

GEPNT ;DISPATCH TA3LE ENTRY FOR SHIP H

M, I

i DESCHEDULE SELF

L, A

H,a

ORSAV FBPNT

3

FIND FREE TORPEDO

;DOUBLE ORIENTATION !SAVE FOR LATER

;PNTH TO 1ST TORPEDO ;SAVE SHIP BLOCK BASE

HL

MOV MOV LOAD* CPI JZ POP RET

SHOOT A TORPEDO

B, H

C, L A,RCNT

0

SHOOT 3

LD3LX

MVI

MVI

STORX

POP

MVI

MOV

STAX

INX

INPNT M,2

A, RMAX A,RCNT

H

d, ia

A, M

B H

;TEST FOR CLAIMED TORPEDO

;NOT CLAIMED

;SANE STACK

:NO FREE TORPEDOS

;UN3LANK TORPEDO ; 'MDISP'

:SET TIMEOUT COUNTER ; TO CLAIM TORPEDO j SHIP OBJ BLK IN HL :10 BYTES TO MOVE ;BYTE FROM SHIP COORDS : INTO TORPEDO COORDS !NEXT BYTE

SCRE

SET

0

SDISI

SET

1

SD132

SET

3

SCORE:

LOADX

A,SCRE

ANI

0FH

RLC

ADI

NUMS

MVI

H,(I

MOV

Li A

MOV

E, M

INX

H

MOV

D, M

LDBLX

SDIU2

MOV

M, E

INX

H

MOT

M, D

LOADX

A,SCRE

ANI

3 Fa H

RRC

RRC

RiiC

ADI

NUMS

MVI

m

MOV

L, A

NOV

E, M

INX

H

MOV

D, M

LD3LX

SDIGI

MOV

111 E

I NX

H

MOV

M, D

RET

:SCORE VALUE

; RIGHT DIGIT 1*2

! INDEX OF SUBS IN HL

;SU3R A DDR IN DE

;PNTR TO DIGIT

iSUJr? ADDR IN DISPL FILE

;SCORE VALUE ;LEFT DIGIT : JUSTIFY « *2

:LEFT DIG IN DISPL FILE ; RETU1N

110

Listing 5, continued:

::;s ;;:;;;:;s;;;;;;:s::;:::::;;;;!:;s;::;

; PROGRAM TO ROTATE SHIPS, INITIATE TORPEDO FIRE, ; DO HYPERSPACE PROCESSING i CHECK j FOR SPENT TORPEDOS

•'DON'V CHECK'BUTTONS' If' ALREADY'li'HYPERSPACE ROT: LOADX A,HFLAG

CPI 0 JNZ SPNCK LDBLX BAPNT

MOV D,M : BUTTON WORD

; CHECK FOR BOTH CW AND CCU, ; INDICATING HYPERSPACE

LOADX A,HYPM ; MASK FOR HYPERSPACE E,A D E

CWCK ;N0

mov

ANA

XRA JNZ

i 9LANK SHIP LXI LD3LX NOV I NX NOV

:CHECK FOR SPENT BULLETS ANYWAY

CHECK FOR CW

D,NULL PCPNT M, E

H

M, D

;NULL GRAPHICS SUB i PNTR TO CALL

:INSERT

SCHEDULE SHIP START AFTER HDLY

LD3LX PEPNT ;SHIP START ENTRY M.-l TIME HDLY H

nvi

LDA ADI INX KOV

M, A

SEE IF WE NEED TO DESTROY SHIP LATER

NODST:

MVI

SCALL

CPI

JP MVI STORX JMP

0,1

IN A

NODST D.-l

D,HFLAG SPNCK

END OF HYPERSPACE PROCESSING CHECK FOR CW (CLOCKWISE) ROTATION

;RANDOM * ;> ZERO

;YES--DON'T DESTRY i NO--DESTRY

;INDICATE TO SSHIP START PGM

CWCK:

LOADX ANA

JZ

LOADX INR AMI

STORX

A, CWM D

CCWCK

;MASK FOR CW

:CHECK FOR CCW A,ORENT ;OLD ORIENTATION A jUP BY I

7

A, ORENT

CHECK FOR CCW (COUNTERCLOCKWISE) CCWCK: LOADX A, CCWtl ; MASK FOR CCW D

DINS A,ORENT

A ; DOWN BY I

7

A, ORENT ; INSERT ORENT IN DISPLAY FILE

DINS:

ANA JZ

LOADX DCR AM SIORX LOADX LC3LX MOV AM ORA MOV

D,ORENT PDPNT

A, M

0F8H

D

M, A

ORENTATION IN DISPLAY

iSTRIP OLD ORENT BITS ; INSERT NEW

CHECK IF FIRE BUTTON ON

FIRCK:

INCHK:

LDBLX MOV LOADX ANA JNZ MVI STORX JMP LOADX CPI JNZ MVI STORX LDBLX INX MVI

BAP NT ;BUTTON ADDR D,M :BUTTON WORD

A,FIREM j FIRE MASK

D

:SEE IF INHIBIT !NO FIRE -- CLEAR INH

I NCHK A,0 A, FINH SPNCK A,FINH

:CHECK INHI3IT FLG

SET

NOT SET -- SET IT

:SCHEDULE TORPEDO FIRE

SPNCK A, 1

A, FINH FIPNT H

M,0

CHECK FOR SPENT TORPEDOS SPNCK: LD3LX FBPNT ; TORPEDO POINTER ; FIND CLAIMED TORPEDO WITH TIMEOUT ; FOR THIS SHIP

MOV

3,H :HL -> 3C

MOV

C,L

LOADX

A, RCNT

CPI

a ;TEST FOR CLAIMED

RZ

; NOT CLAIMED

DCR

A ;DECREMENT TIMER

STORX

A,RCNT : RESTORE IN BLOCK

RNZ

!NOT ZERO YET

LDBLX

INPNT

MVI

M,0 ;BLANK TORPEDO

RET

; KEYBOARD

)ECODE PROGRAM

CTLC

EQU

KBDCD:

MOV

C, A ;SAVE CHAR

CP I

CTLC ;"C"7

RNZ

!RETURN IF NOT

LXI

H,IENTI+1 :SCHED INITI

MVI

M,0

LXI

H, IENT2+I ;SCHED INIT2

MVI

M,0

RET

END

■

VECTOR PACKAGING MATERIALS SAVE TIME & MONEY

S100 CARDS-100 PLUG CONTACTS-Convenient universal tinned pads and bus lines. For interface, memory expansion, breadboarding. Mount almost anything anywhere on card.

SIOO CONNECTORS for WIRE WRAPPING or SOLDERING

Model VP2

BEAUTIFUL NEW VECTOR-PAK CASES for micro-computer circuitry, assembled. Constructed of aluminum, finished in vinyl, access. Includes card guides, heavy chassis plate, perforated bottom cover for cooler operation.

Card guides perpendicular to front panel. Model VP1, $1 28.30. Card guides parallel to front panel, Model VP2, $134.30.

Slide out covers for easy

S100 MOTHER BOARD, $29.50. 11 positions ready for connectors. Glass epoxy, plated thru holes, circuitry for active termination, 12 tantalum capacitors and instructions.

PLUS revolutionary Slit-N-Wrap wiring tools, Micro-Vectorbord,® printed circuit kits, I.C. sockets, extenders.

Send for new catalog.

VECTOR ELECTRONIC COMPANY, Inc.

12460 Gladstone Avenue, Sylmar, CA 91342 phone (213) 365-9661, twx 910-496-1539

111

Circle 393 on inquiry card.

here!

the new HEATHKIT low-cost personal computing systems

The new VALUE-STANDARD in personal computing systems! Heathkit computers give you the power and performance to go wherever your imagination and programming prowess take you. They're designed to get you up and running fast, interface with I/O devices easily and quickly, accept additional memory and I/O devices, store and retrieve data with speed and accuracy, respond to your requests with lightning speed. They offer complete mass storage capabilities, power and reliability for any programming application, and they're priced low enough to give you real VALUE for your computer dollar! We've told you they're the ones you've been waiting for —here's why!

These Heathkit computer products are

"total system" designs with powerful system software already included in the purchase price. They're the ones you need to get up and running fast. And they're backed by superior documentation including easy-to-follow step-by-step assembly and operations manuals, and service support from the Heath Company, the world's largest and most experienced manufacturer of electronic kits.

NEW H8 8-Bit Digital Computer. This 8bit computer based on the famous 8080A microprocessor features a Heathkit exclusive "intelligent" front panel with octal data entry and control, 9-digit readout, a built-in bootstrap for one-button program loading, and a heavy-duty power supply with power enough for plenty of memory and interface expansion capability. It's easier and faster to use than other personal computers and it's priced low enough for any budget.

NEW H11 16-bit Digital Computer. The

most sophisticated and versatile personal

computer available today — brought to you by Heath Company and Digital Equipment Corporation, the world leader in minicomputer systems. Powerful features include DEC's 16-bit LSI-11 CPU, 4096 x 16 read/write MOS memory expandable to 20K (32K potential), priority interrupt, DMA operation and more. PDP-11 systems software for fast and efficient operation is included!

NEW H9 Video Terminal. A full ASCII terminal featuring a bright 12" CRT, long and short-form display, full 80-character lines, all standard serial interfacing, plus a fully wired and tested control board. Has autoscrolling, full-page or line-erase modes, a transmit page function and a plot mode for simple curves and graphs.

NEW H10 Paper Tape Reader/Punch.

Complete mass storage peripheral uses low-cost paper tape. Features solid-state reader with stepper motor drive, totally independent punch and reader and a copy mode for fast, easy tape duplication. Reads up to 50 characters per second, punches up to 10 characters per second.

Other Heathkit computer products include a cassette recorder/player and tape for mass storage, LA36 DEC Writer II keyboard printer terminal, serial and parallel interfaces, software, memory expansion and I/O cards, and a complete library of the latest computer books. The Heath User's Group (HUG) provides a newsletter, software library and lots more to help you get the greatest potential from your Heathkit computer products. We've got everything you need to make Heath your personal computing headquarters, send for your FREE catalog today!

16-Bit Computer

$1295 Kit

Video Terminal

$530 Kit

HEATHKIT CATALOG

Read all about our exciting com- . puter systems and nearly 400 other fun-to-build, money-saving electronic products in kit form.

Prices are mail-order FOB, Benton Harbor, Michigan. Prices and specifications subject to change without notice. Heath Company, Dept. 334-340 Benton Harbor, Mi 49022

Circle 394 on inquiry card.

Fundamentals of Sequential File Processing

Wayne D Smith

Dept of Business Administration Angelo State University San Angelo TX 76901

The newly available floppy disk drive units have opened many new areas of applications for microprocessor users. In the area of high utilization data, and fast interactive programs, the capabilities of random access disk storage devices are unequaled. Unfortunately, the price of such units often puts them outside the budget of personal computer users. Even when disk units are available, the advisability of using these devices for storing low utilization programs or data may be doubtful. You don't really need a $1000 auxiliary storage device to maintain a Christmas card list which is used once a year.

The new, special design digital cassette recorders have also generated a great deal of interest. These units allow software control of all tape functions, and provide for tape position sensing. While the price of these units is about half that of a single disk drive, they are still somewhat expensive. Like disk units, they also require fairly sophisticated interface hardware for proper operation.

Audio cassette units, on the other hand,

are cheap and readily available. These units are rapidly becoming the standard auxiliary storage medium for small computer systems.

Audio cassette units do, however, have several shortcomings. Compared to the other devices, they are slow, and most standard audio units do not have provisions for sensing the relative position of the tape. Further, most such units use a single motor for all tape operations, and accomplish the fast forward and rewind functions through gearing between the motor and the capstans. The physical pressure required to engage these gear trains virtually prohibits software control of these functions.

There are applications in which these shortcomings can be minimized. These applications are those that involve the use of auxiliary file storage where the information stored is inherently sequential in nature. While audio cassettes cannot compete with either digital cassettes or disk files in either speed or flexibility, they can provide very satisfactory results in the processing of sequential files.

This situation closely parallels the case in the data processing industry, where sequential tape files still play a major role in auxiliary storage. The economic advantages of these units can often offset the shortcomings of this type of storage.

About the Author

Wayne D Smith is currently an assistant professor of computer science at Angelo State University, San Angelo TX. He received his PhD in Computer Science from the University of Illinois in 1976. Besides his professional and hobby interest in computers he also enjoys operating an amateur radio station and flying.

114

ONE RECORD

A FILE OF

RELATED

RECORDS

NAME: JOHN DOE

ADDRESS 504 MAIN ST.

CITY: URBANA

STATE: ILLINOIS

ZIP: 61801

, DATA I ITEMS

LABEL RECORD

"1RG"= INTER-RECORD GAP

DATA ITEMS

O

Figure 7: Relationship between files, records and data items in a sequential file.

Nature of Sequential Files

Figure 1 indicates the basic relationship between the components of a file oriented data processing system. In this type of system, information is arranged in sets or collections called files. The information within a file is usually related by the type of data contained in the file. For example, a small business might maintain separate files for employee records, customer accounts and stock inventory.

Files are then subdivided into smaller units called records. There is a single record for each entity within the file. In the case of the files mentioned above, there would be a record for each employee in the employee file, a record for each customer in the customer file, and a record for each stock item in the inventory file.

A record is simply a collection of related data items. In any file processing system, the user specifies the data items that constitute a record. For example, the records in a Christmas card list file would probably contain five data items. These items would be: name, address, city, state and zip code. These items are related within a single record in that they all pertain to the same individual. A collection of these records, whether on magnetic tape, magnetic disk, or in an address book, constitutes a file.

Files which are stored on magnetic tape are called sequential files because the records in such a file are stored one after the other on the recording medium. One of the major disadvantages of this storage type is the sequential arrangement of files. In order to obtain the information stored in the Nth record in such a file, the preceding N-1 records must be bypassed. Without tape position indicators, this means that the preceding N-1 records must be processed at normal tape read speed before the Nth record can be read.

A second, related problem concerns identifying individual records. Since many records may be read before the desired record is reached, some provision must be made for determining when the correct record has been found. In practice, this problem is usually overcome by providing each record in the file with a separate data item that can be used to identify that particular record. This identification must, of course, be unique for each record in the file.

Many types of records already contain data items which may be used for identification purposes. An employee file, for example, would probably contain a social security number in each record. This number is unique for each employee, and could be used for record identification. In other cases, an additional data item would have to be

115

added to the record solely for purposes of identification. In the Christmas card list mentioned earlier, a sixth data item would have to be added in order to provide for record identification. For practical reasons, alphabetic data items, such as names, are seldom used for record identification.

While the records within a file do not necessarily have to be arranged in any special order, the search for a specific record is greatly facilitated if the records are stored in some orderly fashion. Sequential tape records are usually arranged in numerical order based on the identification number. In fact, this numerical ordering of records is a crucial requirement if efficient sequential file processing is to be possible. All the algorithms involved in processing sequential files are predicated upon this ordering.

The actual order of the records is immaterial. The records may be arranged in either ascending or descending order, depending on the preference of the user. Since ascending usually seems more natural to people, this arrangement will be assumed in the discussion which follows.

The sequential ordering of records has a large impact upon the speed with which a file can be processed. Suppose, for example, it becomes necessary to look up the addresses from five records in the Christmas card file mentioned above. If the records are unordered, each search must begin at the first record and search until the desired record is found. After listing this record, the tape must be rewound, and the search for the next record initiated from the beginning of the file. With this strategy the average number of records which must be read in order to find a specific record is one half the number of records in the file. Finding five records would require, on the average, reading 2.5 times the number of records in the entire file. In the worst case, it could require reading almost five times the number of records in the file.

If, on the other hand, the file is arranged in numerical order, the process is greatly simplified. In order to take advantage of the sequential ordering of the file, the numbers of the records to be found are also entered in sequential order. When this procedure is followed, processing time can be greatly reduced. After the first record is read and processed, the second search can begin without rewinding the tape. Since the second record has a higher number than the first one, that record must follow the first record. This means that the maximum number of records which must be read in order to process all five addresses cannot exceed the

number of records in the file. This represents a considerable savings over the unsorted case.

Note, however, that the number of records read does not vary greatly regardless of the number of addresses to be found. That is, it requires about the same tape read time to process one record (average: one half the file length) as it does to process all the records in the file (full file length). This leads to the obvious conclusion that the type of files which are best suited to sequential storage are those in which a high percentage of the records are processed during each computer run. The number of records processed in a single run, divided by the number of records in the file, is called the activity ratio. As this value approaches one, processing efficiency approaches its maximum. A Christmas card list in which all records are listed for printing address labels has an activity ratio of 1.0. In this instance, sequential files offer a very efficient type of auxiliary storage.

Updating

As outlined in the preceding section, the processing of a sequential file does not differ greatly from the processing of any other type of file. The major differences appear when it becomes necessary to update, or change, the information which is stored in a sequential file. Updating may become necessary for any of several reasons. In some cases, data items may become inaccurate, as when a member of the Christmas card list moves. In other cases, it may become necessary to add or delete entire records from the file, as when a new employee is hired or an old one retires.

Due to the nature of magnetic tape drives, it is virtually impossible to position the tape head over a specific data item within a record. In fact, it is almost as difficult to position the tape head at the beginning of a specific record, since the record must pass the tape head before it can be read and identified. The process of adding new records in the correct sequential position presents additional difficulties. Inserting such records will necessitate moving all subsequent records down in the file. Minor errors in tape head position can result in erroneous or unreadable data.

To overcome these, and other, difficulties, the technique of using two tape units is employed. Instead of trying to change the information in the old file, a completely new file is created. This new file contains all the data and records from the old file that remain valid, plus any corrections, additions

116

Why you should buy a digital multimeter from the

leader in digital multimeters.

If you're shopping for your first multimeter, or moving up to digital from analog, there are a few things you should know.

First, look at more than price. You'll find, for instance, that the new Fluke 8020A DMM offers features you won't find on other DMMs at any price. And it's only $169*

Second, quality pays. Fluke is recognized as the leading maker of multimeters (among other things) with a 30-year heritage of quality, excellence and value that pays off for you in the 8020A.

Third, don't under-buy. You may think that a precision 3%-digit digital multimeter is too much instrument for you right now. But considering our rapidly changing technology, you're going to need digital yesterday.

If you're just beginning, go digital.

times better than most analog meters.

Also, the 8020A's digital performance means things like 26 ranges and seven functions. And the tougher your home projects get, the more you need the 8020A's full-range versatility and accuracy. The 8020A has it; analog meters don't.

If you're a pro.

You already know Fluke. And you probably own a benchtop-model multimeter.

Now consider the 8020A: smaller in size, but just as big in capability. Like 2000-count resolution and high-low power ohms. Autozero and autopolarity. And the 8020A is MOV-protected to 6000V against hidden transients, and has overload protection to 300V ac.

Nanosiemens?

What price to pay.

Conductance To Resistance Conversion 10

a s

100

1 1'000

10,000

s=-i

EX

0.1 1 10 100

Conductance (nS) nanosiemens

Why not analog? Because the 8020A has 0.25% dc accuracy, and that's ten

Beginner or pro, you'll find the meter you now have can't measure nanosiemens. So what? With the 8020A conductance function, you can measure the equivalent of 10,000 megohms in nanosiemens. Like capacitor, circuit board and insulation leakage. And, you can check transistor gain with a simple, homemade adapter. Only with the 8020A, a 13-oz. heavyweight that goes where you go, with confidence.

$169:

Of course, you can pay more. Or less. In fact, you could pay almost as much for equally compact but more simplistic meters, and get far less versatility. And, the 8020A gives you the 'plus' of custom CMOS LSI chip design, and a minimum number of parts (47 in all). All parts and service available at more than 100 Fluke service centers, worldwide. Guaranteed, for a full year.

Rugged. Reliable. Inexpensive to own and to operate; a simple 9V battery assures continuous use for up to 200 hours.

Where to buy.

Call (800) 426-0361 toll free. Give us your chargecard number and we'll ship one to you the same day. Or, we'll tell you the location of the closest Fluke office or distributor for a personal hands-on feel for the best DMM value going.

*U.S. price only

Fluke 8020A DMM for Home Electronics Experts: $169

Iflukei

Circle 395 on inquiry card.

TILIII

Figure 2: Circuit for controlling two tape decks for sequential file manipulation. The power pin connections to the 7404 (ICI) are +5 V to pin 7 and GND to pin 14. The 7404 inverter and indicator LEDs are not needed for the working of the circuit. Putting them in enables you to tell whether a read or write operation is happening. To make it easier to tell the difference from a distance, I have made the LED for writing red and the LED for reading green. Any equivalent LEDs will perform the same function. All resistances are in ohms and all resistors are 0.25 W.

or deletions that may be required. This is accomplished by using the old file as input (read only mode), while a new file is created in output (write only mode). Records which are to remain unchanged are transferred directly from the old file to the new file, via computer memory. Records which are to be changed receive part of the data items from the old file, but have other items updated from another input device (keyboard) before they are transferred to the new file. Records which are to be deleted from the file are read from the old file, but are not written on the new file.

Completely new records receive all the data items directly from the keyboard input device. After all data items have been entered, the new record is written on the new file. Program control insures that new records are entered in the correct sequential position in the new file. To facilitate the process of adding new records in sequence, all new files are initially created with substantial gaps between the record identification numbers.

The technique of creating an entirely new file instead of trying to correct an old file has one major disadvantage. This disadvantage is, of course, the requirement for two separate tape units. There are, however, several advantages which far outweigh this

single shortcoming. One significant advantage is that the exact positioning of the tape is not critical. Since the new records are written on blank tape, there is no problem with record alignment, and writing over old data cannot occur.

Another advantage is that each tape unit is operated in a single mode. Using audio cassettes, this means that one unit is always in the record mode, while the other is in the play mode. During the update process, the tapes operate in only this mode. The fast forward function is not required, and the rewind function is used only after all processing has been completed.

This single mode type of operation greatly simplifies the operation of the cassette units during the update. Since each cassette operates in only one mode, the function for each tape drive can be set up before processing begins. During processing, the tape units need only be turned on or off as records are read, processed and written. Since almost all cassette recorders have provisions for remote motor control, software can be utilized to activate the tape recorders as needed by commanding a suitable interface circuit such as that in figure 2.

One final advantage to the 2 tape system involves the protection of data. Since the old file is used only in the read mode, it will

118

(And they're Disk-tinctly Digital Group.)

With the addition of our all-new Disk Subsystem, the Digital Group becomes the only manufacturer of microprocessors to offer you a real choice. Tape or disk. Or both Whatever you want.

We spent a lot of time designing and testing our new Disk Subsystem, and it shows in the result. The Subsystem is highly flexible. . . gives you direct access to data. . . and completes your Digital Group System.

Here's what the Disk Subsystem consists of:

Disk Interface Card—provides the electrical interface between the disk drives and the computer.

Disk Power Supply—provides all power required for up to 2 drives.

Disk Cabinet and Cables—cabinets provide housing for 1 to 2 drives plus the power supply; assembled cabling is provided for connection between all system components.

Disk Drives—the Digital Group Disk Subsystem supports standard 8" floppy disk drives from a number of manufacturers. Drives can be mixed, and in addition, mini-floppy drives are available for the function of a disk at minimum cost.

Documentation and Software—the Digital Group's standard documentation includes construction guides, maintenance manual, theory of operation and other useful information to help you get the fullest value from your new Disk Subsystem. And there's also software to provide initial support.

The price? Low. It's become a tradition with the Digital Group to offer you high-quality, state-of-the-art equipment at the lowest possible prices. Our new Disk Subsystem is no exception.

For only $745, you can get a standard 8" floppy drive and an interface card. A complete single-drive Disk Subsystem with interface, power supply, cabinet, and cables is as low as $995.

Now the Digital Group system is really complete. If you don't own it all yet, take another longing look. In addition to our CPU, keyboard and video monitor, you can add an impact printer and the cassette storage system. All in our beautifully coordinated custom cabinets. All unmistakably Digital Group.

The Digital Group now has disks. And a lot more. Why not find out about all of our exciting products? Simply call or write today for direct information. From the Digital Group.

box 6528 denver, Colorado 80206 (303) 777-7133

Circle 396 on inquiry card.

remain intact even in the event that the updating program goes awry. If the user follows the practice of always maintaining the most recent version of the data, he or she will never be further than one update away from a current file.

Hardware Requirements

Assuming that a microprocessor already has a cassette tape interface, the implementation of a sequential file processing system requires very little hardware. As mentioned above, two cassette tape recorders are required, one for input, reading files, and one for output, writing files. The microprocessor tape input and output circuits are connected to the appropriate tape unit, as shown in figure 2. Even when a single circuit is used for both input and output, no problem arises, since only one cassette will actually be operating at any given time.

The cassettes can, of course, be operated manually if desired, but software control is easily implemented. Two latched bits of an output port are used to provide tape motor control. These output signals are used to activate the tape motors through opto-couplers (Radio Shack #276-1628, Texas Instruments TIL 111, or equivalent) and a single transistor.

The opto-couplers are used to prevent any polarity or voltage problems which might arise from direct interconnection of the microprocessor and tape motor circuits. In many cassettes, the positive terminal of the tape unit will be connected to the microprocessor ground terminal through the microphone and earphone cables. This arrangement would prohibit direct interconnection of the two circuits. Even when the electronics of a specific cassette would permit direct interconnection, the couplers are still worthwhile. Using the couplers will allow changing recorders at a later date without regard to the voltage or circuit ground polarity.

The only critical part of the circuit is the polarity of the transistor. The polarity of the remote jack should be checked before completing the wiring. Almost any NPN transistor will work, provided it can handle the current required by the tape motor. The current requirement for a specific tape motor is easily determined by connecting an ammeter across the remote jack with the tape in the play or record position. There is a fairly high current surge as the motor starts, but this is of short duration. A steady state current of 50 to 100 mA is about average.

The inverters and LEDs shown in figure 2

are optional. The indicator LEDs have proven to be very useful, since they are the only way to determine whether a tape unit is on or off (short of looking at the cassette). They can also provide a measure of amusement when a long tape program is running.

The operation of this interface system is quite straightforward. In order to process a tape file, the user first insures that the appropriate motor control is off. The cassette tape is then loaded and the tape function control is set for play or record as required. If a tape is to be recorded, it must be advanced past any leader on the cassette.

After the tape is loaded and the tape control is set, program execution can begin. The functions of reading or writing the tape are then under software control. If a tape record is to be read, the applicable motor control is turned on by writing a 1 in the appropriate bit of the output port. Normal tape input routines are then used to read the record. When the record has been read, the tape motor is turned off. For writing a record, the motor control is turned on, and normal tape dump routines are used to write the record on tape. A software delay is necessary in this case in order to allow the tape motor to come up to speed before recording begins. A second or two is usually sufficient.

Buffer Storage and Label Records

Processing sequential tapes requires that a certain amount of memory be allocated for storing the records as tfrey are read or prepared for writing. This area is called a buffer, and is used to store the record currently being processed. The amount of memory required is minimal, since there is normally only one record in memory at a time. In one special case, when new records are being added to an existing file, storage for two records will be required. In all other cases, a single record length buffer is sufficient. Records are read into the buffer and then processed. Records may be written from the buffer onto a new file or to an appropriate output device as desired. For a generalized tape handling system, enough memory should be allocated to provide for twice the length of the largest tape record that will be processed. Not all of this area will be used by every program, but it should be provided in order to keep the system as general as possible.

In a sequential file processing system, a number of cassette tapes are required for storing the records of various files. More than one file may be stored on a single cassette, if desired, but this will result in

120

A complete language for "8008"/"8080" systems including source listings, routines, flow charts and more!

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. m 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 started advancing your system!

$49

ppd.

SCELBAL SUPPLEMENTS ...

SCELBAL has taken off so fast, two special supplements 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, ncluding descriptions of "8080" or "6800" instruction sets. How to manipulate stacks. Flow charts. Source listings. General purpose routines for multiple precision operation. Programming time delays for real time applications.

Order your copies today! Start cookin'! Bon Appetite

Random number generators. And more. You even get floating 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!)

$Q95 %y each ppd.

ftAMYV Microcomputer Outer VMrlltlWl 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 "6800" computer. It is a complete book, written in machine language for 4K memory. It's an ongoing, ever-changing interstellar adventure, including source listings, flow charts, routines and much more. Blast off today to high adventure in outer space!

Order GALAXY today! $ Q95

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.

Scelbi Books are available in many fine Computer Stores.

5fiEJK?-Post Office Box 133 PP STN IfJWlUlJ INtl INCi Milford, CT 06460

Circle 377 on inquiry card

slower operation unless the files are very short.

Each file will contain' two distinct types of records. All the records except the first are the data records that contain the actual file information. The first record in each file is a special type of record called the label, or header, record. This record should have exactly the same format on all files. The label record contains general information about the file itself. It does not contain data, and hence does not need an identification number. It is always the first physical record on the tape.

The purpose of the label record is to provide all the information which is required in order to process the file. Since this information changes from file to file, the obvious place in which to store it is in the file itself. Therefore, the first record in every tape file is dedicated to the label record.

The label record may be as simple or as elaborate as the user wishes to make it. At a minimum, however, it should contain:

• The file name or other identification.

• The date created (due to updating, several files of the same name may exist).

• The length of a data record.

In a more elaborate system, the label record could also contain:

• The number and type of data items.

• A description of all data items and their type (ie: binary, BCD, ASCII, etc).

• A security code (access can be denied without knowledge of this code).

All the remaining records on the tape are data records. The length and format of these records will vary from file to file depending on the amount and type of data in the file. The number of data records in a file will also vary.

Any program which processes tape files of this type must first read the label record. The information contained in the label record is then used to set variables that tailor the program for reading and processing the data records from that specific file. This procedure allows a single generalized program to process files of various types and lengths.

Utility Programs

In order to support the processing of sequential files, three general purpose utility programs are required. An optional fourth program may be provided if the user wishes a separate program for duplicating existing

files. Running an update program without entering any changes will accomplish the same thing, however.

The first utility program is one which creates tape files from auxiliary'input. This program performs many of the functions of a text editor. Data is entered via the keyboard, and is stored in the buffer until all the required data items have been entered. A sophisticated file creation program can be designed to query the user for data items one at a time until the record is complete. When all the data items have been entered, the record is written on the file. The process is repeated until the file is complete.

The file creation program must insure that the label record is written on the new file before any data is entered. As with the data records, the program can be designed so as to query the user for this information prior to writing the label record.

It may be desirable to provide the tape creation program with information about the number, length and type, ie: character, binary or binary coded decimal (BCD) of data in each data item. Information about the type of data would be used primarily for error checking, but could also be used to allow data packing. Packing of numeric data would allow two hexadecimal or binary coded decimal digits to be recorded as a single byte. This would require additional program complexity in converting from ASCII input to a packed format. This complexity may be warranted in cases where the packed format would facilitate arithmetic manipulation of the data directly from the tape file. Conversion back to ASCII would be required when listing the file.

As the data records are created, the user must supply the record identification number for each record. The user must insure that these are entered in the proper numerical sequence. In order to provide for the addition of new records at a later date, an initial file should have records numbered in increments of about 100.

The second required utility program is one which makes a hard copy listing of the data stored in a file. The label record may or may not be printed, depending on user preference. The simplest type program would perform an unformatted dump of the data exactly as it is read from the tape. A more elaborate program could separate the various data items into different positions or lines on the page. This type of program would allow printing the data in the form of a customer statement, a check or an address label.

By far the most complex of the utility programs is the update program. This pro

122

SPECIAL WAREHOUSE SALE

THE BEST DEAL WE HAVE EVER OFFERED!

ROYTRON 8-LEVEL READER/PUNCH A BRAND NEW *

$295.00 %,

This paper tape I/O station operates at 50 cps The mechanisms share a common drive motor but are electrically independent. 24 volt signals are required to interface the internal solenoids. An interlacing manual is included. Perfect for typesetting, program distribution, program entry and many other paper tape applications

USE S-100 BOARDS WITH YOUR KIM-1

Now use low-cost and readily available S-100 compatible circuit boards with your KIM-1! The Kimsi from Forethought Products adapts the KIM Bus to the S-100 Bus so that you have access to hundreds of memory and interface boards.

The Kimsi accepts up to 8 S-100 edge connectors, provides on-board power regulation for the KIM-1 and contains the KIM to S-100 interface logic. One S-100 edge connector is included, the KIM to Kimsi connector set must be purchased separately.

Item

Kimsi Backnfane'S 100 Adapter 8 slots tor S-100 available

Kimsi Power Supply Unreg +8@10A. I 1E@1 A: - 16@1A

KIM-1 incl. documentatioo Send for more information

KIM lo Kimsi Connector Set Includes recorder cables

S-100 Edge Connector Kimsi accepts 8; 1 is supplied

Cassette Recorder lor KIM-1 Hundreds sold for KIM use

4K Seals ROM Board Accepts up to 16 1702A or 5203 s

4K Imsai RAM Board Bare minimum to run Tiny BASIC

8K Cromenco ROM Board Accepts up to 8 2708 EPROMs

8K Seals RAM Board Enough space for programs below

Poly Video Terminal Interface 16 x 64 Connects to a Monitor anO Keyboai

Malroi 2480 Alpha-Numeric VRAM 24 lines nf 80 char (needs P39)

Matrox 256-ALT Video Graphics Board Displays 256 x 256 array

Itty Bitty Tiny BASIC 2 5K; kit is a paper tape

Focal (a DEC trademark) Includes floating points

6502 Assembler with Source This is NOT the MOS version

Kit

Assembled

Price

Price

S125

S16S

60

75

N/A

245

8

11

5

7

N/A

55

119

179

139

239

145

245

269

369

6 210

280

N/A

295

N/A

395

5

10

N/A

40

N/A

30

SPECIAL! 10% off S-100 Boards when ordered with Kimsi.

A super buy on these used keystations allows us to sell them a! this low price. These attractive units contain a Hollerith-style keyboard which is easily modified to output ASCII alpha codes (we provide documentation) The interior of the enclosure is large enough for a KIM-1 and power supply We also have a limited supply of keystation components:

Item

50 key keyboard

Mounts on 11.5" centers Keystation Enclosure

Dimensions 16" x 16" x

Copy Stand and Holder

Mounts on top of enclosure

MORE BARGAINS

Burroughs Self Scan Display Panel

Model 0030 16 or 18 character display

Ultrasonic Latching Relay tor Remote Control

Operate 110v appliances from across the room

Data General 6012 CRT Terminal

Brand new with numeric keypad; 4800 baud max

DEC PDP8 I or L with 4K core memory

Table-top or floor models available

MATROX VIDEO RAMS AND GRAPHICS

Tops in the industry, please write for more info. See our KIM Corner for S-100 compatible boards.

MTX 816 Module (Upper Case only) Composite video output in 8 lines of 16 chars MIX 1632 Module (Upper and Lower Case) 16 x 32 display includes blink option MTX 1632SL Module (Great with 256**2) Slave sync allows text superposition MTX 2480 Circuit Board 24 x 80 requires high-persistence phosphor (P39) MTX 256**2 Circuit Board 256 x 256 array graphics (multiples provide color]

Programming Microprocessors Including arithmetic with floating points Build Your Own Working Robot Buster cries when he can t find his "foot].' Telephone Accessories You Can Build Remote ringer, scrambler, dialer, answerer, etc. Master Handbook of 1001 Practical Electronic Circuits Almost 1 V? inches thick Basic BASIC | A great text, many examples, questions and answers Advanced BASIC Coordinate geometry; series polynomials, games 101 BASIC Games The now classic volume compiled by David Ah I What to Do After You Hit Return Games from the People's Computer Company CMOS Cookbook Don Lancaster explains CMOS low-power logic

Introduction to Microcomputers Volume I Adam Osborne explains the theory behind micros 7.50 Introduction to Microcomputers Volume II Then he reviews the current crop of micros 12.50 8080 Programming for Logic Design A whole book on 8080 implementation 7.5D 6800 Programming for Logic Design A whole book on 6800 implementation 7.50 Some Common BASIC Programs Full ot many useful and complete programs 7.50

ORDER FORM

Name

Add ress

City State Zip

Charge my BAC/VISA

Interbank #

Card #

M/C

Exp. Date

Signature

□ Please send me info on the new Commodore PET 2001 computer

Limited 90-day Warranty

Return non-working merchandise within 90 days for replacement or refund. Kits are warranted to be complete with working components All items subject to prior sale.

Qty

Item

Price

Amount

Total for goods

+4% Michigan Residents

+4% Shipping and Handling

+$1 if order's under $20

Total Amount

COMPUMART Inc. 1250 N. Main St. Ann

A Division of Newman Computer Exchange. Inc. Dept. BY

Circle 398 on inquiry card.

^ START J)

READ

LABEL

RECORD

READ KEYBOARD ID (KID)

READ OLD TAPE RECORD (TID)

WRITE TAPE

RECORD TO

YESC

NEW FILE

UNCHANGED

KID>TID ?

NO

,ERROR: OUT OF

SEQUENCE

KID < TID P

YES

READ NEW RECORD FROM KEYBOARD

WRITE 9999 RECORD ON NEW FILE

YES

STOP ^

ENTER CHANGES FROM KEYBOARD

WRITE NEW RECORD TO NEW FILE

READ NEXT KEYBOARD ID

WRITE

CORRECTED

RECORD TO

NEW FILE

Figure 3: Sequential file updating algorithm allows the copying of records, deleting of old records, inserting of new records, and modifications of old records. This is a very generally applicable method, usable whenever serial format records are being processed.

gram is used for the correction of erroneous data in existing records, and also for adding records to or deleting records from the file. The logic for this program, which is shown in figure 3, is based on the assumption that the records in the file are arranged in ascending order, based on the record identification number. It is also assumed that the

identification numbers of the records to be changed, added or deleted are also entered in this order.

The crux of the update program lies in the comparison of the keyboard entered identification number and the identification number from the tape record just read. When the tape ID is less than the keyboard ID, this indicates that the tape record just read is not to be changed. This record is copied to the new file exactly as it existed on the old file.

When the tape ID is equal to the keyboard ID, the tape record just read is one which is to be either changed or deleted. A keyboard entry determines which action is to be taken. If the record is to be changed, the new data items are entered from the keyboard into the buffer area, directly over the data that was read from the old tape file. When the changes have been completed, the corrected buffer is written onto the new file.

If a record is to be deleted, the program simply ignores the current tape record, and reads the next record into the buffer. The deleted record, therefore, does not appear on the new file.

When the tape ID is greater than the keyboard ID, this means that the program was unable to find a record ID on the old file which matched the keyboard ID. Therefore, the keyboard ID represents either a new record, or a typing error. When a new record is to be added, this record is entered into the second buffer area in memory. The use of this second buffer is necessary in order to prevent overwriting the last tape record read, which is currently stored in the first buffer. After the new record is entered, it is written to the new file from the second buffer. The added record now appears in proper sequence on the new file, while the last record read from the old file has been preserved. Processing then continues with the input of another keyboard ID number.

Whenever sequential files are processed, there is always a minor problem concerned with determining when the end of a tape file has been reached. In the program shown in figure 3, the old programmer's trick of using a dummy record with an ID number of all 9s is used to indicate the end of usable data in the tape file. The same code is used to signal the end of data entry from the keyboard. When this technique is used, the user must remember to provide this dummy record at the time a new file is created.

Examples

There are many instances in which the sequential file processing system outlined

124

OSBORNE &> ASSOCIATES, INC.

^J^k The World Leaders In Microprocessor Books ^^/^

Many books on microprocessors and their use are now on the market, and most of them have names that sound alike. But Osborne & Associates' books have dominated this market since 1975, when our first book appeared. With rave reviews from all over the world — with more than five hundred university text adoptions, our books are all best sellers. In fact, "An Introduction To Microcomputers: Volume I — Basic Concepts" now holds the world's record in sales volume for any textbook sold for a profit.

If you want information on microprocessors, begin with the Osborne books.

An Introduction To Microcomputers

Volume 0 The Beginner's Book

By Adam Osborne.

"An Introduction To Microcomputers: Volume 0 — The Beginner's Book" By ^am Osborne.

This is the book for the absolute beginner. Assuming that you know nothing about computers, math or science of any kind, this book explains what computers are all about — and it takes you to the point where you can read Volume I. 300 pages. Book No: 6001 $7.50

"An Introduction To Microcomputers: Volume I — Basic Concepts" By Adam Osborne.

The world's best selling textbook. This book explains, clearly, concepts common to all microcomputers, yet specific to none. 350 pages.

Book No.: 2001 $7.50

For the microcomputer user, a series of books provide complete programs, written in BASIC. All these books are by Lon Poole and Mary Borchers. "Some Common Basic Programs" 200 pages. Book No: 21002 $7.50

"Payroll With Cost Accounting — In Basic". 400

pages Book No.: 22002 $12.50

"Accounts Payable and Accounts Receivable"

Book No.: 23002 $12.50 Available November 30. 1977

"General Ledger System"

Book No.: 24002 $12.50 Available December 31, 1977

8080A AND 8085

ASSEMBLY LANGUAGE PROGRAMMING

BY LANCE LEVENTHAL

"8080A and 8085 Assembly Language Programming" By Lance Leventhal.

This book is for the assembly language programmer or student: it explains assembly language programming for the 8080A and 8085 microcomputers. The book contains numerous examples. 400 pages. Book No.: 31003 $7.50 Available October 31, 1977

"An Introduction To Microcomputers: Volume II — Some Real Products" (Revised June 1977) By Adam Osborne, Susanna Jacobson and Jerry Kane.

This book describes every common microprocessor and all of their support devices. Information is new and clearly written. Only data sheets are copied from manufacturers. 1200 pages. Book No.: 3001 $15.00

The "Programming For Logic Design" series of books show how to use microprocessors in a digital logic environment.

"8080 Programming For Logic Design" By Adam Osborne. 300 pages. Book No.: 4001 $7.50

"6800 Programming For Logic Design" By Adam Osborne. 300 pages. Book No.: 5001 $7.50

"Z80 Programming For Logic Design" By Adam Osborne and Susanna Jacobson.

Book No: 7001 $7.50 (Available November 30, 1977)

OSBORNE & ASSOCIATES, INC. P.O. BOX 2036 BERKELEY, CA 94702

NAME/COMPANY

DEPT. I

( TITLE

UNIT PRICE

QUANTITY }

^Volume 0 — The Beginner's Book (#6001)

$7.50 ea.

Volume 1 — Basic Concepts (#2001)

$7.50 ea.

Volume II — Some Real Products (#3001) revised 1977

$15.00 ea.

8080 Programming For Logic Design (#4001)

$7.50 ea.

6800 Programming For Logic Design (#5001)

$7.50 ea.

8080A/8O85 Assembly Language Programming

(#31003)

$7.50 ea.

Some Common BASIC Programs (#21002)

$7.50 ea.

l Payroll With Cost Accounting (#22002)

$12.50 ea.

ADDRESS

CITY, STATE AND ZIP

TELEPHONE

We will only invoice for purchase orders of over 10 books. Shipping charges for bulk orders to be arranged.

Q Check or Money Order enclosed (Calif, residents include sales tax) I will be using these books for

Please check one space below:

4th Class Mail Delivery (3-4 weeks within the U.S.A.) I have included $.50 per book for U.P.S. (albw 10 days) I have included $1.50 per book for special rush shipment by air. I have included $.50 per book foreign surface mail. I have included $3.00 per book for foreign airmail. I require information on consignments, discounts and distributors

outside the U.S.A.

Circle 399 on inquiry card.

above could be used. An obvious example is the Christmas card list mentioned earlier. This file could be created and then stored for use each December. By using a fairly simple listing program, mailing labels could be generated directly from the file. Sometime in January, the update program could be run to reflect any new addresses received with that year's cards. Persons from whom cards were received for the first time could be added to the file, and those from whom cards were not received could be deleted. The tape could then be stored until the following December. The January update is chosen as a point at which the activity ratio could be expected to be high. More frequent updates are possible, if needed.

An example which is not quite so obvious would be to use a sequential file as storage for a text editor which prepares input for an assembler. In this case, a record would consist of a single line of assembly language code. The data items would include: line number (record identification), label, operation, address and comments. Data items for location and machine code would be provided, but would be left blank by the file creation program.

After the file has been created, it is transferred to the input cassette for processing by the assembler program. The assembler then generates the location and machine code for each record in the file. As the machine code is generated, a new file is created on the output cassette. This file is identical to the input file except that the data items for location and machine code are filled in by the assembler. Optional features in the assembler could provide for loading the machine code for execution, or for creating a hard copy listing of the program as it is assembled.

If errors are detected during assembly or execution, the original file can be corrected through the use of the update program. Since each line represents a record, incorrect lines can be changed by changing the data items in that record. Extraneous lines can be deleted, and new lines can be added, in their proper positions, through the process of deleting or adding records to the file.

In using an assembler of this type, a 2 pass approach is required. This technique is required in order to prevent unresolved references at the time the machine code is being generated. Without prior knowledge of all label locations, forward reference branch instructions could not be assembled as they are read from the input tape. The 2 pass approach offers the additional advantage of dividing the assembler into two

separate programs, only one of which must be in memory at any one time.

A particular advantage to using sequential storage with this type assembler is that it allows the assembly of very large programs. Due to the nature of sequential file processing, there is never more than one source language statement in the machine at any time. By processing the statements one at a time, more memory can be devoted to the assembler itself and its reference tables. In a machine with limited storage, this can result in a more elaborate assembler than would otherwise be possible.

A final example is of a more commercial nature, and involves the processing of an accounts receivable file for a small business. The basic file contains permanent customer information, such as name, address, account number, etc. It also contains data items for previous balance, current balance, payments, and a number of charges. When the file is originally created, these last data items are all set to zero.

During the first month, an update program is run, using this file as input. The file is updated by entering charges for that month. After all charges have been entered, the program computes the total charges and enters this value as the current balance in the new record. The record is then written on the new file. When all accounts have been updated, a listing program is executed, using the new file as input. This listing program, in effect, generates the first month's statements for all customers.

During the second and all succeeding months, a slightly different update program is used. This program first combines previous balance, payments and all old charges to form a new previous balance. Entries are then accepted for both payments and new charges. When all entries are completed, a new current balance is computed. The listing program is then used to generate customer statements for the new month.

Arguments Against Audio Cassettes

There are two arguments which are often advanced against the use of audio cassettes in the manner outlined in the preceding sections. The first argument is that leaving the tape drives engaged for long periods of time can flatten the capstans, which causes wow and flutter when tapes are read. In a system such as that proposed above, this would not present a problem. Even when large files are being processed, the motors would not be engaged for more than a few minutes at a time. In the case of file creation programs, where this time might extend to

126

an hour or so, the tape unit is constantly being turned on and off. The probability of the capstan stopping in exactly the same position after each tape operation is quite small. Therefore, even when the capstan remains engaged for long periods of time, the exact position of the capstan is changing every few minutes.

Additionally, the capstan must be disengaged in order to remove the tape at the end of the program run. Since the tapes would normally be removed after processing, this would seem to preclude leaving the capstan engaged in the same position for a prolonged duration. For those people who are absentminded, the file processing programs could include a reminder to disengage the capstans after processing is complete.

The second argument against audio cassettes is their somewhat less than 100% reliability. Occasionally, a record will be written onto a file which cannot be read back. Even with good equipment, this can sometimes happen. In the file processing system described above, this presents only a minor problem, since it will seldom affect more than one or two records. If a record is unreadable, all the other records remain usable. Therefore, the tape update program can be used to add the unreadable record to a new file. Since the unreadable record does not "seem" to be on the old file, the process is treated as the addition of a new record by the update program. Even if several such records must be added the problem is of minor proportions, and represents more of a nuisance than a catastrophe.

Summary

It is readily admitted that sequential files are not a substitute for random access files. There are, however, many applications in which the disadvantages of sequential files can be minimized. In these instances, a substantial amount of file handling can be performed with very satisfactory results. In cases where disk files are not available, sequential files may be the only means of providing facilities for processing large volumes of data. Even in systems where disk files are available, the judicious use of sequential files can assist in conserving the more expensive disk storage facilities.

The software required to support a sequential file system is considerably less complex than that required by a disk file processing system, and the hardware costs zre minimal. All in all, sequential files can provide a great deal of data processing capability at about one tenth the cost of a single disk storage device."

As Computer Enterprises Enters Their Second Year:

Brand New Products — Low, Low Prices. Save!

Our

List

Price

IMSAI VIO Model B,

Video Kit

$275

$225

IMSAI 16K Dynamic

RAM Kit

$449

$382

IMSAI 32K Dynamic

RAM Kit

$749

$637

Cromemco 16K Dynamic

RAM Kit

$495

$421

Vector Graphic

VECTOR 1+

$659

$560

Low-Priced

Items You

May Have Missed:

List

Our Price

North Star Micro Disk System

$ 699.00

$ 599

Cromemco Bytesaver Kit

$ 145.00

$ 131

Cromemco Dazzler Kit

$ 215.00

$ 193

Cromemco 22 Kit

$ 595.00

$ 535

Seals 250ns RAM Kit

$ 295.00

$ 240

Seals 8080 Wire Wrap Board

$ 37.50

$ 32

Our Own Extender Board

with Connector

$ 30.00

$ 12

IMSAI RAM 4A-4 Kit

$ 139.00

$ 115

RAM 4A-A Socket Set

$ 22.00

$ 10

Compucolor 8001

$2750.00

$2475

Polymorphic VTI/64

$ 210.00

$ 189

Vector Graphic 500ns

8K RAM Assm.

$ 265.00

$ 225

Vector Graphic Prom/RAM Kit

$ 89.00

$ 80

TDL ZPU Kit

$ 269.00

$ 242

Shipping charges: $10 per CPU on larger units; $1.50 per kit. $2.00 min. per order.

Delivery is stock to 30 days on most items. Shipment is immediate for payment by cashier's check, money order or charge card. Allow 3 weeks for personal checks to clear. N.Y. State residents add approp. sales tax. Availability, prices and specs may change without notice.

computer emerpfl/e/

Fayetteville, New York 13066 P.O. Box 71

Write or Call for COMPUTER ENTERPRISES1 DISCOUNT CATALOG!

127

Circle 400 on inquiry card.

SYNCHRO SOUND

mam^m enterprises, inc.mmbhb

One-stop shopping for Hardware and Software

Everything you need in small computer systems with special emphasis on TERMINALS! Look at these units...compare price, quality, delivery, service...and you'll see why you don't have to look anyplace else!

LEAR SIEGLER ADM 3A TERMINAL

• Full addressable cursor

• Display format—24 lines of 80 characters per line

• Communications rates—75 to 19,200 Baud

• Computer interfaces — EIA standard

ADM 3A

Kit

ADM 3A Assembled Lower Case option

$739.95 849.95 69.00

ADM 1A TERMINAL

• Display Format —80 characters per line by 24 lines • Full cursor control Edit operations: clear screen, clear unprotected character type-over. (Options are Character Insert/Delete, Line Insert/Delete, Erase to end of page, Erase Line/Field) and much more

Assembled $1398.00

ADM 2A TERMINAL

1920 character display (24 x 80) 16 function keys for 32 commands Separate keyboard—119 keys 10 key numeric pad Single key edit operations Page, field or line edit Security, protected fields and much more

ADM 2A

Assembled

$1895.00

OKIDATA MODEL 110 LINE PRINTER

• 110 CPS dot matrix

Feed n $1149.00

Feed0 1279.00 RS232C

Interface . . . 260.00

OKIDATA MODEL 22 LINE PRINTER

125 lines per minute 132-column print line Upper/lower case 8 different character sizes 12 IPS paper slew

$2249.00 379.00

DECWRITER II

• 132 column printing

• 10-30 CPS

• Full keyboard

• Tractor feed

$1695.00

SYNCHRO SOUND

ENTERPRISES, INC.I

CENTRONICS 703 SERIAL PRINTER

• Low

cost of ownership

• Bidirectional logic seeking printing

• Microprocessor electronics r- r\r\

• Excellent print quality $2390.00

IMSAI 8080 MICROCOMPUTER • Powerful • Low cost • Easy to use

With 22 Slot Mother Board

$619.95

WithZ-80 CPU

849.95

HAZELTINE 1500 VIDEO TERMINAL

• Reverse video

• 24 x 80 display

• Programmable brightness levels

• RS232 and current loop and much more'

Assembled

$1149.00

Kit also available

HAZELTINE MODULAR 1 INTELLIGENT TERMINAL

• 1920 character display

• 8 different video levels

• Full editing capability

• Removable keyboard and much more

Assembled ....

$1659.00

We carry a full line of the following: TDL, Centronics, Seals, Hazeltine, Micropoiis, Hayden, IMSAI, Cromemco, Compucolor, Icom, LearSiegler, Okidata, DEC, Javelin, North Star, Peripheral Vision. Same day delivery and shipping on most items. Full modern repair facilities on premises for complete servicing of everything we sell.

CENTRONICS 761 PRINTER

• 300 Baud serial transmission

• Bidirectional and incremental printing

• RS232, CCITT-V24, or current loop interface

• Baud selection (110/150/300)

$1695.00|

Receive only version

1595.001

KSR with Keyboard.

Fully IBM 3740 media FL°Pcv<iTFM

and format compatible Full formatter

ICOM Model FD 3712 Dual Drive System

^$2795.00

and controller built-in

SPECIAL BUYS

Sorac IQ 120 Video Terminal Kit $959.00

DEC LA 180 Printer 2769.00

Compucolor8001 ColorComputer 2595.00

ICOM Microfloppy System 989.00

North Star Microfloppy Disk Kit 599.00

2708 Eproms 27.95

Javelin 9" Video Monitor 159.95

Livermore Modem Model 76 299.00

Sol 20 with Solos Kit (limited supply) 999.00

Micropoiis Model 1053MOD 2 1799.00

IMSAI AP44-44 Col. Printer Kit 329.00

TDL Xitan Alpha 1 Computer Kit 699.00

SYNCHRO-SOUND ENTERPRISES, INC.

The Computer People

193-25 Jamaica Avenue,

Jamaica, New York 11423

212/468-7067 TWX: 710-582-5886

Hours 9-4 daily Visit our new showroom

and Saturday Working units on display

Dept. bb BankAmericard • MasterCharge

Circle 401 on inquiry card.

C: A Language for Microprocessors?

J Gregory Madden JGM Development Labs POB 2345

West Lafayette IN 47906

I would first like to congratulate Peter Skye for his work on the high level language project! The interest created by his letters in recent BYTEs has helped to prod the emergence of a high level language. PL/I is a fairly popular language, and a good choice as an initial high level machine independent language. But what about other languages? Is there perhaps one which might be a better choice? Let's take a brief look ....

Enter FORTRANBASICSNOBOLPASCALCOBOLRPGCAPLALGOLPLI.

FORTRAN is a prehistoric beast from the 1950s, and though it has the highest "literacy rate" of any language in BYTE's 1976 survey, it is rather limited in its capabilities. BASIC is also popular. There are plenty of BASIC interpreters around and its capabilities (or, rather, lack thereof) are even less sufferable than FORTRAN'S. Perhaps a BASIC compiler combined with an interpreter would be very helpful to speed up debugged programs, but let's continue. PASCAL is a reasonable candidate. COBOL would be fun to implement and it has a fairly high literacy rate; however, it is awfully wordy. Source programs take up lots of space and for microcomputers it is not a very good choice. ALGOL might be reasonable. As for RPG, FORMAC and TRAC, I know little about these languages; however, I don't believe they have any major advantages over others.

Enter C

What about this strange creature called C which has been vaguely mentioned here and there? Where did it come from, where is it going, and what's it all about?

C is a high level language based on an earlier language called B. It was written by several brilliant people* at the Bell Telephone Laboratories at Murray Hill NJ sometime around 1974. It is designed to run under the Unix operating system (also designed and written by these people) on a Digital Equipment Corporation PDP-11/45 thru 11/70 series machine. It now also runs on IBM equipment and is being rewritten for Interdata machines. The C users' rumor mill also mentions something about PDP-10 versions in the future. My purpose in writing this article is to convey the flavor of C and suggest its utility as a mode of expression for personal computing.

The language C offers a user the following features:

• Control structures which permit a flow of control by using the language, rather than having to program around the language.

• Expressions that eliminate most temporary variables and trivial statements, resulting in shorter, cleaner code.

• Pointers and character variables to do nonnumeric problems simply.

• Structures to enable easy implementation of complicated data concepts.

What does all of this mean? Basically, programming in C is easy, fun, and probably results in the fewest lines of comprehensible code per program of any general purpose programming language.

*Ken Thompson and Denis Richie.

130

REE YOURSELF FROM THE ONE BYTE WORLD. MOVE UP TO THE TWO BYTE TEXAS INSTRUMENTS TMS-9900 S-BIT MICROPROCESSOR - WITH OUR — "SUPER STARTER SYSTEM" — TEC-9900-SS. SHOWN ABOVE, FEATURES ARDWARE MULTIPLY AND DIVIDE, 69 MINI-COMPUTER INSTRUCTIONS, 7 ADDRESSING MODES, EXPANDABLE 0 A FULL 65K BYTES; MONITOR, TMS 9900 CPU, RAM, P-ROM, E-PROM, PROGRAMMER ALL ON ONE P-C lOARD BASIC OPERATING SYSTEM AS LOW AS $299 UNASSEMBLED $399 ASSEMBLED AND TESTED IXPLICIT MANUAL INCLUDED OR AVAILABLE SEPARATELY AT $35, TO LEARN MORE . . .JUST TEAR OFF » PIECE OF THIS AD, PIN TO YOUR LETTERHEAD & RETURN TO TECHNICO OR CALL OUR HOTLINE 1-800/638-2893 O RECEIVE FREE INFO-PACKAGE. —DESIGN & TECH SUPPORT BY ROSSE CORP. „ . Ano „„ ...... „„.

Circle 402 on inquiry card.

9130 Red Branch Rd. Columbia, Md. 21045 301 -596-4100

THE TECHNOLOGY LEADER IN ELECTRONICS DISTRIBUTION

mnemonic

C rep

description

BS

backspace

NL

newline

CR

carriage return

HT

tab

add

\add

octal byte

\

\\

backslash

Into the Briny Deep

What's C made of? Let's take a look at some of the basic constructs of the language to see what makes it tick.

Each section of the C program consists of what we will call a function, something like a FORTRAN function. Even the main program is a function with the name main. The format is as follows:

main( ) j

statements

Arguments may be passed to a function by placing them between the parentheses in the definition and references to the function. C uses a call by value technique, rather than call by address for function arguments. This means that if a function changes the value of an argument variable, it does so only for that particular function call. How is this done? All variables in a function are stored on the stack rather than being assigned fixed locations. This means that storage space for variables is only allocated while they are being used, and is freed when control returns from a function. There are of course methods for changing the value of variables in the calling function during execution of the called function, but these methods are explicit exceptions to the call by value rule. Any C function can be used as a subprogram as well as its possible use as a main program. The example used main as a name, but as in many languages, there is a freedom to pick and choose descriptive names for C functions.

Variables are the usual: integer, character, floating point and double precision floating point. C variables are declared as in FORTRAN by a statement of the form:

type varl, var2, . . . . ;

Where type may be: int, char, float or double. Variables may be made to stick around (ie: storage is allocated permanently rather than temporarily using the stack) if the word static is included before type in the declaration. Then the value will not change between function calls unless explicitly modified. Normally, variables are dynamically allocated space on entry to a function.

All variables must be declared in C, and declarations must precede executable statements. Statements are ended with a semicolon (;) to indicate to the compiler what is the logical end of a statement.

10 in C

10 is done with basically two system supplied functions called getchar and putchar. Each gets or puts one character from standard input or output; getchar is normally used by equating a variable of type char to it:

c = getchar ( );

The variable c will have the ASCII value of the next character available from the input file; putchar is normally used by giving it the variable to print:

putchar (c);

The ASCII value of c would be output to the output file. The argument to putchar could be a single ASCII character:

putchar ('a');

in which case the character "a" will be output to the output file.

printf is another useful built-in function, similar to the FORTRAN WRITE and FORMAT statements. It actually calls putchar to do the 10. Its arguments are a string of characters in quotes, followed by the variables to be printed. In the string, format specifiers consist of a percent sign followed by an optional field size, followed by a letter indicating the format to output as: d for a decimal number, o for an octal number, h for a hex number, s for an ASCII string and c for a single character:

printf(

"The value of c is: %d"

,c);

If the new line is desired, it must be specified by putting a '\n' in the string at the appropriate point:

printf(

"The string is %s, and the value of a is %d.\n" ,string,a);

This inserts a carriage return and line feed when the '\n' is scanned during execution.

Special Characters

A note is in order before we go on about special characters in C. How does one represent a carriage return or a tab, or a line feed, etc? In general, anytime you want a special character, it can be generated by a backslash followed by a single nonnumeric character. New line is '\n', tab is '\t', end of file is '\0' (equivalent to 0). Also any ASCII character can be formed with a backslash and a 3 digit number: \040 is a space, etc. This enables all characters to be available for relational tests and use in computation.

132

SOFTWARE = TSC

TEXT EDITING SYSTEM: This 6800 editor is unlike any other micro editor. As well as the usual features, it also includes; content oriented commands, local and global commands, block move and copy, append and overlay features, as well as very comprehensive string manipulators. 5K

SL68-24

CT68-7 OPTIONAL CASSETTE PT68-6 OPTIONAL PAPER TAPE

MANUAL & SOURCE LISTING $23.50

$6.95 $8.00

TEXT PROCESSING SYSTEM: A great

companion to the TSC editor. The processor will allow convenient paragraphing, right hand justification, paging, titling, and general text formating. 4K

SL68-29 MANUAL & SOURCE LISTING $32.00 CT68-9 OPTIONAL CASSETTE $6.95

TSC MNEMONIC ASSEMBLER: Another 6800 resident assembler? Yes! But this one is many times faster than others due to a very efficient symbol handler. All the standard motorola options included as well as psuedo ops. It is very modular making it quite easy to adapt to most systems. 5K

SL68-26 MANUAL & SOURCE LISTING $23.50 CT68-8 OPTIONAL CASSETTE $6.95 PT68-9 OPTIONAL PAPER TAPE $8.00

DISASSEMBLER FOR 6800:

and includes the source listing! SL68-27 MANUAL & SOURCE LISTING OPTIONAL PAPER TAPE

Now one that is reasonably priced

PT68-7

TSC 6800 ARITHMETIC ROUTINES

SOAP: A very fast, 4 byte binary, floating point package. Includes

integer and conversion routines as well.

$10.00

A BCD math package with 9

SL68-25

FLOATING POINT PACKAGE:

digits of precision. SL68-4 $6.50

SCIENTIFIC FUNCTIONS: Requires SL68-4 and provides all scientific functions including SIN, TAN, LOG, LN, HYPSIN, and others. SL68-20 $10.00

DIAGNOSTICS FOR 6800:

No system is complete without a set of diagnostic programs. Includes 5 memory tests, serial I/O tests, parallel I/O tests, plus others.

SL68-23 SOURCE LISTING $10.00

MICRO BASIC PLUS: The best small BASIC available for 6800. [n just 314 K, a complete interpreter including GOSUB, IF THEN, FOR NEXT, DIM, ON GOTO and GOSUB, READ DATA plus the functions RND, SPC, TAB, EXP, and ABS. Five full digit integer math is supported.

SL68-19 MANUAL & SOURCE

LISTING $15.95

CT68-5 OPTIONAL

CASSETTE $6.95

PT68-5 OPTIONAL PAPER

TAPE $6.00

SPACE VOYAGE: A full blown Star Trek program written in 8080 and 6800 assembler language. Runs much faster than similar BASIC versions and requires about 1 /5 of the memory! Each game is different as you try to save the federation using your phasers, photon torpedoes, and shields. Searching out the menacing Klingons is accomplished using the short and long range scanners as well as moving about by firing the warp engines. Beware of sudden attacks, space storms, supernovas, and other unexpected events. This game is very addicting! 4K

SL68-5 6800 SOURCE

LISTING $12.00 CT68-1 OPTIONAL

CASSETTE $6.95 SL80-9 8080 SOURCE

LISTING $12.00 PT80-1 OPTIONAL PAPER

TAPE $7.00

6800 MULTI-USER SYSTEM!

Now you can have 4 simultaneous users, all running BASIC, and independently! Give your micro the power of a large mainframe. Applica tions include: a great educational tool, small business applications such as multi station inventory system, industrial computer power expanding the personal computer system,. . .etc. The system is presently available only for the SWTPC 6800 computer system and will support cassettes, floppy discs, and a printer. For complete details of the multi-user system, write for our 4 page brochure.

MUB-68 $ 129.95

$9.00 $4.00

ALL SOFTWARE CONTAINS: Complete commented source listing, users manual with complete instructions, printed hex dump, sorted symbol table, and sample output

PROGRAM-OF-THE-MONTH CLUB.™ S2.00 for a one year membership. No obligations!

HOW TO ORDER: All orders should include check or money order. Add 3% for postage and $1.00 for handling for orders under 510.00. Send 25< for complete TSC software catalog.

Circle 403 on inquiry card.

TECHNICAL SYSTEMS CONSULTANTS, INC.

Box 2574 W. Lafayette, IN. 47906

The If Statement

The C if statement is of the format:

if (expression) statement

where statement may be any C statement, and expression may be any statement which has a value. The expression is true if its value is nonzero.

C relational operators may be selected from the following list:

equal to != not equal to

> greater than < less than

>= greater than or equal to <= less than or equal to

&& logical and II logical or

! logical not

Relational operators may be combined in any way, along with parentheses, to produce an expression.

The statement portion of the if may be any valid C statement, or combination of statements. The statement may be made arbitrarily complicated by enclosing a set of statements in braces, j j . These braces are similar to the BEGIN and END statements of several other languages.

The if may be associated with an else statement, which may also have an arbitrarily complex statement following it. Multiple elses can be used to construct logic that branches one of several ways:

if (expression) statement else if (expression) statement else if (expression) statement

While Statement

The while statement sets up a loop, whose general format is:

while (expression) statement

The expression is evaluated and if its value is true (not zero) does the statement and then starts again. The statement may of course be arbitrarily complex as in the if statement. Note that the statement is executed zero times if expression initially evaluates to zero.

Arithmetic

Arithmetic statements use the usual operators: +, -, * and / along with % which is the remainder (or "mod" operator in other languages). The syntax is a variable followed by an equal sign followed by an expression using the above operators. Multiple equivalences may occur on one line, an economy of notation which can be useful.

a=b = c = d=25*2/(c + 1);

One interesting feature is that when a variable is set equal to itself plus something, the statement may be abbreviated:

a = a + 5; is equivalent to: a = +5;

Note that no space follows the equal sign in this form. In general the statement may be arbitrarily complex; however, note that one cannot assume a parenthesis, etc, in front of the implied variable.

Another very interesting feature is that any time a variable is used, it may have a prefix or a suffix of ++ or —. The ++ means increment, the — means decrement. If used as a prefix, the operation is done before the variable is used; if used as a suffix the operation is done after the variable is used.

These features help make C the supreme pleasure it is to use. They do however have a detracting feature: one must be wary when composing a statement lest it do something unintended!

Note that an if or while statement's expression may be a simple equivalence or it may contain calls to other functions! This can result in some of the cleanest, nicest code you have ever seen. It does sometimes take a minute to fathom the meaning of a statement, however, and it is easy to forget the double equals in an if test, resulting in an equivalence!

As an example, let's write a program to convert a file into lower case:

main( ) ( char c;

while((c = getchar()) ! = '\0'){

if('A' <= c &&. c <= 'Z') putchar (c + 'a' - 'A'); else putchar (c);

The program gets a character and assigns its value to the variable c. If the character is not zero (end of file, ie: \0) it executes the if statement. This checks to see if the character is upper case, and if so, converts it to lower case and outputs it. Otherwise it is already in lower case, and is output as is. The program continues with the next iteration of the while.

The Case and Switch Statements:

Another terribly useful C statement group contains the case and switch statements. They are used to replace tests of multiple options with if statements like:

if (c == 'a')... else if(c==V) .. . else ....

134

ur choke line of Personal Computing Books

NEW CHOICES

MICROPROCESSOR BASICS (Elphick) Selection and application info on 8 popular micro's, including the 8080, 6800, F8, IMP, and 6100. #5763-6, paper, $9.95

THE BASIC WORKBOOK: Creative Techniques for Beginning Programmers (Schoman) "Hands-on" learning of problem-solving using a computer. #5104-2, paper, $4.25

GAME PLAYING WITH BASIC

(Spencer) Over 50 easy-to-learn and challenging games and puzzles for your personal computer. #5109-3, paper, $6.95

TELEPHONE ACCESSORIES YOU CAN BUILD (Gilder) Fully-illustrated, step-by-step instruction on building useful phone accessories at a fraction of the commercial cost. #5748-2, paper, $3.95

mm

CHOICES

STANDARD DICTIONARY OF COMPUTERS AND INFORMATION PROCESSING, Revised Second Edition, #5099-2, Available Oct. '77.

APPLIED COMPUTING: Putting Your Computer to Work, #5761-X, Available Jan. '78.

PROGRAMMING THE PROGRAMMABLE CALCULATOR #5105-0, Available Jan. '78

HAVDEN BOOK COMPANY. INC..

/^CRITICS' \£j CHOICES

MICROPROCESSORS: New Directions for Designers (Torrero) "... a useful book for the electronics design engineer." BYTE MAGAZINE. #5777-6, paper, $10.95

FUNDAMENTALS & APPLICATIONS OF DIGITAL LOGIC CIRCUITS

(Libes) "A great book for use as a reference by people who are learning digital electronics." PEOPLE'S COMPUTER COMPANY. #5505-6, paper, $6.95

BASIC BASIC: An Introduction to Computer Programming in BASIC Language (Coan) ". . . an excellent introduction . . . clearly written and well-organized." COMPUTING REVIEWS. #5872-1, paper, $7.95

ADVANCED BASIC: Applications & Problems (Coan) "This one rates well above average." DATA PROC

ESSING DIGEST. #5855-1, paper,

in pei§onal computing books!

AVAILABLE AT YOUR LOCAL COMPUTER STORE!

E

CHOICES

GAME PLAYING WITH COMPUTERS, Revised Second Edition (Spencer) #5103-4, cloth, $16.95

COMPUTERS IN ACTION: How Computers Work (Spencer) #5861-6, paper, $5.50

COMPUTERS IN SOCIETY: The Wheres, Whys, & Hows of Computer

Use (Spencer) #5915-9, paper, $5.50

PROGRAMMING PROVERBS (Ledgard) #5522-6, paper, $6.50

PROGRAMMING PROVERBS FOR FORTRAN PROGRAMMERS (Ledgard) #5820-9, paper, $6.50

COBOL WITH STYLE: Programming Proverbs (Chmura & Ledgard) #5781-4, paper, $5.45

MINICOMPUTERS: Structure & Programming (Lewis & Doerr) #5642-7, cloth, $12.95

DIGITAL SIGNAL ANALYSIS

(Stearns) #5828-4, cloth, $19.95

FORTRAN FUNDAMENTALS: A Short Course (Steingraber) #5860-8, paper, $4.95

DIGITAL TROUBLESHOOTING: Practical Digital Theory and Troubleshooting Tips (Gasperini) #5708-3, paper, $9.95

DIGITAL EXPERIMENTS: Workbook of IC Experiments (Gasperini) #5713-X, paper, $8.95

COMPUTER MATHEMATICS (Conrad, Conrad, & Higley) #5095-X, cloth, $13.95

50 Essex Street, Rochelle Park, New Jersey 07662

The format of a is:

switch {variable) case 'a':

statements;

break; case 'b':

statements;

break;

default:

statements;

The case statements label the various actions wanted; default is done if none of the other cases are satisfied. The default statement is optional. The break statement causes execution to continue with the next statement following the switch group. The break statements are optional, and if not used, execution falls through to the next case condition, which is often useful.

break may also be used with for and while statements, causing an immediate exit from the loop. (A continue statement may also be used to cause the next iteration of the loop to be started, in a for or while statement.)

Arrays

Arrays in C may be multidimensional and are subscripted by using square brackets. Array indexes begin at zero. Typical array declarations are:

intx[10];

int xy[10][20];

This example creates an array x, with ten elements, and an array xy with 200 elements. Subscripts can be arbitrary integer expressions.

Character Arrays (C Strings)

Character arrays in C are strings of ASCII characters terminated by a zero byte. This makes string handling simple. For example, when printing a character string using the printf format %s, printf prints the characters until it finds a zero byte.

Other Statements of Interest

The for statement is a generalized while of the format:

for (initialization; express/on; increment) statement

where a typical example might be:

for(i=0; array[i] = getchar(); i++);

which copies characters from the input file into array, until getchar finds a zero byte. The for is usually used when a variable must be initialized before it is used and then modified in a regular way each time the loop is reiterated.

Structures, Pointers, Pointers to Pointers, Pointers to . . .

Briefly, a structure in C is a grouping of data declared as follows:

struct {

variable declarations

initialization section | structure—name;

where the initialization section is optional. A structure member is referred to by:

structure—name.mem ber

where member is one of the variable declarations of the declaration. Structures may be made to be arrays by following the structure—name with the array size in brackets. Note that the whole structure can be passed as an argument to a function, a feature most useful when complicated linkages are required.

Pointers are another way to refer to a member of a structure. Pointers in C are declared by preceding the variable name in the declaration with one or two (or more if you're a masochist) asterisks. One * means the variable is used as a pointer to something, two *s mean the variable is used as a pointer to a pointer (typically a pointer to an array of pointers). The address of a variable can be had in an expression by using the unary operator & in front of the variable. Pointers are usually used to "walk" along arrays efficiently. In fact, an array name represents the address of the zeroth element of the array, so it cannot be used on the left side of an expression, since you can't change the address of something by assigning to it.

The Crux of the Matter

It is difficult to learn much about a language by reading about it; I have only briefly skimmed the most important features of C in an effort to enable those who are not familiar with the language and are looking for a better high level language to gain some insight into it. It seems to take a bit of working with the language in order to be able to experience and understand the full power of it and to be able to effectively utilize that power.

136

XifilcDiA PREiEflCi

The SOROC10120

CURSOR CONTROL. Forespace, backspace, up, down, new line, return, home, tab, PLUS ABSOLUTE CURSOR ADDRESSING.

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, absolute cursor addressing, erase to end of page, erase to end of line, erase to end of field.

DISPLAY FORMAT. 24 lines by 80 characters (1,920 characters).

CHARACTER SET. 96 characters total. Upper and lower case ASC11.

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 - P4 phosphor.

NEW LOW PRICE Assembled $975.00

Specials of the Month

North Star Micro Disk

with power supply and cabinet Kit

-$699

Assembled

- $799

IMSAI l-8080withTDLZPU 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

NOW WE'RE TOLL FREE

800-227-4440

(in California, Hawaii, and Alaska, call collect: 415/566-7472)

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 ISTtm - IS NOW OPEN IN SAN FRANCISCO. CALL US FOR DIRECTIONS.

XiHlEDiA

1290 24th Avenue, San Francisco, CA 94122 (415) 566-7472 Circle 405 on inquiry card.

COD orders freight collect. Orders with payment shipped prepaid. California residents add 6% sales tax. Please allow 3 weeks for delivery.

All of this is of no use to microprocessor users unless it can be implemented on a microprocessor. C was designed with the PDP 11/45 hardware directly in mind, and it takes advantage of the indexed addressing mode and the increment and decrement instructions. It turns out that most C statements result in about three machine code instructions!

The power of this language becomes more apparent with several notes. The Unix operating system was originally written in assembly language. During the summer of 1973, it was rewritten in C. A number of features were added including multiprogramming and the ability to share reentrant code among several user programs. The size of the new system was about one third greater than the assembly language version. The programmers "considered this increase in size quite acceptable." Several benchmark programs written to compare the Digital Equipment Corporation's IAS operating system BASIC and FORTRAN with the Unix C language gave results which placed C roughly ten times faster than FORTRAN and more than 15 times faster than the BASIC.

Why not PL/I?

I don't wish to put down PL/I, since it certainly is a useful language and has its place; however, I would like to make a few comments in closing.

Special characters are fine and fun, but create all kinds of problems when trying to implement them; for example, few terminals have many of the special symbols resulting in all kinds of weird escape sequences to get them. Unfortunately many keyboards in use are not even full ASCII. Hardware to do 5 by 7 matrix printing tends never to get built by the builder and most of the special symbols have no ASCII value. (On a personal note: I have met with the most amazing resistance to the idea of expanding ASCII to eight bits. People will nearly resort to physical violence against the idea. But why not? Most machines use eight bits anyway, and parity [how often is it really used?] can be implemented vertically instead of horizontally. Greek characters seem to be the rage [though how often have you used them?] so why not implement 256 characters? I can see the mail now. . .)

Mr Skye notes that he will update PL/SKYE as one might a dictionary. Have you looked at the size of the Random House Dictionary lately? It is all very well to intend that it won't be too big, but doing it is very much the question. What is too big? That depends on your system. As memory

prices go down, too will the "big" threshold continue to go up and up. At this time, too big for a disk operating system seems to be about 16 to 32 K with perhaps four or five overlays (and that is very big), while on a tape system, too big is 16 K and that is very small if the program is to be in core, too.

What to do, what to do. . . Well, you probably shouldn't be running a high level language with a tape operating system unless it is a block oriented system (like the Digital Group Phi Deck system when implemented like a disk). So, perhaps we could set a limit at between 16 to 24 K for the compiler itself, leaving room for several 512 byte blocks for IO in a 20 to 32 K system.

As for writing the compiler in its own language, that is the only way to go.

Relocatable code is a must; and with index registers it becomes very simple. Here is where the processor becomes important. We really need a processor with indexed and relative addressing modes. That looks like the Z-80 processor (scream, rant, rave. . .). That does not however mean that it could not be implemented on a 6800, 6502, 8080, Micro-NOVA or whatever. Actually it turns out to be relatively easy to rewrite the code generation portion of a compiler to run on another machine, though at some expense in speed. (Can you imagine C on a Turing machine?)

IO? Yes, IO should be completely device independent. But that should be the concern of the operating system. Simply write your operating system in C, making it device independent. Actually, it is best to design the IO routines to be function (subroutine) calls in the compiler code, so the user can change it to suit his or her needs.

This brings up an interesting point. How does one distribute the code? It can't be in C source code; one can't run that. I hate binary object code since it is so machine and device dependent. Well, everyone should have an assembler for their machine, so why not have the compiler (or at least aversion) generate machine source code. The IO sections of this can be modified if necessary using a text editor, assembled with the users' assembler and then it's ready to run. It turns out that it's not quite that simple, if you think about it or try it, but it's close. From then on, the compiler can compile itself when changes are made.

This has been just an introductory commentary on the virtues of what I consider an excellent language which should be adaptable to the range and scope of personal microprocessor based systems. As for when and if versions for the microprocessor user will appear, all l can do is close with the statement "wait and C.""

138

16384 BYTES for $485.00

assembled (with sockets) : tested - burned-in - guaranteed

A new high in SI00 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 compatible memory systems) combined with self contained control logic, yield a memory system with these features:

• Low power consumption, total board 5 watts.

• Transparent refresh, which means the memory looks static to the outside world.

• No waiting. In fact, XRDY is not even connected to the memory.

• Full DMA capability.

• Reliable, low level clock and control signals.

• Three full days testing at 70° C (185° F).

SPECIFICATIONS

Capacity: 16384 bytes

Addressing: 16K boundaries

Bus structure: SI00 - Plug compatible with IMSA1 8080, POLY 88, ALTA1R 8800, BYTE-8. SOL

Address and Data Buffering: <200 uA. special high impedance buffers - less than one low power Schottky load

Access time: 350 nSec

Memory chips:

MM 5271 (National Semiconductor and others) 4K dynamic

Dynabyte Inc

4020 Fabian Way, Palo Alto Ca. 94303

for more information call or write to: RtfS MARKETING DEALER INQUIRES INVITED

2233 El Camino Real B of A & Mastercharge accepted

Palo Alto, California 94306 (415) 321-6639

Circle 406 on inquiry card.

J

Simple Approaches

to Computer Music Synthesis

Thomas G Schneider 706 Amherst SE Albuquerque NM 87106

COMPUTER

In order to produce a musical output, we must at least create a pitch output under control. This is but a starting point, since more complicated waveform and envelope generation is also useful in music.

The block diagram of a basic note and octave synthesis system is shown in figure 1. The top octave generator produces a square wave whose frequency (pitch) is determined by data sent out on the computer's data bus. Since the output of the top octave generator is a square wave, it can easily be divided by digital circuitry. Each time we divide the frequency by two, we end up with a note whose pitch is one octave lower than the input frequency. By using an ordinary TTL

DATA OUT BUS

3

TOP

OCTAVE GENERATOR

FO

SQUAREWAVE OUTPUT

OCTAVE SELECTOR

FO-^ 21

FO-2"

Figure I: Block diagram of a pitch synthesis subsystem for use in electronic music experiments under computer control. The top octave generator produces a repetitive digital waveform selected under computer control from one of 12 well tempered pitches. This in turn drives octave generation logic consisting of a chain of toggles dividing frequency by two at each stage, and a selector to pick which of the octave related frequencies appear in the output.

data selector as an octave selector, we can generate a musical scale covering many octaves, and we can also produce more than one pitch at a time, although these extra outputs will always be octave related to one another. The octave selector can also be controlled by data sent out on the computer's data bus, giving us more flexibility.

The octave selector can be easily implemented using an n-stage divider and several NAND gates. However, there are several methods of generating the top octave. We need 12 notes to produce a 1 octave chromatic scale. These notes must be accurate in frequency and drift free in order to produce a true chromatic or "equally tempered" scale useful in music.

One way of synthesizing the top octave is to use a digital to analog (D/A) converter controlling an oscillator. An 8 bit converter limits both resolution and range so that we cannot produce an acceptably accurate chromatic scale. If we use a converter of 10 bits or more, resolution and range are suitable, but such units are expensive and require stable voltage controlled oscillators for this type of application. This method of pitch generation is shown in figure 1. The one nice feature of the digital to analog converter method is that we have a continuously variable output frequency. This permits nifty frequency sweeping effects (known as "portamento" or "glide" effects to the musician).

To save money we can construct a rather crude digital to analog converter which, in conjunction with the voltage controlled

140

Q

>

i

i

IN 1 O in o r- «* _i-J-J_J_10*- —

£

E

GSSSSSGS

Z

J I J I d

i A1 A iA

ATATAT;

□ 6 Q 0 U D 00

— <j>f

M (£

Q q a

— <M rO

oj m cd r—

6 6

< <

01 o o ro o- <J>

Figure 2: An Altair bus interface and frequency selection logic for the tunable digital to analog conversion method of generation of pitches. This circuit can be constructed on a general purpose prototyping card for the Altair (S-100) bus.

141

Table J: Octal and hexadecimal representations of note selections, in the low order bits, for these pitch generation circuits.

Octal

Hexadecimal

Note

Code

Code

C

000

00

C#

001

01

D

002

02

D#

003

03

E

004

04

F

005

05

F#

006

06

G

007

07

G#

010

08

A

011

09

A#

012

OA

B

013

0B

oscillator, will produce the 12 notes required for the full too octave. This method is shown in detail in figure 2. By using surplus 10 turn trimpots and the voltage controlled oscillator, we can construct an inexpensive top octave generator. However, this method has its disadvantages: tuning the trimpots is a critical operation, and once the pots are tuned, they can easily detune themselves because of vibration or temperature variations. My present synthesizer uses this method and needs to be retuned about every two months or so.

A good alternate method of generating the top octave is to use an integrated circuit top octave generator such as the MOSTEK MK50240P. This chip can be had for under $10 and is second-sourced by General Instrument Corporation as the AY-3-0215.

There are several advantages to be had by using this chip. The chip nominally requires a 2.000240 MHz reference frequency which is approximated by the central processor clock's circuitry of most Altair (S-100) bus systems. (The frequency is not exactly 2.000240 MHz, but will be close enough for this application.) This chip eliminates both the voltage controlled oscillator and digital to analog converter, and therefore puts an end to stability and tuning complications. The MK50240P generates the top 13 notes of the well-tempered music scale with an accuracy better than can be determined by the best musician.

Hardware Considerations for Two Working Circuits

The circuit used for the pitch generator, using the tunable digital to analog converter with an Altair bus is shown in figure 2. Bus timing and address decoding are performed by IC1, IC2, and IC3. IC4 and IC5 latch and hold data sent to the board on the data out bus. IC8 is a 4 to 16 decoder with active low outputs. These outputs select which 10 turn trimpot is selected as the bottom leg of the voltage divider whose top leg is resistor R. These trimpots should all have a value about

5 R. The voltage produced by this divider is connected to the input of the voltage controlled oscillator. The output of the voltage controlled oscillator is divided by IC7. The outputs of counter IC7 are gated onto the output bus by IC6, the quad open collector NAND gates. IC8 and the voltage controlled oscillator comprise the top octave generator and IC6 and IC7 comprise the octave selector.

The circuit using the MK50240P for top octave generation is shown in figure 3. The board address, bus timing and latch circuitry are identical to the circuit of figure 2. The octave selector is also identical to the one in figure 2. The MK50240P, IC6, is a 12 V device and requires input signal conditioning and output buffering. The 2N2222 transistor and associated resistors bring the TTL level clock signal from the bus up to the 12 V level required by the MK50240P. The outputs of this chip are buffered by IC7 and IC8 before going to IC9 which is the data selector and multiplexer. The MK50240P generates all the notes in the top octave simultaneously and IC9 selects any one of these outputs depending on what data is present at the outputs of IC4. The output of IC9 is then connected to the two chips (IC10 and IC11) comprising the octave selector. An additional voltage regulator, a 7812, has been provided to supply the 12 V needed for the MK50240P. Note that for additional music channels, additional copies of the note selector IC9 and octave selector can be driven off the buffered outputs of the MK50240P.

A word of caution: the audio output of the circuits in figures 2 and 3 swings about 2 V peak to peak and should be attenuated with a potentiometer before you plug it into your stereo system or amplifier.

Software Considerations

From a software point of view, the circuits of figures 2 and 3 are identical. Both circuits have an IO device address of 300 octal. Outputting the proper data to 8080 port 300 octal will cause the synthesizer to audibly produce the note and octave(s) represented by that data.

The synthesizer can be considered as having two input nybbles, each nybble containing four bits. The least significant nybble determines what note is to be selected and the most significant nybble determines what one of four possible octave(s) is to be selected. One byte contains all the information necessary to set up any note and octave(s).

Bear in mind that the synthesizer will continue to produce the note and octave(s)

142

145)S0UT[^>

(7?) PWR □>

(50,100) □>

Power Connections

IC

Number

Typo

+5 V

GND

-12 V

+ 12 V

IC1

74LQ2

14

7

IC2

74L04

14

7

IC3

74L30

14

7

iC4

74L75

5

12

IC5

74L75

5

12

ICC

MK50240P

3

1

IC7

CD4010

1

a

16

IC8

CD4010

1

8

16

IC9

74150

24

12

(CIO

74197

14

7

IC11

7401

14

7

Figure 3: The complete circuit for an equivalent of figure 2, which uses the top octave generator chip with an Altair bus interface. This method uses the top octave generator and a note selector to drive the octave selection logic, while the digital to analog converter method uses a voltage controlled oscillator with a diode resistance selection of pitch.

143

Octal Hexadecimal Octave Code Code

4 (highest) 020 10

3 040 20

2 100 40

1 (lowest) 200 80

Table 2: Octal and hexadecimal notation for octave enabling bits sent to the interface in the high order nybble of the 8 bit word. Note that one or more of the octaves may be enabled simultaneously simply by adding the codes together (or using a logical OR).

Octal

Hexadecimal

020

10

021

11

022

12

023

13

024

14

025

15

026

16

027

17

030

18

031

19

032

1A

033

1B

you have selected until you send it new data. To clear the synthesizer (no audible output) all you need do is output a 0 on data lines D4 thru D7, the most significant nybble.

Table 1 shows what the octal representations are for each note in the top octave. Table 2 shows the octal representations for each octave. To pack these two codes into one byte, they can either be added or ORed. Table 3 shows a series of codes that, when

Table 3: Octal and hexadecimal representations of the notes of a chromatic scale in the highest octave of this interface. The codes for any given pitch can be generated by adding the note code of table 1 to one or more of the octave codes of table 2, providing a multiple frequency output in the summing resistor network of these circuits. In these examples, only one octave selection is enabled, the high octave.

moved to port 300 octal in sequence, will produce a 12 note musical scale in the synthesizer's highest octave. However, if you wish to hear this scale, you must insert a software time delay in between each note. Otherwise all you will hear is a very short "click" because of the processor's high speed of program execution. If you wish to hear this scale in four octaves simultaneously, all you need to do is keep all four bits in the octave enabling nybble in the high state.

Armed with this information and some simple software routines, you and your trusty computer are now capable of synthesizing all of J S Bach's "B Minor Mass," to say nothing of the many new types of musical expression you now have at your fingertips. I myself have synthesized Haydn's "Minuet in G," parts of Bach's "Toccata and Fugue in D Minor," Henry Mancini's "Pink Panther Theme," and "Hot Rod Lincoln!""

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 fori The answer to those unavailable early issues of BYTE. Best of BYTE, edited by Carl Helmers Jr and David Ahl. This 384 page book is packed with a majority of material from the first 12 issues. Included are 146 pages devoted to "Hardware" and how-to articles ranging from TV displays to joysticks to cassette interfaces, along with a section devoted to kit building which describes seven major kits. "Software and Applications" is the other side of the coin: on-line debuggers to games to a complete small business accounting system is included in this 125 page section. A section on "Theory" examines the how and why behind the circuits and programs. "Opinion" closes the book with a look ahead, as to where this new hobby is heading. It is now available through BITS Inc for only $11.95 and 50 cents postage.

Name

Address

City

State

Zip

The Best of BYTE, Volume 1

Q Check enclosed

□ Bill MC #

□ Bill BA #

Price of Book $ Postage, 50 cents $ Total $

Exp. Date Exp. Date

Signature

In unusual cases, processing may exceed 30 days. You may photocopy this page if you wish to leave your BYTE intact.

All orders must be prepaid

Circle 383 on inquiry card.

144

MORE BYTES FOR YOUR BUCK !

8K RAM.. .assembled, bumf-in, tested and warranted.. .only $19750!

These are not kits, but completely assembled and tested boards, with a 1 year warranty. No soldering, no messing, no chance of mis-connections . . . just plug 'em in and you're ready to run. The 8K RAM has the same features and speed as our 4K RAM (500 nsec, no wait states) and if that isn't fast enough there's our 8K (Z) fast RAM that gives you a 250 nsec access time for only $217.50!

Because of the low power memory chips used, power requirements are lower than many other RAM boards. And the 8K RAM uses less power than two 4K boards. All RAMs are manufactured to military specification MIL STD-883-C, assuring greatest control over reliability.

Address selection is easily accomplished by our Visaddress™, an easy to read switch on the board top. The 8K board is designed to be selected as one of eight possible 8K RAM boards present on the S-100 bus.

To achieve address selection, the top address lines are decoded using the Visaddress switch. The switch will then show the selected starting address of the RAM card. (i.e. 0 = 00$— 1FFF, 2=20j#-3FFF, etc. nn the 8K board).

Both boards have fully buffered address and data lines, and extensive built-in noise immunity circuitry. And are plug-in compatible with the S-100 bus (Altair 8800, IMSA1 8080, etc.)

Quality, assembled boards at less than kit prices. But what else should you expect from a company whose prime products are electronic test instrumentation and microprocessing components?

Also available: 4K RAM; $107.00, Alpha-VDM; $107.00, Alpha-VDM-ll; $145.00, Graphics-VDM; $137.00.

Order direct by check, BankAmericard or Master Charge (Add $1.50 shipping, credit customers give us all the card numbers, please and Ohio residents add 41/2% sales tax) or contact us for more information. Kent-Moore Instrument Company, a subsidiary of Kent-Moore Corporation (founded in 1919), P.O. Box 507, Industrial Ave, Pioneer, Ohio 43554. (419) 7372352. Or, Kent-Moore of Canada, 246 S. Cawthra Rd, Mississauga, Ontario L-A3P2, Canada.

Circle 407 on inquiry card.

Kent-Moore

INSTRUMENT COMPANY

r

BEGIN PROGRAM

GET PLAYER'S NAME ASK IF PLAYER WANTS INSTRUCTIONS

"BUG" J PROGRAM A

YES (0,1)

0

NO (0,1)

r

BEGIN GAME

3AMES J H,g) "S

TURNS (1,t)

END GAME

END PROGRAM

<■

PRINT GAME INSTRUCTIONS

■^SK -^INITIALI

ZE BUG PARTS

r

PLAYER'S TURN

-< COMPUTER'S TURN -^J END TURN -< i

■^GET NEW PLAYER'S NAME

see figure 2

see figure 2

> figure 3

Figure 1: The Warnier-Orr diagram showing the basic structure of the BUG program.

Structured Program Design

David A Higgins

Langston, Kitch and Associates Inc 715 E 8th St Topeka KS 66607

In the world of electronics, no experimenter in his right mind would build a circuit by throwing a few parts together with some wire and some hope, then attaching a line cord and plugging it in to see if it works. Not only are you likely to destroy some very expensive parts, but it is also a good way to get fried, or at least get a new hairdo.

Yet, after all the trouble that a serious microcomputer hobbyist will take to insure that his circuit is put together correctly before he ever turns it on, he will invariably try to program his new computer by using a technique analogous to the one above. That is why his programs almost never run right the first time, if indeed they ever manage to run right at all. It is also why many microcomputer buffs stay up until odd hours of the night drinking coffee by the gallon in an effort to find that one little bug.

But there is hope. I'm sure that nearly everyone involved with computers has heard something about structured programming in one form or another. It is not really a new technique, having been preached about for many years. However, the tools and methodologies available to design programs have changed radically over the years.

In the beginning there were flowcharts, which looked like five-dimensional octopi or the corporate structure of a conglomerate. Despite the absence of a consistent approach that would enable everyone to design a program using flowcharts, those programmers who did bother to work out their problem with a flowchart first usually seemed to have more luck in getting programs to run sooner and better than programmers who did not.

Structuring Tools

The development of mathematics would surely have been stymied if Roman numerals had been retained as our number system. In much the same manner, the science of structured program design would have been mired down if only flowcharts had been

146

available for developing programs. It is not that calculus is impossible with Roman numerals, it's just that it's extremely difficult. Thus, over the years, a number of design and docu'mentation tools were developed to better enable a programmer to understand the problem before going out to do battle with the program.

TOP-DOWN or GOTO-less programming, developed by Djkstra and others, was probably the first major attempt to solve the design versus coding problem. Djkstra simply observed that the more GOTOs that were in a program, the less likely it was to run correctly. Djkstra called such programs "spaghetti bowl" programs, because if you drew a line from each GOTO in the program to its destination, you ended up with a mess that looked like a bowl of spaghetti. He showed how any program could be written with just a few simple flow structures without any GOTOs. His techniques produced simple, readable code that was easy to test and maintain. So, the big push among design aficionados was to eliminate the GOTOs in their programming. Although TOP-DOWN programming was a big advancement over flowcharting, it was just that: programming. It was a technique for coding a program, not necessarily designing it.

Another technique, IBM's HIPO (and later HIPO-DB) entered the design field almost by chance, being primarily a documentation tool that was also being used for program design. The major drawback to HIPO techniques, besides the fact that they did not work well for designing a program, was their tendency to produce 50 pages of documentation for a 3 page program.

Warnier-Orr Diagrams - A New Approach

Within the last four years a new technique for program design has evolved from the work of Jean-Dominque Warnier (pronounced warn'-yay) in France, and Kenneth T Orr of Langston, Kitch and Associates in Topeka KS. The technique has foundations in set theory and Boolean algebra, and holds much promise for program design applications. Warnier-Orr diagrams, as we have called them here in the United States, allow programmers to design faster than ever before, to code programs with little or no effort, and produce programs that usually run correctly the first time. The approach is not limited to small programs. Nothing will make a believer out of someone quicker than a 20 page COBOL program which runs correctly the first time. The Warnier-Orr technique stresses design over coding and contends that once a problem is designed, it

r

BEGIN TURN

ROLL = "1" 10,11

©

ROLL = "2" 10,11

ROLL = "3" (0,11

TURN J

ROLL = "4" (0,1)

ROLL = "5" (0,1)

ROLL - "6" (0,11

ROLL THE DIE

"player ALREADY HAS A BODY (0,1)

■^SKIP

©

PLAYER ALREADY HAS A BODY (0,1)

HAS BODY (0,1)

HAS BODY (0,1)

fHAS NECK (0,1)

< _©

HASNE I (0,1)

NECK

HAS HEAD (0,1)

HAS HEAD (0,1)

HAS BODY (0,1)

1 —

I HAS BC ^_ (0,1

BODY )

HAS BODY (0,1)

©

HAS BODY (0,1)

HAS HEAD (0,1)

HAS HEAD

2 ANTENNA (0,1)

2 ANTENNA (0,1)

HAS TAIL (0,1)

Q

Q

HAS 6 LEGS [0,11

{ {

GIVE PLAYER A BODY

•^GIVE PLAYER A NECK

{ {

{

GIVE PLAYER A HEAD

GIVE PLAYER AN ANTENNA

-^SKIP

-^GIVE PLAYER A TAIL

{'

GIVE PLAYER 1 LEG

Figure 2: Diagram of the logic for the PLA YER and COMPUTER TURNS routines of the BUG program.

does not matter what programming language you code it in! At Langston, Kitch and Associates, people have used the technique to program in COBOL, PL/I, ALGOL, FORTRAN, BASIC, RPGII and assembler languages. It works equally well for all of them.

Warnier-Orr Diagram

The simplest way to learn about WarnierOrr diagrams is to see examples of them. Warnier-Orr diagrams are very easy to learn

147

If the player rolls a 4, we first find the instructions to follow for a roll of 4 and check to see if the player has a BUG head. If he does, we then check to see whether or not the player already has two antennae. .. .

and use; however, be forewarned that this is a technique that is sometimes deceptively simple, but not as trivial as it often seems.

Let's consider the relatively simple game of BUG. In this game the computer rolls a die, once for itself and once for its opponent. Each number of the die corresponds to

r

HAS EITHER PLAYER COMPLETED A BUG

COMPUTER WINS 10,1)

END TURN ■<

YES 10,1)

0

OPPONENT WINS (0,11

/ DISPLAY "S "I WIN"

<DISPLAY "YOU WIN"

DECLARE END OF GAME

NO (0,1)

GO ON TO NEXT TURN

Figure 3: Warnier-Orr diagram for the ending of a turn or a game.

Listing I: A structured BASIC program that was written using the WarnierOrr diagrams of figures / thru 3. This code executed correctly the first time even though it was the author's first attempt at writing a BASIC program.

10 REM BUG PROGRAM

20 REM BEGIN PROGRAM

30 DIM HEADI2), BODY(2), LEGS<2), TAIL(2), ANTE(2), NECK(2), CI\IT(2)

40 GOSUB120

50 REM GAMES (1,G)

60 LET EPGM=0

70 GOSUB 200

80 IF EPGM=0 THEN GOTO 70

90 REM END PROGRAM

100 STOP

110 REM BEGIN PROGRAM SUBROUTINE

120 PRINT'ENTER YOUR FIRST NAME'

130 INPUT :NAME$

140 PRINT 'DO YOU WANT AN EXPLANATION OF THE RULES; ENTER YES

OR NO.'

150 INPUT ANSS

155 LET TEST = SCOMP ('YES',ANS$)

160 IF TEST = 0 THEN GOSUB 1200 ELSE ;

170 RETURN

180 REM GAMES SUBROUTINE

190 REM BEGIN GAME

200 GOSUB 290

210 REM TURNS (1,T)

220 LET EGAM = 0

230 GOSUB 390

240 IF EGAM = 0 THEN 230

250 REM END GAME

260 GOSUB 1150

270 RETURN

280 REM BEGIN GAME SUBROUTINE

290 LET BODYI1), BODY(2) = 0

295 LET CNT(1), CNT(2) = 0

300 LET NECK(1), NECK(2) = 0

310 LET HEAD(1), HEAD(2) = 0

320 LET ANTE(1), ANTE(2) =0

330 LET TA I L(1), TAI L(2) = 0

a part of the BUG's anatomy: 1 = BODY, 2 = NECK, 3 = HEAD, 4 = ANTENNAE, 5 = TAIL, and 6 = LEGS. The object of the game is to finish your bug before the computer finishes its bug. Other rules: you must have a body before you can have legs, a neck or a tail; you must have a neck before you can have a head, and you must have a head before you can have antennae. One body, one neck, one head, one tail, six legs and two antennae are needed to complete a bug. Figure 1 is a Warnier-Orr diagram showing the basic structure of the BUG program.

The Warnier-Orr diagram is read left to right, top to bottom, just like conventional English text. The brackets enclose logically related operations, the largest of which is the program itself. The BUG program is composed of three logical sections:

• The BEGIN PROGRAM section, where the player's name is requested and there is an explanation of the game rules. Note that the + symbol between the modules YES and NO denotes the exclusive OR function, meaning that one or the other but not both of the modules will be performed. Observe also that this is reflected in the number of times that each module may be performed: 0 if the condition is false and 1 if the condition is true.

• The process section, GAMES, where the playing of the game actually takes place. The (1,g) denotes that the section is to be performed at least once, and possibly many (g) times.

• The END PROGRAM section, which in this case is empty, but which usually contains things such as the closing of files, the goodbye message, etc.

The rest of the brackets decompose in a similar fashion. The GAMES procedure breaks down into the beginning of the game, (BEGIN GAME), the turns that each player takes (TURNS), and the end of the game (END GAME).

Notice that logically there are things that only happen at the beginning of the program and things that only happen during the playing of the game itself. The Warnier-Orr diagrams allow you to see very easily just where and when a particular event must take

148

Whether managing accounts at the local general store or aiding in the development of the latest Space War, the MiniTerm Dual MiniFloppy* System 80/2 can do the job best. Z-80 powered, and S-100 bus structured, the System 80/2 mainframe with regulated supplies for two mini floppies* is also available without cards and drives.

Dealer Inquiries Invited.

MiniTerm Associates, inc.

Box 268, Bedford, Mass. 01730 (617) 648-1200

'Mini Floppy is a registered trademark of Shugart Assocates.

Circle 408 on inquiry card.

Listing 1, continued:

340 LET LEGSO), LEGS(2) = 0

350 RETURN

360 REM TURNS SUBROUTINE

370 REM PLAYERS TURN

380 REM LET PLAYER START TURN

390 PRINT'HIT RETURN TO ROLL DIE'

400 INPUT A

410 LET PLAY = 1

420 GOSUB 520

430 REM COMPUTERS TURN

440 LET PLAY = 2

450 GOSUB 520

460 REM END TURN

470 GOSUB 1060

480 RETURN

490 REM TURN SUBROUTINE

500 REM PLAY=1 ;PLAYERS TURN—PLAY=2;COMPUTERS TURN

510 REM ROLL DIE

520 LET ROLL = FIX@ (((RND (0)) * 6.0)) + 1

530 PRINT : "ROLL IS A ", ROLL

540 IF ROLL = 1 THEN IF BODY (PLAY) #1 THEN GOSUB 690 ELSE ; ELSE

550 IF ROLL=1 THEN 650

560 IF ROLL = 2 THEN IF BODY (PLAY) = 1 THEN IF NECK (PLAY) #1

THEN GOSUB 760

570 IF ROLL=2 THEN 650

580 IF ROLL = 3 THEN IF BODY (PLAY) = 1 THEN IF NECK (PLAY) = 1

THEN IF HEAD (PLAY) #1 THEN GOSUB 820

590 IF ROLL=3 THEN 650

600 IF ROLL = 4 THEN IF HEAD (PLAY) = 1 THEN IF ANTE (PLAY) #2

THEN GOSUB 880

610 IF R0LL=4 THEN 650

620 IF ROLL = 5 THEN IF BODY (PLAY) = 1 THEN IF TAIL (PLAY) # 1

THEN GOSUB 940

630 IF ROLL=5 THEN 650

640 IF ROLL = 6 THEN IF BODY (PLAY) = 1 THEN IF LEGS(PLAY)

#6 THEN GOSUB 1000

650 LET A = 3

660 RETURN

670 REM BODY SUBROUTINE

700 IF PLAY = 1 THEN PRINT : NAME$, " 'S BUG HAS A BODY"

710 IF PLAY = 2 THEN PRINT : "COMPUTER'S BUG HAS A BODY"

720 LET CNT (PLAY) = 1

730 LET BODY (PLAY) = 1

740 RETURN

750 REM NECK SUBROUTINE

760 IF PLAY = 1 THEN PRINT : NAMES, " 'S BUG HAS A NECK"

770 IF PLAY = 2 THEN PRINT : "COMPUTER'S BUG HAS A NECK"

780 LET CNT (PLAY) = CNT (PLAY) + 1

790 LET NECK (PLAY) = 1

800 RETURN

810 REM HEAD SUBROUTINE

820 IF PLAY = 1 THEN PRINT : NAME$, " 'S BUG HAS A BODY"

830 IF PLAY = 2 THEN PRINT : "COMPUTER'S BUG HAS A BODY"

840 LET CNT (PLAY) = CNT (PLAY) + 1

850 LET HEAD (PLAY) = 1

860 RETURN

870 REM ANTENNAE SUBROUTINE

880 LET ANTE(PLAY) = ANTE(PLAY) + 1

890 IF PLAY = 1 THEN PRINT : NAMES, " 'S BUG HAS ",

ANTE (1), " ANTENNAE."

900 IF PLAY = 2 THEN PRINT : "COMPUTER'S BUG HAS "' ANTE (2),

" ANTENNAE."

910 LET CNT (PLAY) = CNT (PLAY) + 1

920 RETURN

930 REM TAIL SUBROUTINE

940 IF PLAY = 1 THEN PRINT : NAME$, " 'S BUG HAS A TAIL"

950 IF PLAY = 2 THEN PRINT : "COMPUTER'S BUG HAS A TAIL"

960 LET CNT (PLAY) = CNT (PLAY) + 1

970 LET TAIL (PLAY) = 1

980 RETURN

990 REM LEGS SUBROUTINE

1000 LET LEGS(PLAY) = LEGS(PLAY) + 1

1010 IF PLAY = 1 THEN PRINT : NAMES, " ' S BUG HAS ", LEGS (1), " LEGS:

1020 IF PLAY = 2 THEN PRINT : "COMPUTER'S BUG HAS ", LEGS (2) "LEGS."

1030 LET CNT (PLAY) = CNT (PLAY) + 1

1040 RETURN

1050 REM END TURN SUBROUTINE

1060 IF CNT (1) = 12 THEN 1090

1070 IF CNT (2) = 12THEN 1110

1080 GOTO 1130

1090 PRINT : NAMES, " 'S BUG IS FINISHED' YOU WIN"

1100 GOTO 1120

place. After examining figure 1 carefully to make sure that you understand how the diagrams work, move on to the explanation of the PLAYER and COMPUTER TURNS section shown in figure 2.

In figure 2, we have represented the logic for each of the players' turns during the game. At the beginning of each turn, the die is rolled to determine the part of the BUG's body that the player may receive. Whatever the roll, we then have a logical path to follow. Again, please note that the presence of the © between each of the possible rolls denotes mutual exclusion, ie: only one of the paths may be selected. This particular structure is known as a case statement.

If the player rolls a 4, we first find the instructions to follow for a roll of 4 and check to see if the player has a BUG head. If he does, we then check to see whether or not the player already has two antennae. If he does, then we do nothing. If he does not have two antennae yet, we give him one antenna. If he does not have a BUG head, then again we do nothing. In a similar fashion, all of the possible rolls and their associated procedures are explained. Now let's move on to the Warnier-Orr diagram for the end of the turn, which is shown in figure 3.

If either player has won the game at the end of a turn, the computer declares the winner and ends the game. If neither player has won, the computer does nothing and cycles through for another turn.

Structured Programming

Having fully understood the problem, coding the BUG program is a simple and straightforward process. For this particular example I coded the program shown in listing 1 in a version of BASIC.

As you can see, each bracket of the original Warnier-Orr diagram roughly corresponds to a subroutine in the finished code: the process GAMES, for instance, becomes the subroutine at line number 180 which is called repeatedly by the branch at line 80 until EPGM equals 1, indicating that no more games are to be played; the process BEGIN PROGRAM is handled by the subroutine at line 110, and so forth. The resultant code is:

• easy to read and understand

• easy to change and maintain

• already documented

• logically correct.

It is also a program that will run correctly the first time, barring unforeseen syntax errors for those of us who can't type or spell. All of this is possible because the

150

program was thoroughly designed before it was even partially coded.

Conclusion

Warnier-Orr diagrams are a giant leap in the right direction for structured programming. They represent an attitude which, for the first time since people have been playing with computers, can lead to consistently reliable software that is very easy to maintain. Currently, most data processing departments spend over 80% of their time and effort repairing old code that has suddenly gone bad. Warnier-Orr diagrams also provide the means to produce software of a quality that has never before been possible.

If you think that you are interested in using Warnier-Orr diagrams to help you solve some of your software headaches, by all means try them. But as I mentioned above, this technique looks deceptively simple, and you may not have much success. Understanding a diagram such as the one presented in this text is one thing; creating one from scratch is another.

If you do get bogged down, please feel free to write us for more information. If you try them, like them, and think you've done something exciting with them, again feel free to write us and tell us what you've done."

Listing 7, continued:

1110 PRINT : "COMPUTER'S BUG IS FINISHED, I WIN"

1120 LET EGAM = 1

1130 RETURN

1140 REM END GAME SUBROUTINE

1150 PRINT : "DOES ANYONE ELSE WANT TO PLAY"

1160 INPUT ANS$

1165 LET TEST = SCOMP (ANSS, 'YES')

1170 IF TEST # 0 THEN LET EPGM = 1

1180 RETURN

1190 REM EXPLANATION OF RULES SUBROUTINE

1200 PRINT "THE GAME OF BUG IS PLAYED AS FOLLOWS:"

1210 PRINT " A DIE IS ROLLED BY THE COMPUTER, AND EACH NUMBER"

1220 PRINT " ON THE DIE CORRESPONDS TO A PART OF THE BUG'S "

1230 PRINT " BODY: 1=BODY, 2=NECK, 3=HEAD, 4=ANTENNAE, 5=TAIL"

1240 PRINT " 6=LEGS. YOU NEED 1 BODY, 1 NECK, 1 HEAD, 2 ANTENNAE"

1250 PRINT " 1 TAIL, AND 6 LEGS TO COMPLETE A BUG."

1260 PRINT " THE OBJECT OF THE GAME IS TO BUILD YOUR BUG BEFORE"

1270 PRINT " COMPUTER BUILDS HIS."

1280 PRINT " —HIT RETURN WHEN YOU ARE READY TO PLAY."

1290 INPUT A

1210 RETURN

BIBLIOGRAPHY

Orr, Kenneth T, Structured Systems Development, Yourdon Press, New York, 1977.

Warnier, J D, Logical Construction of Programs, Van Nostrand Reinhold Company, New York, 1976.

mm

mmBmMmmmmmmmmm

In unusual cases, processing may exceed 30 days.

COMPUTER ENGINEERING

THE MIDNIGHT SPECIAL . . .

... a full color limited edition poster for your Casey Jones fantasies.

The poster is I6V2 by 21 Vi inches (41.9 by 54.6 cm) with a white border. The colors are the same as the original by Robert Tinney, which graces our July cover, minus the BYTE logo. The price is $3.00, plus 50<t postage. It is shipped unfolded, in a mailing tube.

ORDER NOW. SUPPLIES ARE LIMITED.

BITS Inc

70 Main Street

Peterborough NH 03458

□ Bill BankAmericard

□ Bill Master Charge No

Posters $3.00 each plus S .50 mailing

□ Check Enclosed Exp. Date

Name.

Address. City

.State Zip_

151

I - J

Circle 383 on inquiry card.

Continued from page 20

dise purchased. We temporarily FIX 0 to print the quantity as a nondecimal integer and make reading the tape easier. We store the quantity in data memory 01, print, restore the SR-52 to FIX 2 and HLT.

5. Key B is the list price of the product. It is stored in data memory 02 and printed. This time we did not use a HLT instruction, and we will see why in the next step.

6. Without a HLT in step 5, the SR-52 program counter automatically moves down to the next step. It encounters the command to multiply AxB, or more exactly that data we stored in memory 01 times the data we stored in memory 02. We print this result and then sum the result into data memory 19. Since we cleared the SR-52 memories in our initial housekeeping instruction, we know that the initial content of data memory 19 is zero. After all this we HLT.

At this point in our flowchart we are at a manual or human decision point as shown by the diamond. If we have more merchandise to price, we can go back and put in the next quantity A and price B. We would do this until we were done. Then we would go to the A' button. In our flowchart this is labeled as step 9. Putting A' near the end of the program may appear to be out of sequence, but the SR-52 doesn't care. It will automatically go looking for A' program instructions whenever that button is pushed. My programming style says that I like to finish defining the basic user defined key functions before getting involved in the detailed program steps. Since we haven't defined key E yet, that will be the next step. Incidentally, claiming a programming style as a reason for doing something is an easy way of avoiding a lot of "no win" programming arguments. If it's a matter of taste, who can complain?

Since the flowchart represents the actual sequence the user follows, we see that the A' button is pushed to complete and print the totaling and discount of the list price merchandise. The details of this block will be discussed below. At this point we are only concerned with what we do next. The diamond again indicates a manual decision. Do we have any net price items on this invoice? If so, we will go to A again. This time, button A will be associated with

quantities of the net price items. If there are no net price items we will push button B'. This will complete the invoice computation. At this point in the flowchart we define button E.

7. Key E is the net price of the merchandise. We will store this price in data memory 05 and print the price. Again as in step 5, since we don't have a HLT instruction, the SR-52 will automatically proceed to step 8.

8. This step will multiply AxE, or the quantity in data memory 01 times the net price in data memory 05. The result is printed and summed into data memory 19. Incidentally, the previous value of data memory 19 is stored with the net price computation that resulted when button A' was pushed. The diamond after this block is another manual decision. If there are more net price items go back to A; otherwise go on to B'.

9. This block, at first glance, appears to be complex. But it really isn't. It provides the following instructions:

RCL19 Recall the list price amount that was summed into data memory 19 and print (PRT) the amount.

1-C Multiply the list price

total by 1-C, the discount that was inputted, and stored originally with key C. Print the dollar amount of the discount.

—RCL 19 Subtract the list price amount from the discount; "+/-"; change the sign since the result is a negative number and print the result. This is the net price of the merchandise.

Pap Advance the paper one

line for format clarity.

STO 19 Store total net price in data memory 19 and HLT.

Not so bad, was it? 10. We now define the program instructions for the B' button:

Pap One line of paper advance.

RCL 19 Recall and print the total order net price that has been summed in previous

152

steps into data memory 19.

Recall, add and print the shipping costs. Total the entire order and print.

Advance the paper three lines.

Resets the program counter back to 000. This program address is the first one we used in our housekeeping steps. The program will automatically execute those housekeeping instructions and then HLT. The SR-52 is now ready for a new invoice routine.

The revised flowchart is now complete and at the same time we have defined virtually every program instruction step. The total development of this program has been a very straightforward translation of what we want to accomplish into precise terms understandable to our computer.

The last programming step is to set the SR-52 to receive program instructions. A key marked LRN (learn) is provided for this. Several other programming keys are also provided which dramatically simplify putting a new program into the machine. At this point we will only need the LRN button. With the SR-52 in the LRN mode, we begin with the first instruction which is CMs (clear memories). We push that button on the keyboard. The program counter moves to 001 and we push the CLR button. The SR-52 stores the clear instruction and the program counter moves to 002. We continue pushing the buttons that we defined in our program until we reach the last instruction which is RST. Our program is now stored in the machine. We take the SR-52 out of the learn mode by pressing the LRN button again. The program counter is manually reset to 000. Listing 1 shows the entire program list.

We are now ready for the critical test. The RUN button is pressed and, if the display is not flashing, there is a good chance that our program might work. We test it by putting in a sample calculation. If it does work, our tape printout would look like listing 2. If there are problems, the printer will be a great help in finding the bug.

The first thing that can be done is to ask for a list of the program steps. This output list can be compared to the work sheet we used to enter the program. Analyzing the program list shown in listing 1 is made easier if we mark each program address line with

+RCLD

PRT=

Pap, Pap, Pap 1 1. RST

Listing I: Program listing for the SR-52 invoice program. The program is broken into sections corresponding to the flowchart of figure 2.

<UJ

§5

<rO

_

Q 0 f|

CLR

001

25

HSKPG

•FIX

OO^1

57

©

2

003

02

_ HLT

004

31

f10 5

46

CL

13

STO

007

42

DISCOUNT

Q

008

o 0

®

3

009

Q :;

.

010

98

"pap

011

99

_ HLT

012

81

" -LBL

013

4r-

D

014

14

SHIPPING

STO

0i 5

42

®

0

0l6

n n

017

I"! 4

_ HLT

018

81

- "LBL

019

46

A

020

1 i

•FIX

021

57

0

022

Q M

QUANTITY

023

42

©

0

024

0 0

025

01

*prl

02b

98

•FIX

027

57

2

028

02

- HLT

81

i"i 3 0

46

BLBL

031

12

STO

032

42

PRICE

o

033

00

2

034

02

-V"

035

98

X

036

65

RCL

037

43

0

038

00

LINE

1

039

01

TOTAL

040

95

©

*m

041

98

SUM

042

44

043

01

9

044

09

HLT

045

81

P'LBL

046

46

E

047

15

STO

048

42

NET

0

049

00

PRICE

5

050

05

®

051

98

X

052

65

RCL

053

43

0

054

00

i

055

01

LINE

056

95

TOTAL

■prl

057

98

®

SUM

058

44

1

059

01

9

060

09

HLT

061

81

• LBL

062

46

16

"pap

064

99

1

065

(

066

53

RCL

067

43

1

068

01

9

069

070

98

X

071

65

LIST

1

072

53

PRICE

1

073

01

TOTAL

074

75

DISC AMT,

RCL

075

43

0

076

00

NET

3

077

03

®

1

078

54

1

079

54

■P'l

080

98

081

75

RCL 1

082 033

43 01

9

084

09

I

085

54

*t

086

94

'Prl

087

98

•pap

088

99

STO

039

42

1

090

01

9

091

09

_ HLT

092

81

~ 'LBL

093

46

•B

094

17

'PIP

095

99

RCL

096

43

1

097

01

9

098

09

•prt

099

98

TOTAL NET.

100

85

SHIPPING.

RCL

101

43

INVOICE

0

102

0 0

AMT

4

103

04

®

'Prt

104

98

105

95

•tin

106

98

107

99

108

99

109

99

©

•RESET

110 1 1 1

86 00

112

00

113

00

the key function name. [In listing 7 this is done with typeset notations, but in SR-52 practice this would be done with handwritten notations ...CH/ In addition to doing this, groups of instructions should be bracketed so that they can be related to the flowchart in figure 2. The first three digits in the program list are the program counter address. The next two digits are the op code or the key codes for the SR-52 keyboard. If the program doesn't work, you may have omitted an instruction. The SR-52 provides an easy way to get to the point of omission so that we can insert the proper instruction. In a similar way, an incorrect instruction can be omitted.

The most painful debugging problem is where your program logic just isn't right. The printer will allow you to trace and print the steps the program actually is following as it attempts to solve the problem. (In our case, calculate the invoice.) If you are Listing 2: Sample printout not too far off, the SR-52 has the facilities of the invoice program.

QUANTITY 12.

PRT

LIST PRICE 5. 63

PRT

LINE TOTAL 67. 56

PRT

QUANTITY 18.

PRT

LIST PHICE 1 . 87

PRT

LINE TOTAL 33. 66

PRT

QUANTITY :j4.

PRT

LISTPRICE 5. 63

PRT

LINE TOTAL 191. 42

PRT

TOTAL LIST 292. 64

PRT

□ ISC AMT 117. 06

PRT

NET TOTAL 175. 58

PRT

QUANTITY 18.

PRT

NET PRICE 0. 42

PRT

LINE TOTAL 7. 56

PRT

TOTAL NET 183. 14

PRT

shipping 2. 83 PRT

153

that allow you to easily implement your program fix.

Listing 3 shows the printer output in the trace mode. Here the left digits are the printed equivalent of the SR-52 display. The right side data is the function the SR-52 is performing on the display data.

The data shown in listing 3 is the same data used for the printout shown in listing 2. Marking and grouping the trace data in the way shown will simplify comparing the

PROGRAM INSTRUCTION

HOUSEKEEPING FOR THIS RUN

0

©

©

0. 00

0. 60 0. 60

2. 83 2. 83

QUANTITY

LIST PRICE

©

AiB

©

13. 13.

13.

12. 12.

13. 00

'5. 63

5. 63 .5. 63 5. 63 5. 63

67. 56 67. 56

I 67. 56

©

LIST PRICE

©

©

18. IS.

18.

J4. 34.

34. 34. 34.

34. 00

5. 63 5. 63

34. 00 34. 191. 42 191. 42 191.42

191. 43

CMS CLR FIX 002

HLT

STD 003

PRT

HLT

STD 004

HLT

FIX 000

STD 001

PRT FIX 002

HLT STO 002

RCL 001

PRT SUM 019

_HLT

FIX 000

ST

■ iLT

FIX

000

STD 001

PRT FIX 003

HLT STD 002

PRT

;<

RCL 001

PRT SUM 019

HLT

TOTAL LIST PRICE

DISC AMT

©1

NET PRICE

191.42 191. 42 191. 42

292. 64 1 292. 64 392. 64 292. 64

1.

1.

117. 06 117. 056 117. 056

292. 64

293. 64 175. 58

175.584 175.53

QUANTITY ©

AxE

©

18.

18. IS.

IS. 18. 18.

0. 42 0. 42 0. 42

0. 42

16.

30

7. 56 7. 56

NET PRICE TOTAL

INVOICE AMT.

7.56

183. 14 183.14 183. 144 1S3. 144

3. 83

2. 83

3. 83 85. 97 85. 97

© <

HOUSEKEEPING FOR NEXT f

©

<:

RCL 019

PRT

RCL 003

RCL 019

PRT

STD 019

HLT

FIX 000

STD 001

PRT FIX 002

HLT STD

RCL 001

PRT

SUM 019

HLT

RCL 019

RCL 004

PRT

PRT

RSET CMS CLR FIX 002

HLT

Listing 3: Another sample listing; this one is in trace mode. Trace mode outputs each program instruction and the data associated with it so you can check each individual program step. This is the SR-52's equivalent of a symbolic high level language In a larger machine.

trace output with the design flowchart of figure 2. Each step in the trace should match what you designed in the flowchart. If it doesn't, then the machine is being asked to do something incorrectly. If your flowchart logic is faulty, review the SR-52 instruction book before making corrections. If your flowchart design has an improper premise, then the calculator will indeed proceed with perfect logic to an improper result.

Somewhere between the two "dump" methods, list and trace, lies the identification to the program problem. Listing shows program loading mistakes and tracing will reveal program logic errors.

I could go out on a limb with the truth and say that my invoice program was up and running on the first pass. But seriously, with the debugging facilities already discussed, it wasn't too difficult to find and correct the problem areas.

After the program has been debugged, you should make a new program list. Any flowchart changes that were necessary should also be documented. If you don't do this documentation, you will find that your memory will fail you miserably if you want to modify the program sometime in the future. The up-to-date list will also let you reproduce the program in case the magnetic program card ever becomes unusable.

Table 7: Functions of the user defined keys in the invoice program.

Key Name Assignment when Button is Pushed

A B

C D E

Data entered on key is the quantity of the merchandise purchased.

Data entered is the suggested list price of the merchandise. (Used with A.)

is the customers'

Data entered discount.

Data entered is the shipping charge for the order.

Data entered is the net price (no discount) of the second category of merchandise. (Button A is also used with E.)

This is the second function use of

A. When pressed it tells the SR-52 to total the list price items, compute and subtract the discount and leave the net amount.

This is the second function use of

B. When pressed it tells the SR-52 to add the total of the net price items, if any, to the results obtained when A' was pushed. It adds the shipping cost and res

154

You should also write the user instructions at this time. Table 2 shows the user instructions for the invoice program. It is also helpful to the user if you attach a copy of a sample printout. The blank spaces on the magnetic program card should also be filled.

This invoice program, while being relatively simple, is certainly not a trivial program. It does involve many of the basic programming philosophies that would be applicable to writing a program for any system. With the prices of hand held calculators continuing to drop as they have in the past, the SR-52 and companion printer are not a bad way to get into the intricacies of computers. At the time of this writing, the combination can be bought for about $400. The fact that the SR-52 can be connected to the real life world (the printer), does hold a possible promise that a computer interface to the SR-52 might come along someday.

For those who have an SR-52 and need an invoice program, a listing of the program discussed in this article is provided in listing 1. The program uses 110 program steps, less than half of the total SR-52 capacity. This will allow space to modify the program to meet your specific needs."

Step Procedure

1 Load "A" side of card

1a 2

Enter discount (see note below)

Enter shipping

Item quantity

Total list price of item Price printed Repeat 4 and 5 until all List price items entered

Total of list items Prints list total Discount, net on list If there are net price items do 7 and 8 otherwise go to step 9

Enter item quantity

Enter net item price Total net price printed Repeat 7 and 8 until done

Net total printed, Then shipping and Invoice total printed

CLR 2nd READ

run

D A B

2 nd

A E

2 nd B'

Note: For 40% customers, enter .6; For 50% customers, enter .5; For 50+10+10, enter .405.

Display

Goes blank then 0

Discount arm printed

Shipping amt

Qty printed

Individual and total price printed

Qty printed

Individual and total price printed

Table 2: User instructions for the invoice program. It is always necessary (for peace of mind) to write out these instructions, otherwise you may forget how to use a program.

LONG ISLAND

COME SEE WHAT BYTE a "REAL"

ShQP COMPUTER STORE LOOKS LIKE

MICROCOMPUTERS PERIPHERALS ACCESSORIES

IMSAI8080 BYTE-8 SWTP MP68 CROMEMCO PROCESSOR TECH

MEMORY EXPANSION COLOR TV GRAPHICS LEAR SIEGLER ADM 3 PAPER TAPE READER

INTERFACES (KITS or ASSEMBLED UNITS)

PROGRAMS AND SOFTWARE

VARIOUS BASICS - TINY. 4K. 8K and 12K FOCAL - DOS - GAMES - BUSINESS APPLICATIONS.

ALSO AVAILABLE

APPLE 1 MODEMS

CASSETTES TERMINALS

FLOPPIES DEC. WRITERS

BUSINESS APPLICATION INOUIRES INVITED SYSTEM DEMONSTRATIONS AND LITERATURE / MAGAZINES

Byte Shop East, Inc. 27-21 Hempstead Turnpike Levittown, Long Island (516) 731-8116 Two blocks east of Wantagh Pkwy.

HOUHS: TUES Ihru FRIDAY SATURDAY

12-9 1 0-5

Circle 409 on inquiry card.

155

Digital Micro Systems

PRESENTS:

a 16K STATIC RAM "M

FOR THE S-100 BUS

Hill • 1

Uses the new Intel 2114 4K Sialic RAM (which will also be built by Motorola, Signelics. Fairchild, National, T.I., Synertek, NEC, Intersil, and Fujitsu, etc.). Features complete static operation (No refresh or clocked chip select), software protect, paging, individually addressable 4K blocks, completely buMered address and data lines, fully socketed. Available with 8K or 16K of memory.

Prices: 8K kit-$295; 16K kit - S525; 8K expansion kit • S250 16K assembled and tested - $595

S-100 BUS TERMINATING CARD s25k,t

Absorbs noise, overshoot, ringing, reflection. PlalecJ thru holes, gold plated fingers.

EXTENDER CARDforeasytroubleshooting s16kit

With jumpers in power supply lines for current measuremenl. Low profile so card can remain in the machine with the cover on. With edge connector, gold fingers.

PLASTIC KEYBOARD ENCLOSURE

Blank molded ABS plastic enclosure for use with keyboard, controls, modem, etc. Size ■ 133/4 x 11V2 x 2V2. PRICES: Blank enclosure • $20. Wilh cutout for keyboard available from Radio Shack, etc. $27.

Prices shown include U.S. shipping. Cashiers check or M.O. prefered. Personal check may delay shipping 3 weeks. Add S3 for C.O.D: Purchase Orders add 4% - net 30. Utah residents add 4.75%.

Digital Micro Systems box 1212. orem.utah 84057

Toll free 24 hour Order Desk (BOO) 453-1444; In Uldh cell (801} 234-2103

Circle 410 on inquiry card.

Computer Information Arrangement

INPUT MASTER CASSETTE FILE TAPE

Figure 1: This is a basic diagram showing the input arrangement for the information retrieval system. The text is entered from a keyboard into a buffer area, and sorted alphabetically. In the example the three text strings start with S, D and K. When a certain buffer area is filled the information It contains is dumped to an input cassette tape. The information on the tape is sorted in alphabetical order. When any one tape is filled, or an updated master file is desired, the input tape is added to the master file.

David Holladay 225 Lakelawn PI Madison Wl 53703

An examination of the small system computer field might lead the observer to take a limited view of the potential uses of small systems. This is unfortunate, because a computer, even a small one, can do more than play games or make lights blink.

One general application of computers is the information retrieval system. A classic goal of information retrieval is the construction of a system that absorbs the contents of books and can answer questions concerning the information contained in them. This goal has been unapproachable in even the largest of computer systems. The best approach is to put the burden of intelligence on the user's shoulders and make use of the computer's bookeeping ability. This reduces the program to a large scale sorting system tailored to a microcomputer's capabilities.

Small systems have limitations in memory size, data transfer rates and throughput. To cope with these limitations, I propose a mass information handling system called the Computer Information Arrangement, or CIA. The basic hardware required for this system includes a processor, 8 to 16 K bytes of programmable memory, keyboard, TV interface and several cassette interfaces with a data rate of at least 300 bps. One cassette drive has to be controllable by the computer in a manner beyond that of simple motor control.

The main storage memory for the huge data base is magnetic tape. Tape is slow and serial, meaning that only the information physically located near the tape head can be dealt with. However, it is cheap. For the moment, our data base will be a dictionary, ie: a list of definitions sorted alphabetically

156

Building a better computer wasn't easy. But we did it.

Introducing the MSI 6800 Computer System

When we set out to build the new MSI 6800 Computer System, we knew we had our work cut out for us. It had to be at least as good as the now famous MSI FD-8 Floppy Disk Memory System which is also pictured below. So, the first thing we did was analyze all the problems and drawbacks we had encountered with other 6800 systems, and then put our engineers to work on solutions. The objective: Build a better computer.

We started with power supply. We had big ideas, so we used a hefty 18 amp power supply. You can run full memory and several peripherals without the worry of running out of juice. We also put it in the front of the cabinet so it's out of the way.

The next step was the CPU Board. A separate baud rate generator with strappable clock outputs allows any combination of baud rates up to 9600. A separate strappable system clock is available and allows CPU speeds of up to 2 MHz. The new MSI monitor is MIKBUG software compatible, so you will never have a problem with programs. Additional PROM sockets are available for your own special routines and to expand the monitor. The CPU also contains a single step capability for debugging software.

When we got to the Mother Board, we really made progress. It has 14 slots to give you plenty of room to expand your system to full memory capability, and is compatible with SS-50 bus architecture. Heavy duty bus lines are low impedance, low noise, and provide trouble-free operation.

With all this power and potential, the interface had to be something special. So instead of an interface address in the middle of memory, we put it at the top . . . which gives you a full 56K of continuous memory. Interfaces are strappable so they may be placed at any address. An interface adapter board is compatible with all existing SS-50 circuit boards and interface cards. All MSI interface cards communicate with the rear panel via a short ribbon cable which terminates with a DB-25 connector. All baud rate selection and other strappable options are brought to the connector so they may be automatically selected by whatever plug is inserted into the appropriate interface connector. Straps may also be installed on the circuit board.

To complete the system, we used an MSI 8K Memory Board which employs low power 2102 RAM memory chips and is configured to allow battery back-up power capability. A DIP switch unit allows quick selection of a starting address of the board at any 8K increment of memory.

If you're one of those people who understands the technical stuff, by now you'll agree the MSI 6800 is a better computer. If you're one who does not understand it yet, you'll be more interested in what the system can do . . . play games, conduct research and educational projects, control lab instruments, business applications, or just about anything else you might dream up that a microcomputer can do. The point is . . . the MSI 6800 will do it better.

The MSI 6800 Computer System is available in either kit form or wired and tested. Either way, you get a cabinet, power supply, CPU board, Mother board, Interface board, Memory board, documentation, instructions, schematics, and a programming manual. Everything you need.

There is more to say about the MSI 6800 than space permits. We suggest you send for more information which includes our free catalog of microcomputer products.

Building a better computer was not easy. Becoming the number one seller will be.

See the MSI 6800 Computer System at Personal Computing 77 - Atlantic City.

THidwc^t Scientific

220 West Cedar • Olathe, Kansas 66061 913/764-3273 • TWX 910 749 6403 (MSI OLAT)

□ □□□□□□□□□□□□□□□□□□□□□□□ □ □

□ □ □ □ □ □ □

Circle 411 on inquiry card.

Midwest Scientific Instruments 220 W. Cedar, Olathe, Kansas 66061

NAME

ADDRESS

CITY

STATE

.ZIP.

0011077

by keyword. If the dictionary is closely packed on the tape, it will be difficult to add to it without shifting half of the data base. It would be more logical to spread out the entries on the whole tape to avoid later space problems. Unless the tape is getting full, the proper position of an entry is solely a function of keyword.

If entries are to be added in an efficient manner, close attention must be paid to differing data rates. A human can type two to five characters (bytes) per second, while a computer can take things on or off tape much faster. The typical personal computer can internally manipulate at least 250,000 bytes per second when programmed with an assembler. A video display can depict about 1,000 characters at a time, and can refresh itself 30 or 60 times a second, depending on the way the display handles the interlace. It will be the objective of the CIA system to put information onto the cassette tape in sorted order as fast as the user can type in the unsorted data. The user can therefore type the definition of "best" and of "machine" into our imaginary dictionary, and the computer will place both in their proper places on the tape.

A large part of main memory (at least 4 K bytes) is used as a buffer. As new data is typed in, it is added to the buffer and sorted on keyword. This sorting can be done by rearranging the data in the buffer in sequential order. An alternative is to keep items in unsorted order and maintain two pointers for each item, one pointing to the location of the item which is next in sorted order, the other pointing to the previous item in sorted order. The second system eliminates unnecessary searching in memory, but involves longer and trickier programming.

As the memory buffer accumulates data, it is important to keep track of how it is filling up. The alphabet is divided into eight sections for accounting purposes. The first section may be for words starting with A or B, etc. Eight counters keep track of how many bytes are taken up in the buffer by different ranges of the alphabet. When one counter exceeds certain limits, the cassette is moved to the region of tape corresponding to that range of the alphabet. Next, the data held in the buffer is transferred onto the tape in the proper location. Obviously the data would then be erased from the memory buffer to make room for more data. The end result is a cassette tape containing sorted information which generated at the same rate that the user

is typing in the unsorted data (see figure 1). If the data is sorted as fast as it can be put in, what would be the advantage of greater throughput? The system works just as fast as it has to.

Notice how general the system is. It can be used to make huge mailing lists, keep track of books in a library, and so on. It has two principle limitations in addition to speed, size and the simple nature of the data that it can handle.

What can you do when you fill up a cassette? (It may take a while, since it is possible to fit as many as 500,000 characters on a digital cassette tape.) You could maintain a master set of 26 tapes, one for each letter of the alphabet. Once your tape is full, it would be merged with the master file, an unwieldy process at best. This procedure would mean putting master tape #1 in one cassette machine, your input cassette in another, and starting the merging program. After a while, the computer could signal that it had put all of the A entries onto master tape #1. Then you would take out tape #1, replace it with tape #2, and so on, up to tape #26. This process would happen rarely (or as often as you would require an up-todate master file). But imagine how much data your system could hold. A friend of mine pointed out that if you were mechanically inclined, you could automate cassette manipulation. It would be a cross between a jukebox and large scale automated mass memory with media manipulation mechanisms. An automatic multimegabyte memory system for a few thousand dollars would be most impressive.

The question of data bases is a bit tricky. Data can be abstract, highly interrelated, and difficult to categorize. Your data will be interrelated in ways that the data base cannot show or represent. There are two approaches to follow. One way is to design very abstract data structures that show relationships inherently. The other is to maintain the simple dictionary alphabetic system, and add several cross-reference pointers. An example would be "Kennedy, Jackie: see Onassis, Jackie." By pursuing all the pointers listed under a keyword, and checking out all the pointers listed there, a tree structure is developed. A multi-cassette data system implies a significant amount of tape manipulation, unless you have built the jukebox system.

Although a pointer system is a bit crude, it can be handled automatically. The following example illustrates a typical entry. The original data entry: "Beethoven,

158

Ludwig van, Symphony Number 3 (The Eroica)" would be filed under "Beethoven, Ludwig van". If the user wants to generate the cross reference pointer "Eroica Symphony, see Beethoven, Ludwig van", a special character could be typed before "Beethoven, Ludwig van" which the program would recognize. The program could then add "Eroica Symphony, see Beethoven, Ludwig van" to the text buffer. This would insure that the pointer and the data match, eliminating a problem with typographical errors.

Later, if it is necessary to eliminate the entry, you would know that the crossreference pointer is also in memory because of the existance of the special character. Other special functions can be implemented by special characters, such as labeling the data source of facilitating tabular data. This is left as an exercise for the reader. The power of this information handling system is limited mainly by the size of programs that can be stored in memory, and by the speed of the tape recorder.

The Computer Information Arrangement needs five separate programs to work properly. Note that it is not necessary for more than one to be in memory at any time. Program 1, the input program, is the biggest and most difficult. It accepts characters from the keyboard, edits them, adds the cross-reference, puts them in the buffer, recognizes when the tape machine is idle or part of the alphabet range is getting full in the buffer, and spreads the data on the input cassette by means of a linear hashing formula. It may be necessary for the tape recorder to be controlled by a separate microprocessor and 1 K bytes of programmable memory shared by both processors, because of timing considerations. The second one is the merge program, which merges the input tape with the master set of cassettes. The third program, called the clean up, goes through tapes, "unbundles" data, and straightens out any local area that gets "out of sort." The fourth program is the display program. The user can tell it to display the Richard Nixon file, whereupon it will display all the references and pointers that are filed under the keyword Nixon, Richard. The last program does a crucial, but easily forgotten job: altering or deleting outdated or incorrect data from the input tape or from a master tape.

The CIA is a general computer information arrangement, an answer machine, or a list maker. Put in randomly ordered data and it. comes out neat and organized. The arrangement has many applications: small

business, journalism, research, or help for folks who have trouble organizing things. This is the type of program which will sell small systems to the world. ■

GLOSSARY

Alphabet range: part of the contiguous alphabet used to decide where to store alphabetically sorted data.

Buffer: section of random access memory used to temporarily store data until enough is collected to pass on.

Cross reference: a notation to look elsewhere in

the data base for more information.

Data base: collection of information and the

system used to organize it for use by a computer

program.

Entry: A block of data that stays together during the sorting routine. The end of an entry is recognized by a special termination character. File: Set of entries with the same keyword. Input tape: cassette that accepts the sorted data. For larger data bases it must be merged with the master tapes.

Keyword: Word in an entry used to sort the entire entry into the data base.

Master tapes: Set of cassettes that make up the entire data base. Each cassette covers a portion of the alphabet range.

A potent pair for AC power control

■ .-:■>. •■: :••'- ■:• ■; -.'.■■■.:■>: :¥•■.'.--•:.vfji.

RELAY/OPTO-ISOLATOR CONTROL DOARD($H7)

This boord is o natural for controlling audio systems, time lapse photography experiments, model trains, robot devices, or any application where you need a number of intelligent switches. 6 reed relays respond to an 8 bit word from your computer; 8 opto-isolators accept on fl bit word from the outside world and send it back to your machine for further control purposes. Includes detailed instructions and applications notes.

500 WATT CONTROL MODULE (%i0)

Interfaces your Relay Control Board with power loads such as photofloods and motors. This module is about the some size as a plug-in wall transformer and plugs into any wall outlet: on the back is a female AC socket that accepts AC loads up to 500 Watts. Two isolated control wires trail back to your computer, allowing easy remote operation and keeping AC lines out of your machine.

All kits are 5-100 Altair/IMSAI compatible. Available by mail (shipped postpaid in the USA from stock,- Californians add sales tax) ot at many fine computer stores. Dealer inquires invited.

MULLEN COMPUTER RQARDS

BOX 6214, HAYWARD, CA 94545 cave

3MIX

"Products that make your computer useful" "H

159

Circle 412 on inquiry card.

Chess Skill in Man and Machine edited by Peter W Frey, Springer- Verlag, New York, 1977. Hardcover $14.80.

Chess Skill in Man and Machine is a series of eight essays dealing with four main topics, two major and two minor. These topics include the history and rules of computer chess tournaments, human chess skill, descriptions of the techniques of computer chess, and finally, an overview of the past, present and future of computer chess. The chapters of most interest to the computer chess enthusiast are those explaining human chess skill and the various computer chess techniques.

The first major topic is an analysis of chess skill in humans. Neil Charness in chapter 2 poses the question, "Should a computer be more like a human?" He describes the two schools of thought concerning this question. One school answers no, because computer hardware operates differently from the human mind and should therefore be operated in its most efficient mode, not like the human mind. The other school says yes, a computer should be like a human if it is to play and beat humans. The latter school believes that human thinking should be simulated in order to enable the computer to capitalize on any human miscalculations.

Charness believes that to write a better chess program, the programmer has to understand how humans solve the problem of choosing the best move. "Chess-specific" perception is the key. Searching through a tree of moves which consists of every possible move during an entire game of chess is an extremely inefficient way to play chess. An analysis of the legal moves for each side to a depth of six moves during a single turn of a player would involve over six billion different combinations of moves.

Becoming a good chess player demands that one learn to recognize types of positions. This chess-specific perception (or pattern recognition) can reveal weaknesses for further examination, thereby cutting down on the number of moves to be examined. This method of "pruning the search tree" is the human method; it should also be the computer method.

The second major topic deals with differ

ent theories of computer chess. Chapter 3, written by editor Peter W Frey, introduces opening move theory (whether to store standard openings or to simply play them from scratch every time), machine representation of the chessboard (using either bit patterns or the "mailbox" method), and move searching procedures.

There seem to be two general types of search strategies in use today: the A type (looking at all legal moves and countermoves at each position), and the B type (looking at only a small subset of the potential legal moves). Frey prefers the B type strategy over the A type because of the number of positions to be examined.

The B type suggests that a minimum of moves from any position should be evaluated using von Neumann and Morgenstern's minimax procedure. The idea of backward pruning using a heuristic method is also covered, involving evaluation of all capturing moves first, and so on down a list of types of moves. The various search strategies are given in detail in chapter 3 and are elaborated on in chapters 6 and 7.

Northwestern University's program, CHESS 4.5, is covered by the authors of that program. CHESS 4.5 is particularly relevant to the programmer who has a grasp of the theory and who is eager to design his or her own program. The creators of CHESS 4.5 discuss their older programs and the writing of their latest program. They discuss their particular searching strategy, how they came to decide upon their method of generating moves and evaluating them, and their reasons for reaching certain decisions. This discussion tends to bring one down from the theoretical level to the practical level of decisions concerning implementation of theories.

The book begins with a retrospective of past computer chess tournaments and their rules, and ends by asking the question, "Why program a computer to play chess?". I think there are two answers to this question. A computer chess program to simulate human methods of playing will greatly aid our understanding of human perception, learning and problem solving. Secondly, it can be fun solving a difficult problem in a creative, imaginative way.

Chess Skill in Man and Machine is an interesting book filled with the theoretical and the specific concerns of computer chess. It should give readers the background to get started, and its bibliography should provide a basis for further inquiry.

Dennis Barbour 2 Coliseum Av Nashua NH 03060"

160

MODEL CC-8 $175.00

4800 BAUD CASSETTE RECORDER

An ASYNCHRONOUS NRZ type Recorder with remote motor start/stop. Error rate 10° at 4800 BAUD. Can be used from 110 to 4800 BAUD into a UART or "Bit Banger PIA" -no clocking required. This is not an audio recorder. It takes RS232 or TTL signals from the terminal or computer and gives back the same signals. No audio interface is used. Motor start/stop is manual or through TTL or RS232 signals.

Tape speed is 3.2"/second nominal; 1.6"/sec. optional. 110 volt, 60 Hz, 5 watts. (220 Volts on special order). Can use high quality audio cassettes (Philips Type) or certified data cassettes. Can be used in remote locations from a 12 Volt battery.

Recommended for DATA LOGGING, WORD PROCESSING, COMPUTER PROGRAM RELOADING and DATA STORAGE. Especially recommended for 6800 systems, 6502 systems, 1800 systems and beginners with the 8080 systems. Manual control except for motor start/stop. 6800 or 8080 software for file or record searching available on request with order. Used by major computer manufacturers, Bell Telephone and U.S. Government for program reloading and field servicing.

AVAILABILITY - Off the shelf.

50 KILOBAUD CARTRIDGE RECORDER

This is a self clocking (1/1) high speed recorder. Loads BASIC in under 2.0 seconds. Recording is done at 19.2 Kilobaud. Playback at 30 Kilobaud. File or Record searching is done at 50 Kilobaud and loading is automatic. Worst case access time about 2 minutes for up to 2 megabytes on the 3M Data Cartridge.

Tape speed lO'Vsec. on record, up to 30'7sec. on playback. Records one clock track and one data track on each pass (2 passes). Recording is NRZ unencoded from RS232 or TTL signals.

This recorder requires one Parallel port for motor control, and one serial port for data and clock. (Cannot be used with UART's or UART boards such as the 3P+S). Used with USART's, ACIA's or other 1/1 clocking I/O devices under software control only. No manual controls. Software for 8080 and 6800 available. Power supply is built in, 110V, 60 Hz. 220 V, 50 Hz for export.

AVAILABILITY-90 days. MODEL 3M3A

$220.00

2SIO (R) CONTROLLER $190.00 ($160.00 Kit)

PROVIDES MONITOR AND TAPE SOFTWARE in ROM TERMINAL and TAPE PORTS on SAME BOARD CONTROLS ONE or TWO TAPE UNITS (CC-8 or 3M3A)

This is a complete 8080, 8085, or Z80 system controller. It provides the terminal I/O (RS232, 20 mA, or TTL) and the data cartridge I/O, plus the motor controlling parallel I/O latches. Two kilobytes of on board ROM provide turn on and go control of your Altair or Imsai. NO MORE BOOTSTRAPPING. Loads and Dumps memory in hex on the terminal, formats tape cartridge files, has word processing and paper tape routines. Best of all, it has the search routines to locate files and records by means of six, five, and four letter strings. Just type in the file name and the recorder and software do the rest. Can be used in the BiSync (IBM), BiPhase (Phase encoded) or NRZ modes with suitable recorders and interfaces.

This is Revision 7 of this controller. This version features 2708 type EPROM's so that you can write your own software or relocate it as desired. One 2708 preprogrammed is supplied with the board. A socket is available for the second ROM allowing up to a full 2K of monitor programs.

Fits all S100 bus computers using 8080 or Z80 MPU's. Requires 2 MHz clock from bus. Cannot be used with audio cassettes without an interface. Cassette or cartridge inputs are RS232 level.

AVAILABILITY - Off the shelf.

NOW AVAILABLE: 6800 I/O with ROM, same as 2SIO (R) but fits SWTP bus. $190 tested. ($160 kit)

our

NEW: SWTP bus 8085 MPU board. Use 8080 software in your SWP 800 system. $190 tested. ($160 kit)

OVERSEAS: Export Version 220 volt 50 hz. Write factory or: Megatron-Datameg, 8011 Putzbrunn, Munchen, Germany;Nippon Automation 5-16-7 Shiba, Minato-Ku, Tokyo, Japan; Hobbydata, PACK 20012, Malmo, Sweden; G. Ashbee, 172 I field Road, London SW 10-9ag: Trintronics, Ltd., 186 Queen Street W., Toronto, Ontario, Canada; EBASA, Enrique Barges 17, Barcelona 14, Spain; ARIES, 7, rue Saint Phillipe du Route, 75008 Paris; Microlem 20131, Milano, Italy; Eagle Electric, Capetown, S. Africa.

For U.P.S. delivery, add $3.00 Overseas and air shipments charges collect. N.J. Residents add 5% Sales Tax. WRITE or CALL for further information. Phone Orders on Master Charge and BankAmericard accepted.

Naticnal Multiplex Ccrporaticn

3474 Rand Avenue, South Plainfield NJ 07080 Box 288 Phone (201) 561-3600 TWX 710-997-9530 t - , ^ . _ ,

Circle 413 on inquiry card.

Personal Computing Expo will come to New York!

PCEPERSONAL COMPUTING EXPO

NEW YORK COLISEUM, OCTOBER 28, 29, 50, 1977

It's a brand new show (in the world's biggest economic center) specifically for manufacturers, buyers and those providing services to the personal computing enthusiast. For the first time, this booming field will have a New York Coliseum showcase. It is planned as the largest public show of its type and will attract attendance from the huge population areas of Boston, Washington, Philadelphia and Baltimore. New York is the world's communications focal point, the one place that will put personal computing in a significant spotlight. New York is surrounded in depth

by people who work in the computer field, by computer learning centers, universities, personal computing clubs and thousands of others whose lives are affected by computers.

More than 100,000 paid subscribers of BYTE magazine will be urged to view the exciting exhibits and to attend the BYTE-sponsored lectures. Circle the dates: October 28, 29, 30 — and make your plans now to be there when Personal Computing Expo comes to New York!

II

Personal Computing: An idea whose time has comei

a*

Tutorials by the IEEE Computer Society, Mid-Eastern Area

Personal Computing Expo is also joined by the Institute of Electrical and Electronics Engineers Computer Society, AAid-Eastern Area Committee, whose experienced staff is presenting six day-long tutorials at a modest charge. If inconvenient for you to attend a tutorial during the show, simply sign up for follow-up tutorials on weekends after the show.

Whereas the lectures will provide you with information, the tutorials will teach important skills enabling you to use your own computer at home or at work.

TUITION:

The tuition fee for the tutorial program includes a one-day admission to the Personal Computing Expo.

One Two Three Tutorial Tutorials Tutorials

Students (with

IEEE Members Non-Members

D)

$30 $40 $50

REGISTRATION:

In order to provide an interactive, learning environment between the participants and the lecturers, the number of registrants is limited. Registration is accepted on a first-come, first served basis. Early registration is therefore suggested. Cancellations received before September 15, 1977 will receive a full refund.

To register, make your check payable to the IEEE

COMPUTER SOCIETY, and mail to:

Daniel R. McGlynn, Ph.D.

Tutorial Program Chairman

IEEE Computer Society

329 - 84th Street

Brooklyn, N.Y. 11209

FOR FURTHER INFORMATION:

on the technical content of the tutorials, technical background suggested to derive maximum benefit from the program, or information on the IEEE Computer Society, call Cary Ringel Chapter Chairman IEEE Computer Society (212) 460-4600

TIME AND LOCATION:

The tutorials will be held from 10 AM to 5 PM on Friday and Saturday, and from noon to 5 PM on Sunday in the New York Coliseum, at a location to be announced and posted. Participation in the tutorials also includes a one-day admission to the exhibition area and other lecture programs.

EXPO TICKETS:

Will be sent to tutorial registrants about three or four weeks prior to the show.

$50 $75 $70 $100 $90 $125

Tuition includes hand-out material, including text and/or hand-out materials. Participants will also receive a certificate of participation.

DIJTC DAILY TUTORIALS AND TtKJUF SPONSORED LECTURES

The Small Systems Journal

Exciting lectures

sponsored by

BITE

The Small Systems Journal

Personal Computing Expo is endorsed by BYTE magazine, whose staff has contacted prominent speakers for an exciting series of lectures.

Visitors will be able to attend these meetings free of charge. The lectures will not conflict with each other eliminating the worrysome choice among several equally important topics. In addition, they will be repeated on the next day to give you o second chance if you missed a topic.

Lectures are typically 30 minutes, often with demonstrations and an additional 15 minutes for questions.

Portia Isaacson Ph.D. ... Saturday 11 AM and Sunday 12 Noon

Co-owner of the Micro Store, a personal computer store, in Richardson Texas actively engaged for 12 years in the computing field in industry and at universities.

Member of the ACM and IEEE, and chairman of the 1977 National Computer Conference.

Author of many articles in professional journals and magazines.

Received a Ph.D. in Computer Science from the Southern Methodist University.

1. Personal Computing: An Idea Whose Time Has Come

A review of what has happened so far in the personal computing field, and an outlook into future developments, including those in the computer assisted home. Slide demonstration.

Sol Libes ... Friday 6 PM and Saturday 10 AM

President of the Amateur Computer Group of New Jersey

Teacher of electronics and computer programming at a community college

Author of 10 books (working on the 11 th) and several hundred magazine articles in electronics and computing

Received an award for "The Outstanding Amateur Computer Hobbyist of 1976" in Atlantic City by Personal Computing 1976 show, and BYTE.

2. How to Get Started

A discussion of typical home computer systems and their essential hardware and software components. John H. Dilks III . .. Saturday 1 PM and Sunday 2 PM

President of Personal Computing Inc. and tradefair director of the Personal Computing shows in Atlantic City in 1976 and 1977.

Experience with various computer systems since 1962. Employed by Western Electric Co. Inc., division of the Bell System.

Member of the Amateur Computer Group of New Jersey and of the Philadelphia Area Computer Society. Teaches microcomputer courses in an adult evening program at a vocational school.

3. Innovative and Unusual Computer Applications for the Home.

Discussion of "far-out" applications of microcomputers and electronic technology for home use, such as a child locator and warning device, a home security system, etc. Slide demonstration. Robert S. Jones ... Friday 7 PM and Saturday 2 PM Publisher of Interface Age Magazine

Prior experience in sales and marketing for the semiconductor industry, including Intel, National Semiconductor and Analog Devices Inc.

4. Personal Computing for the Business Man

Evaluating business applications for micro computers, including slides showing selected applications. Louis E. Frenzel... Saturday 3 PM and Sunday 3 PM

Director of Computer Products at Heath Company, involved in the planning of new computer products. Prior to Heath, with McGraw Hill in product planning and design of educational electronic kits. Prior experience including computer engineering for eight years

Author of several books, home study courses and numerous magazine articles in electronics and computers.

Received a BS in electronics from the University of Houston and a MEd from the University of Maryland

5. How to Build Personal Computer Kits

Tips for successful kit construction. Benefits of kit products for the personal computer user. Including slides showing selected computer kits.

Carl Helmers .. . Friday 9 PM and Saturday 4 PM

Editor-in-Chief and co-founder of BYTE magazine.

Obtained computing experience as a personal way to accomplish artistic and technological goals in music.

Graduated in 1970 with a BS in Physics from the University of Rochester, NY.

Worked for several years at Intermetrics, Inc. in Cambridge, Massachusetts on the NASA Space Shuttle Project.

Prior to working with BYTE, publication of a small computer newsletter on a part-time basis.

6. Computers and Music

How to create music with computers. Problems of performing electronic music, music under computer program control and computer music in conjunction with traditional instruments. Illustrations and examples from personal experience.

Jack L. Davies ... Friday 8 PM and Saturday 5 PM

President of Pan Atlantic Computer Systems GmbH, a distributor of various micro computer systems in Europe.

Extensive experience in using minicomputers and microcomputers in the US

Military Schools in Europe. Designed and developed numerous games and educational programs for students in these schools.

7. Microcomputers in Education

Discussion of the many possibilities of using microcomputer systems in schools. Effect of personal computers on students.

David Fylstra ... Saturday 6 PM and Sunday 5 PM

Member of the research staff of the Telecommunications Sciences Center at Stanford Research Institute for more than two years. Specialized in microcomputer software and computer simulation of speech processing systems.

Graduated in 1974 with a BA in English and Psychology, Stanford University, Phi Beta Kappa. Active in the research on communication systems and devices for the deaf.

8. Speech Analysis and Synthesis for the Amateur

Using the personal computer as a device to analyze the acoustical foundations of speech and to formulate rules for the control of the speech synthesizer.

Max Mathews Ph.D. ... Saturday 7 PM and Sunday 4 PM

Director of Acoustical and Behavioral Research, Bell Labs

Author of The Technology of Computer Music, and numerous articles.

Scientific Advisor to the Institute for Research and Coordination of Acoustics and Music (IRCAM) Dr. Mathews is often regarded as the "Father of Computer Music"

9. Pure Digital and Real Time Music Synthesis

The use of the digital computer as a musical instrument with which composers and performers create and play music. Slide and tape demonstration. Carl L. Holder .. . Saturday 8 PM and Sunday 6 PM

Director of Product Management, Planning and Communications at Information Terminals Corp. for five years.

Prior experience, including Memorex Corp., in the area of magnetic media development and testing.

10. Present and Future Storage Devices

Survey and discussion of current devices and media, including latest technological developments like the charge coupled devices and magnetic bubble memories. Costs, advantages and disadvantages of these devices for the personal computer user. Accompanied by slides.

"S

DAILY TUTORIALS

There will be two tutorials offered each day, one aimed at those participants who have little or no experience with microprocessors, and the other for those already experienced with microprocessor systems.

BASIC COURSES

1. Development of Microcomputer Systems for Business Use . .. Friday 10AM to 5PM

Sy Ratner, Citibank, N.A.

— system design concepts

— economic efficacy of microcomputers versus large centralized computer systems

— distributed processing definitions

— advantages and problem areas

— network design and architecture

— data communications aspects

— case study: design of a stand-alone workstation for data entry and retrieval

2. Development of Microcomputer Systems for Home Use .. . Saturday 10AM to 5PM

Cory Ringel, Con Edison

— survey of simple microcomputer control systems for home use

— selection of hardware: IC's, boards, kits, development systems

— programming and software aids

— interfacing: A/D and D/A conversion

— examples: design of a home control system: microcomputers for a music synthesizer; computer TV games.

— case study: use of the Motorola 6800 in design of a microcomputer system

3. Survey and Comparison of Microprocessors

. . . Sunday Noon to 5PM Donald Lewis, Standard Microsystems Inc. and other speakers

— definitions and distinctions between ALU-chips, controllers, microprocessors, microcomputers

— current applications

— microprocessor architectures (bit-slice, 4-bit, 8-bit, 16-bit, minicomputer-type)

— vendor survey

— performance evaluation and criteria for selection

INTERMEDIATE/ADVANCED COURSES

4. Microprocessor Interfacing ... Friday 10AM to 5PM

Donald Lewis. Standard Microsystems Inc.

— interface components (peripheral interface chips, UARTS, etc.)

— interface standards (IEEE 488, RE 232C, S-100, etc.)

— interfacing to keyboards

— interfacing to casette and floppy disk drives

— interfacing to display devices

— case study: how to design a CRT terminal

5. Microprocessor Programming and Software

... Saturday 10AM to 5PM Donald Lewis, Standard Microsystems Inc.

— software design: flow-charting, setting breakpoints, documentation, etc.

— assembly language for the Intel 8080, 8085, Z-80, Motorola 6800

— instruction types ond addressing techniques

— use of the stack

— interrupt handling and direct memory access (DMA)

— software development aids

— high level languages for microcomputers

6. Technology Analysis and Forecast of Future Microprocessor Structures ... Sunday Noon to 5PM

Daniel R. McGlynn, U.S. Philips Corp. and Will Mathys, MOS Technology Inc.

— emergence of specialized computational elements (SCE) •

— architectural evolution (stack processors, reconfigurable architectures, multi-level logic)

— resource management techniques

— software evolution (nano-programming, extensible instruction sets, structured programming modules, very-high-level

languages)

— evolution of semiconductor technology of microprocessors

— microprocessor architecture at the chip level

— case studies: design of MOS Technology's new 8-bit and 16-bit processors

Personal Computing Expo to be produced by

H.A. Bruno & Associates

H.A. Bruno & Associates, Inc., has been prominent in the exposition and promotion fields since 1923. Highly skilled in the production and promotion of consumer and trade shows, the company currently promotes the American Energy Expo, the National Boat Show, Auto Expo/New York. Promotion assistance also is 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.

Interesting, educational exhibits of Personal Micro Computers

The lectures and tutorials are not just theory! You will be able to see a multitude of micro computers. Try out various demonstrations: fascinating games, even in color; small business applications; computer produced speech; music; color graphics; and many more. Micro computers are not only small and portable, also you will need only a "micro budget" to be able to take them home.

Show Hours and Admission

Personal Computing Expo hours are as follows: Friday, Oct. 28 — Noon to 10 p.m. Sat. Oct. 29— 10a.m. to 10p.m. Sunday, Oct. 30 — Noon to 7 p.m.

General Admission: $5.00 (includes free BYTE lectures) per day.

Two-day Tickets: $9.00 (advance sale only) Three-day tickets: $13.00 (advance sale only)

General Information

You may find it advantageous to purchase two or three-day admission tickets in advance. These are availble by mail only, no later than October 10, 1977. Use coupon below.

Group rates (10 or more persons) qualify for $1.00 off regular prices. Arrangements must be made by mail prior to October 10, 1977.

Special arrangements have been made if you desire to stay overnight. Our headquarters hotel, the Barbizon-Plaza, is located on Central Park South, two blocks from Columbus Circle. Single rooms available at $34.00 per night; $40.00 double, plus tax. There's a weekend plan: $22.95 daily, plus tax per person, double occupancy . . . includes breakfast (brunch on Sunday) and meal gratuities. Children under 14 in same room with parents, free.

For hotel reservations and information, call toll free (800) 223-5493. From New York State cail (800) 223-5963.

For those traveling to New York by air, American Airlines offers a convenient service through arrangement with Personal Computing Expo. For information, call toll free (800) 433-1790. In Texas the number is (800) 792-1150. From the West Coast, round trip fare via American is only $227.00.

20,000 persons are expected to attend and view the more than 200 exhibits by personal computer manufacturers and retailers.

Personal Computing Expo will occupy the 4th floor of the New York Coliseum. It is located on 59th Street and Columbus Circle — the geographical center of New York City. Garage parking in the building is available.

For answers to any questions pertaining to your attendance at Personal Computing Expo, contact the Show Manager, Ralph lanuzzi, at Area Code 212/753-4920.

Advance sale of tickets available ... Three days $13 Two days $9 ... General Admission $5 MAIL THIS CONVENIENT ORDER FORM NOW!

Personal Computing Expo admission is $5.OX) per day. Advance reservation eliminates | waiting in line. Order advance tickets with this coupon. Admission ticket includes access ■ to exhibits, lectures and tutorials.

Please send me advance registration tickets for three days, Oc- J

tober 28-29-30. Total cost $13.00 per person. I

Please send me advance tickets for two days, October and |

October . Cost is $9.00 per person.

Please send me advance tickets for one day, October . Cost J

is $5.00 per person.

Make all checks payable to PERSONAL COMPUTING EXPO, and mail to: Personal Computing Expo, 78 East 56th Street, New York, N.Y. 10022.

Name Amount enclosed $

Address

City State Zip

I I I

Analyze Your Car's Gas Economy with Your Computer

John P Bauernschub 14809 Clavel St Rockville MD 20853

In a note accompanying this article, author Bauernschub reported: This program was developed to be displayed on a video monitor using the SwTPC CT-1024. However, I borrowed a Texas Instruments Silent 700 to generate the listing and was happy at the ease of interfacing it to the SwTPC MC-6800 and AC-30 cassette interface.

A few comments about myself. First, I had never put an electronic kit together before this. I spent six months studying the microcomputer market and decided on Southwest because they appeared to have "put it all together." It was enjoyable and fairly straightforward assembling the

How well is your car performing? Is it matching the EPA miles per gallon ratings that the manufacturer posted on it? Is it time for a tune-up? Here is a system that will produce these answers and provide a worthwhile application for your personal computer.

The first step in this system is to gather data. What we're out to do is automate a familiar procedure: analysis of data about your car. But analysis requires data. Every time you purchase gas, record the quantity and the mileage. It helps to keep a small notebook in the glove compartment of your car for this. The system will be the most informative if the tank is filled each time. However, the fill-up is not necessary every time since the program totals the gallons and miles for an overall rate. You may also wish to note when you do an extraordinary amount of highway or city driving so you can identify its effect on your normal miles per gallon.

If you want to check your fuel performance and have not been recording detailed

fill-up data, you can recover past data from gas receipts (on your credit card bills) and get a starting mileage from a shop maintenance record.

When the program is initiated you have the option of displaying the instructions. Next you are asked for the mileage before the first gas purchase. This is either the mileage when you first started recording the data or the last mileage used the previous time the program was run. For the greatest accuracy, the tank should be full for the first and last recordings. This value is stored by the program in the variable L to be used in the final statistics, and assigned to M2 for the first computation.

Column headings are displayed and you are requested to input mileage and gallons for the first fill after the mileage used as the start. The program will then display the mileage, the number of gallons, the number of miles since the last purchase and the miles per gallon for this data. You are again prompted for miles and gallons and the cycle repeats itself.

If you detect an error in the most recent entry, you can back it out by entering a negative number for the next mileage and zero for gallons. When this is done, the number of gallons for the most recent entry, G4, will be subtracted from the total gallons, T, (line 370); and the most recent mileage variable, M2, will be set equal to the second most recent mileage variable, M4. When you are prompted for mileage and gallons again, enter the corrected amount. If this is also in error, it can likewise be backed out. However, you can only back out the most recent entry. If you tried to back out multiple levels of entries by entering successive negative values for mileage, nothing would happen because after the first back out G4 was set to zero (line 380) and M2 equals M4.

166

After you have entered your last data and are prompted for miles and gallons, enter a zero for each and your computer will tell you how many miles you drove, how many gallons were used, and your average miles per gallon. This miles per gallon figure is computed using the total gallons and miles driven and not an average of each previously computed miles per gallon.

This program was written for a SwTPC 6800 and will run with either 4 K or 8 K BASIC. Its output was designed to fit the SwTPC CT-1024 video screen and will therefore appear squeezed on a wider screen or printer. This can be adjusted by changing the spacing of the column headings in line 700 and the tabs in line 320. The statement PRINT CHR$ (16);CHR$ (22); in lines 450, 520 and 690 are the computer cursor commands (home up, erase to end of frame) for the CT-1024 TVT and should be changed or left out if some other terminal is utilized. Also, all REM statements can be left out at the risk of losing some documentation value.

Carry this idea forward in your computer to help keep track of the performance of your car."

Listing 1: The BASIC program for analysis of automobile mileage data. This program is written for the SwTPC 6800 system's 4 K or 8 K BASIC interpreters, and can easily be adapted to any interpreter which implements a minimum of decimal arithmetic and string output operations for formatting. This program is not recommended for use with "tiny" BASIC interpreters.

ready

SLIST

ftt 00 REM PROGRAM T3 COMPUTE SBS MILEA3E Ml* REM BY JOHN c'. BAUERNSCHUBi JR. 012* rem april 1977

:tiom: >i-ve;.

"IN5TPU

0-NO i

IF

>UT ft am so:

5 2 0 650

_ET T= PRINT

1)190 INPUT M.S

0200 REM ERROR DETECTION

0210 IF M=0 THEM 440

0220 IF M0 THEM 370

0230 IF M -M2 THEM 720

0240 IF 3<=0 THEM 750

0250 REM SAVE DATA FOR BflCC OUT

0260 LET M4»H2

D2?0 LET '34=5

02S0 rem mile: per sallon computation

0290 ^ET M3=M-M2 0300 ~ET T = T*6

0310 LET R= 1 INT . 1 HH.M3 "3 • ' - 1 00

1132 0 FRUIT TAB'S) iMi TAB' 12.) >Gi TAB > 19) ! M3S TAB 1 25 1 i p 0330 ^ET PI2-M 0 340 SQTO 130

0350 REM BACH OUT ERRORS FROM TOTAL

0330 REM SALLON; 'T) AMD LAIT MILEAGE iM21

OSru LET T=T-G4

0330 LET 34=0

0390 LET M2 = M4

0400 SOTO 130

0410 REM FINAL STATISTICS

0420 LET M3=M2-L

0430 IF T<=0 THEM 720

0440 LET R= 1 INT' 1 00»M3-' T) 1 100

0450 PRINT CHR$C 16) 5CHRH22! !

0430 PRINT "YOU DROVE "SM3i" MILES ON"

0470 PRINT Tl" SALLONS OF GAS"

0430 PRINT "FOR AN AVERAGE OF"

0490 PRINT Pi" MILE: PEP GALLON"

Circle 414 on inquiry card.

THE BETTER BUG TRAP

AND CONQUER

Altair/IMSAI compatible board catches program bugs and provides timing for real-time applications.

Four hardware breakpoint addresses. Software breakpoints only possible at instructions in RAM. Better Bug Trap breakpoints can be in ROM or RAM, and at data or instructions in memory, input/output channels, or stack locations.

Board can stop CPU or interrupt CPU at a breakpoint.'

Real-time functions: watchdog timer, real-time clock (for time of day clock), interval timer.

Sophisticated timesharing made possible!

Unique interrupt structure: generates a CALL instruction to your subroutine anywhere in memory, not a RST!

Addressed as memory. All parameters set easily by software.

All this and more for about the price of a real-time clock board, but nothing else does the job of the Better Bug Trap.

$160, assembled and tested. 2 manuals plus software. 90 day warranty. Shipped UPS. Delivery from stock.

jJjJtcrontCH

int.

BOX 3514, 123 WEST 3RD ST., SUITE 8 GREENVILLE, NC 27834 e (919)758-7757

05110 END

0510 PEN INSTRUCTIONS

0520 PP1MT SHFV 16. ;SHR1..22. :

0530 PRINT '■ COMPUTE MILES PER GALLON"

05 4 0 PRINT 055 0 PRINT 1.153 0 PRINT 057 0 PRINT 0530 PPIMT 0590 PPIMT 03 0 0 PRINT 0610 PR IMT 06=0 PPIMT 0630 PRINT 0640 PRINT

065 0 PRINT

066 0 PRINT 0-.7 0 INPUT L 0630 LET M2 = L

06 ? 0 PR I NT cm* ' 16.) > C HR:E <.22> ! 0700 PPIMT " MILEAGE GALS 0710 RETURN

072 0 PRINT ■'MILEAGE LESS THAM OR EQUAL"

0730 PPIMT ■■PREVIOUS ■(

0 74 0 GOTO 130

0750 PRINT "GALLONS MUST BE GREATER THAN 0"

076 0 GOTO 13 0

READY "RUN

instruction; <i-yes> o-no>! o

INPUT MILEAGE BEFORE THE FIRST

"INPUT MILEAGE AMD GALLONS FOR" "EVERY GAS PURCHASE WHEN ASKED" "FOR M:iG"

"IF AN ERROR IS MADE. ENTER AM,'"

"NEGATIVE NUMBER FDR THE NEXT"

"M AND 0 FOR :3. THIS ..I1LL"

"BACK OUT THE PREVIOUS: ENTRY"

"FROM THE GRAND TOTAL.'

"TO FINISH. ENTER 0. 0"

"UHEN READY TO START...

"INPUT MILEAGE BEFORE THE FIRST"

"Sfti PURCHASE... "T

MILES

MP

GAS PURCHASE. . .

234 00

MILEAGE

SALS

MILES

MPS

M'tGT 2 362 0 ■ 13.3

2 362 0

19. 3

22 0

11.11

M'iS? 2 3795

17. 3

23795

17.3

175

9.3 3

H:LG? 24007

19. 6

24 007

19.6

212

10.31

M3.S? 24213

13.4

2421:3

IS. 4

21 1

1 1 . 46

M&G? 24366.

14. 1

24366

14. 1

143

10. 49

M?<S? 0,0

YOU DROVE 966 MILES ON 39.7 GALLONS OF GAS FOR AN AVERAGE OF 10.76 MILES PER SALLON

READY

167

W Lloyd Milligan 8604 Maywood Dr Columbia SC 29209

Mastermind has become one of the most popular games around these days. fGames and Puzzles magazine gave it their highest rating.) Among other applications, it is used by a number of computer companies to test the programming skills of potential employees. The

game was originated by Invicta Plastics; Mastermind is a trademark of that firm. In its original form, this

HUM 12-JAN-77 BASIC VO1B-02

10 REM MASTER MIND "GODEMAKER" 20 REM CODED IN RT-1.1 BASIC 10 RANDOMIZE

60 PRINT "MASTER MIND GAME.'1

110 REM INITIALIZATION

120 DIM A»(6),Bt(3).C*(3)>D*(3).S<3)

130 FOR .1=0 TO 6

140 READ Atfjl

150 NEXT J

160 DATA " R " , - BL " . ' (3 " t • Y • > " 0 - . " BR ■ . " S " 210 PRINT "WHICH VERSION (1 OR 21 "! 230 INPUT R

240 LET R=R+5\REM R WILL BE USED IN SUBSCRIPT COMPUTATION

270 REM CODE SELECTION

280 FOR J=0 TO 3

290 LET D*<J)--A*(INT<R*RNDi J) j)

300 REM THE SAME COLOR IN MORE THAN ONE POSITION IS LEGAL 330 NEXT J

340 REM GAME PLAY BEGINS HERE. I IS ROW COUNTER

345 REM Bt IS COPY OF D* THAT CAN BE ALTERED TO PREVENT DUPLICATE

344 REM COUNTING. B* IS REFRESHED BEFORE EACH ROW.

350 FOR 1=1 TO 10

355 LET N=0\LET M=0

3AO PRINT "YOUR CHOICE FOR ROW"1

370 INPUT C*(0) I C*< I > ' CI ( :> > • CI. ( 3 )

372 FOR .1 = 0 TO 3

374 LET B«(J)=Dt(.l)

376 NEXT J

380 GOSUB 4 BO

390 IF N-C-4 THEN 420 \REM TRY NOT PERFECT YET

400 PRINT "CONGRATULATIONS! Y0II HAUL BROKEN THE CODE IN"T" ROWS"

410 GO TO 710

4 20 IF K10 THEN 460

475 REM IF STILL IMPERFECT AFTER 10 ROUS' THEN REVEAL CODE 430 PRINT "CORRECT WAS " > II* < 0) > D« (1) » B* < 2) »B*< 3) 440 GO TCI 710 460 REM 470 NEXT I

■130 REM SUBROUTINE TO EVALUATE RESPONSE

490 REM COUNT BLACK FIRST

495 FOR K1=0 TO 3

500 IF CSilKI ) ORtlKJ > THEN 510

505 N=N+1

5:io nf:xt ki

512 REM NOW COUNT WHITE

5)5 FOR K1=0 TO 3

570 FOR K7=0 10 3

522 IF K1=K2 THEN 550

525 IF Ct(Kl>=B$(K1) THEN 550

530 IE Ct(K2)=B1i(K2) THEN 550

535 IF Ct(Kl):>Bt(K7) THEN 550

540 LET M = M f1

545 LET BJ(K2) = "X"\G0 TO 555

547 REM "X" IS DUMMY WRONG VALUE TO PREVENT DUPLICATE COUNT 550 NEXT K2 555 NEXT Kl

590 PRINT "YOU GET"N"BLACK AND"M"WHITE PEGS ON ROW"I 410 RETURN

710 REM SELECT ANOTHER GAME OR STOP

720 PRINT 'ANOTHER GAME — Y = YES> N = NO "i

730 INPUT Rt

740 IF R $="Y" THEN 210

000 END

Listing 1: Text of BASIC Mastermind Codemaker. Minor modifications may be required for other versions of BASIC.

Mastermind

One of the most interesting conventional (ie: noncomputer) games on the market is "Mastermind," distributed by Invicta Plastics, Suite 940, 200 5th Av, New York NY 10010, and available in many local stores. Mastermind involves deductive logic, hypothesis testing and probabilistic inference. In Mastermind, the players take turns as "codemaker" and "codebreaker." The codemaker sets up a concealed row of four colored pegs from a set of Red, BLue, BRown, Green, Yellow and Orange pegs. It is acceptable to use the same color or colors more than once. In version 2, a more advanced game, empty Spaces are also permitted. (The bold face characters are abbreviations recognized by the BASIC program.)

The codebreaker has ten tries (rows) in which to discover the secret arrangement of colors in the concealed row. To input a row to the computer, type the legal abbreviation for the leftmost color on the first line, the next to left on the second line, and so on. After each row has been typed in, the program evaluates the try and types back the following message:

YOU GET n BLACK AND m WHITE PEGS ON ROW i.

The number of black pegs corresponds to the number of correct colors in correct positions, and the number of white pegs gives the number of correct colors in wrong positions. An important rule is that no position in the try is counted more than once. For instance, if you have Green in columns 1 and 3, and the secret code has Green in 3 only, you get a black peg for Green in position 3 but no white peg for Green in 1. If you fail to break the code in ten rows, the codemaker program will tell you the answer and let you play again. It helps to study a missed game to see where you made faulty deductions.

168

Circle 41 5 on inquiry card.

RUN NM2

1V-FEB-77 BASIC V01B-02

MASTER MIND CODEBREAKER

PLEASE BE PATIENT• SOMETIMES I TAKE A FEW MINUTES ON MV MOVE WHICH VERSION <1 OR 2) ?1

MV MOVE FOR ROU 1 IS

YELLOW RED YELLOW GREEN

HOW MANY BLACK PEGS ?1 HOU MANY WHITE PEGS ?1

MY MOVE FOR ROW 2 IS

RED RED RED YELLOW

HOU MANY BLACK PEGS ?0 HOW MANY WHITE PEGS ?1

MY MOVE FOR ROW 3 IS

BLUE GREEN YELLOW BLUE

HOW MANY BLACK PEGS ?0 HOW MANY WHITE PEGS ?2

MY MOVE FOR ROW A IS

GREEN YELLOW GREEN GREEN

HOW MANY BLACK PEGS ?1 HOW MANY WHITE PEGS ?1

MY MOVE FOR ROW 5 IS

YELLOW BLACK GREEN BLACK

HOW MANY BLACK PEGS ?3

MY MOVE FOR ROW 6 IS

YELLOW BLACK GREEN WHITE

HOW MANY BLACK PEGS ?4 THANKS FOR THE GAME

ANOTHER GAME ?N

STOP AT LINE 900

READY

Listing 4: Sample run of BASIC Mastermind Codebreaker. Values in response to the queries "HOW MANY BLACK PEGS?" and "HOW MANY WHITE PEGS?" are typed by the player and correspond to correct colors in correct positions and correct colors in wrong positions in program's try.

strategy used by the program is main strength calculation involving little conceptual sophistication, it is nevertheless a powerfully effective strategy. Indeed it might be said that the BASIC Codebreaker program is a Mastermind Master.

After you have played against both of the programs you may want to link the two programs together so they play against each other. It would be interesting to watch the computer's strategy against itself.

Mastermind is marketed in several forms. MiniMastermind is identical to Mastermind except that only six rows are permitted for completing a game. The programs are easily adapted to play any version by altering index variables, subscripts, etc. It is recommended that a playing set be used when playing against the computer, as the game is somewhat difficult to play in your head. However, paper and pencil can be used if no playing set is available. Interesting computer games usually require long and complex programs. Mastermind is a logical and challenging game which can be programmed in a small system with minimum memory and a simple version of BASIC."

Special 5% Discount during October with this ad

Get the Best in Business Data Processing Systems

Accounting, Inventory, General Ledger, Timesharing Applications

Also a complete line of personal computers and peripherals, including:

• Processor Technology

• IMSAI

• Digital Group

• Compucolor

• TDL

•CROMEMCO

• North Star

• TEI

• DTC

• Books/Magazines

HARDWARE/SOFTWARE SUPPORT

Our experienced staff is ready to help you configure the best system to suit your needs

MAIL ORDERS WELCOME (We accept MasterCharge/BankAmericard)

THE COMPUTER

124 H Blossom Hill Road • San Jose, CA 95123 (408) 226-8383

id iThflca audio

PO BOX 91 ITHACA, N.Y. 14850 (607 ) 273-3271

OUR PRICES

REVEALED

rBOARDS

inquire about quantity and OEM pricing.

Z-80 CPU $35.00

2708/16 EPR0M $25.00

PR0T0B0ARD $25.00

8k STATIC RAM $25.00

16/64 k DYNAMIC

RAM $35.00

PIEASE AOD S200 SHIPPING PER ORDER

CHIPS

Z-80 2 mHz $25.00

4 mHz $35.00

2708EPROM 450 ns $20.00

21L02-1 RAM 450 ns $1.30

21F02-1 RAM 250 ns $1.50

171

Circle 416 on inquiry card.

BYTE's Bits

Multiplication

One of the applications of my homebrew 6800 based system requires a large amount of complex number crunching. A noticeable improvement in performance can be realized by reorganizing complex multiplication.

Conventional complex number multiplication of two numbers requires two additions and four multiplications. This can be reduced to three multiplications and five additions. Brute force multiplication yields the product directly as the cross product sum. That is:

(a+jb) (c+jd) = (ac-bd) + j(ad+cb)

However, these products can be expanded by the addition and subtraction of a constant to shorten the computation time.

(a+jb) (c+jd) = (ac-bd+ad-ad) + j(ad+cb+ac-ac)

= ((a-b)d + (c-d)a + j((a+b)c - a(c-d)) = (y+x) + j(x-z)

Where: x = (a b) c y = (a-b)d z = c-d a

William Jackson 24 Coldstream Dr Munster Ontario CANADA KOA 3PO"

Music and Poetry by Computer?

The Association of Computer Machinery (ACM) in cooperation with New York University is presenting a Conference on Computing in the Arts and Humanities to be held in Warren Weaver Hall at New York University, October 21 to 23 1977. The programs include: computer generated video tape and film works; a concert of music composed with the aid of computers; poetry by computer; a computer fashion show; literary analysis using computers; and more.

For registration information, contact Dr Naomi Sagar, Conference Chairperson, NYU Linguistic String Project, 251 Mercer St, New York NY 10012, (212) 598-2294, ext 5."

An IEEE Hands-on Microcomputer Tutorial

The Nuclear and Plasma Sciences Society of the IEEE, in conjunction with their annual symposium, are sponsoring a hands-on microcomputer applications tutorial. It will be held Saturday, October 22 1977 from 9:00 to 5:00 at the Sheraton Palace Hotel, San Francisco. The tutorial is slanted toward people with computer backgrounds who would like a hands-on experience on actual problems. Suitcase trainers based on the

8080 will be used. Eugene Fisher, Lawrence Livermore Laboratory, and Michael Maples, M and E Associates will head a group of microcomputer systems engineers, teachers and consultants in leading the workshop. Projects include a stopwatch timer display and a set point temperature controller. For further information on registration, write to A J Stripeika, Lawrence Livermore Laboratory, POB 808, Livermore CA 94550. The registration fee is $40 (lunch and coffee included). Material will be sent out for advance study. To obtain maximum benefit from the tutorial it is recommended that attendees study the material in advance. Class will be limited."

The Microcomputer Connection

The 24th annual IEEE Fall Conference will be held at the Town House Convention Center in Cedar Rapids IA

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)

USES

88-SPM Clock Module

88-UFC Frequency Counter Module 88-MODEM Originate/Answer MODEM

GENERAL PURPOSE PERIPHERALS

MCTK Morse Code Trainer/Keyer

TSM Temperature Sensing Module

DAC8 Eight Bit Digital to

Analog Converter

Your computer keeps time of day regardless of what program it is executing. Applications include event logging, data entry, ham radio, etc. Provision for battery backup is included.

Measure frequencies up to 600 MHz or period with 1/10 microsecond resolution. Computer can monitor four separate inputs under software control

Use your computer to call other computer systems such as large timesharing systems Also allows other computer terminals to "dial-up" your computer. Auto-dialer is included so your computer can call other computers under software control. Operates at 110, 134,5, 150, 300, and 600 band.

Hard/Software package which allows your computer to teach Morse Code, key your transmitter, and send prestored messages. Uses "NEW CODE METHOD" for training.

Use it to measure inside and/or outside temperature for computerized climate control systems, etc

Requires one eight bit TTL level latched parallel output port. Use it to produce computer music or to drive voltage controlled devices.

KIT PRICE

$96.00

$179.00 $245.00

$29.00 $24.00 $19.00

Terms: Payment with order. Shipment prepaid. Delivery is stock to 30 days. Write or call tor detailed product brochures.

Circle 417 on inquiry card.

172

Raster Scan Graphics

These pictures were created by David Koh MD, Dept of Cardiology RG-20, University of Washington, Seattle WA 98195, using a homebrew raster scan graphics interface based on Thomas Buschbach's article in the November 1976 BYTE, page 32. The circuit has been modifed to be compatible with the Southwest Technical Products bus and its 6800 processor signals. Timing signals are derived from a Southwest Technical Products CT-1024 terminal. Graphics and alphanumeric characters can be displayed either simultaneously or separately.

Resolution is 256 by 160, which

>

on September 29 and 30 1977. The topic will be "The Microcomputer Connection" and 12 speakers will deliver talks on microcomputer applications in industry, government and the home. Also featured are product and equipment exhibits from a variety of manufacturers. The Fall Conference is open to the public; the fee is $4 for nonmembers, $2 for IEEE members and $1 for students.

For more information, contact Firooz Etemad, IEEE Fall Conference, POB 451, Marion IA 52302."

represents 5 K bytes of programmable memory at hexadecimal locations 6000 to 73FF. The cartoons were drawn freehand using a surplus Bolt Baranek and Newman X-Y digitizer purchased from Delta Electronics. This unit has a resolution of 128 by 128. For high resolution work, this region can be moved around under software control anywhere in the display area."

The Midwest Affiliation of Computer Clubs' Convention

Over 2500 people descended on Cleveland's Bond Court Hotel June 10, 11 and 12 to attend the Midwest Affilation of Computer Clubs' annual convention. Manufacturers were in abundance displaying their products. A number of people spoke at the technical sessions, including representatives of Intel and Texas Instruments, both of whom unveiled new products to receptive audiences. An excellent closed circuit video monitor system was also available for those who could not get into the well-attended lectures. All in all, it was a well-run and interesting convention."

Ahem. AMI Makes a Sewing Machine LSI Control Chip

The new Singer Athena sewing machine features a novel LSI integrated circuit that has 24 different patterns permanently stored in its read only memory. The chip was designed by American Microsystems and has a capacity of 6 K bytes. It also controls the sequences of variable length pulses going to linear servo actuators that control needle and fabric movement.

The computerized appliance is here to stay, and we can look forward to many happy hours of digital darting and byte based basting."

New Micro Interfacing Workshop

Wintek has added a 2 day "Hands on Interfacing Workshop" to their standard 3 day "Hands on Microprocessor Short Course with Free Take Home Microcomputer." The new interfacing workshop includes analog to digital and digital to analog conversion, signal conditioning, keyboard scanning and decoding, LED display driving, motor position, velocity control and related topics. Tuition is $299. The fall 1977 schedule includes workshops in Dallas, Houston,

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 "KCstandard "/biphase encoded cassette interfacing at 30, 60, 120, or 240 bytes per second, and full-duplex RS-232 data exchange at 300- to 9600-baud. Kit, including instruction manual, only $89.95*.

* Assembled and tested, $119.95. Add 5% for shipping. Texas residents add 5% sales tax. BAC/MC available.

PERCOM DATA COMPANY, INC.

4021 WINDSOR . GARLAND, TEXAS 75042

(214) 276-1968

PerCom 'peripherals for personal computing'

173

Washington DC, Melbourne FL, Denver, Palo Alto, San Diego, Indianapolis, Boston, Detroit, Chicago and Puerto Rico. For more information call (317) 742-6802 or write Wintek Corporation, 902 N 9th St, Lafayette IN 47904."

Programming Tidbit

The normal mode of comparison for

equality between two numbers, A and B, is simply the equivalent of the following statement in whatever language is used:

IF A = B THEN ....

However, in many contexts this is not necessarily the test to do. Suppose in a pattern recognition program, for instance, you merely want to find out if the two variables A and B are within the right "ballpark" of each other, which

ALL TOGETHER NOW!

The acclaimed Equinox 100^ mainframe kit ($799) is now a complete S-100 system.

Because now there is an Equinox 100® I/O interface kit ($120) that handles the hard work of interfacing all your peripherals.

And Equinox 100ff" 4K memory kits ($109). Assembled 8K memory boards ($188). EQU/ATE^ editor/assembler and' BASIC-EQ-" software on cassettes.

It all goes together. It all works together. It's all together now at special system prices.

See The Equinox System® at your local computer shop. Call toll-free to 800-648-5311. BAC/MC accepted. Or write Equinox Division, Parasitic Engineering, P.O. Box 6314,

is the range DELTA. The semantics of the test computation must then be changed, and the first impulse might be to use the form:

IF (A-B) <C DELTA THEN ....

However, what happens when B is greater than A and DELTA is a positive number? This would give a true result all the time, independent of the true magnitude of the difference between the two. Since DELTA is a positive number by assumption, we must force the difference being checked to be a positive value also. This is where it is handy to have a language with an absolute value function ABS to force a change of algebraic sign if its argument is negative. Rewriting this comparison gives:

IF ABS (A-B) <DELTA THEN ....

If your interpreter or compiler has no absolute value function, all is not lost, however. You can still check for a differential range by coding the equivalent:

IF ((A-B<0

and (A-B > DELTA)

or ((A-B) >0

and (A-B) < DELTA)

THEN ....

Here the terms and and or have been used for logical functions relating different arithmetic expressions and parentheses are used for precedence of operations. Add this thought to your bag of programming tricks and techniques; it might be quite useful."

BYTE's Bugs

IBM Selectric Interface

Regarding "Interfacing The IBM Selectric Keyboard Printer" by Dan Fylstra, in June 1977 BYTE, page 46, see a letter from Beardsley Ruml on page 32 of this issue, paragraph 4, for comments about:

1. Proper wiring of IBM 73x contacts for the purpose of implementing closed loop feedback. Mr Ruml states that Dan's suggestion of a proposed method for implementing feedback will not work. (Dan's interface was open loop, worst case timing.)

2. The IBM specified current and voltage used with operating the switches should not be ignored, since above the minimum 10 V, 10 mA specification there is enough current to "keep the contacts clean.""

THE EQUINOX SYSTEM1" When you put it together, it's really together.

Circle 418 on inquiry card.

174

Program Structure

The BASIC Mastermind Codemaker shown in listing 1 requires only 2 K bytes for the source code including remarks. RND and INT (random number and integer) are the only special functions used; no string functions are needed. This program can be easily modified to run under a version of BASIC that does not support string variables by substituting numbers for the color abbreviations. The secret row of colored pegs is set up by a call to the random number generator in line 290. Note that for version 1 games, R=6 and for version 2, R=7 permitting the assignment of empty Spaces. Black peg responses (exact correspondences) are counted from lines 490 to 510, and white peg responses (correct color, wrong position) are counted from lines 512 to 555.

An example of play against the computer program is given in listing 2. The first row of input is a guess. The second row is designed to test whether there are any repeated colors from the first try in the secret code. The codemaker's response tells us that one of the colors in the first try is repeated. In row 3 we hypothesize that BLue is the correct color in row 2 and that Orange is the repeated color from row 1. The codemaker's response constitutes a stroke of luck for us as we learn that BRown is the correct color on row 2 and that Red and Orange can be eliminated from row 1. In row 4 we hypothesize that Green is the correct color in the first row, but alas, we are mistaken. Now only two arrangements are possible. We have a 50% chance of getting it on row 5, but fate is cruel.

After playing the Codebreaker half of the Mastermind game you will learn how to get the most information out of each move. I leave these discoveries to the reader.

After trying to break the codes produced by the computer our next step will of course be to get even with it and see how good it is at breaking codes. The Mastermind Codebreaker program attempts to decode input codes. A word of warning; the Codebreaker program is an excellent player.

Listing 2: Example of play against BASIC Mastermind Codemaker. The text gives an analysis of the moves.

RUN

MM 13-.JAN-77 BASIC V01B-02

MASTER MIND GAME

WHICH VERSION ( t OR 2) ? I

YOUR CHOICE FOR ROW i

?R

?0 ?Q

roll GFT 1 BLACK ANB I WHITE PEGS ON ROW 1 YOUR CHOICE FOR rdii 2

7BL 'BR 'BR

YOU GET 1 Bl ACL AND 0 WHITE PEGS ON ROW 2 YOUR CHOTCF FOR ROW 3

?R 'Bl. TO '0

YOU GET O Bl ACK AND O WHITE PEGS ON ROW 3 YOUR CHOICF FOR ROW 4

TY '••Y

*a

?BR

YOU GFT I BLACK AND 3 WHITE PEGS ON ROW 4 YOUR CHOICE FOR ROW 5 ' Y

'G 'BR

7Y

YOU GET 2 BLACK AND 2 WHtTE PEGS ON ROW 5 YOUR CHOICE FOR ROW A

?G

rt

?BR

'V

YOU GET 4 Bl ACk AND 0 WHITE PEGS ON ROW 6 CONGRATULATIONS! YOU HAVE BROKEN THE CODE IN A ROWS ANOTHER GAME — Y = YES, N - NO ?N

READY

Listing 3: Text of BASIC Mastermind Codebreaker. Minor modifications may be required for other versions of BASIC.

i

MM2 19-FEB-77 BASIC V01B-02

10 REM MASTER MIND 1CODEBREAKER1

20 REM CODED IN RT-11 BASIC

30 RANDOMIZE

40 DIM R«<9>3> rS<9>l>

45 DIM A»<6>rB»<3)rC»(3),D«(3>

HO REM INITIALIZATION

60 FOR J=0 TO 6

70 READ A*(J)

BO NEXT J

90 DATA "RED* ' 'BLUE* f"GREEN"r•YELLOW'»"BLACK"r"WHITE"►"SPACE"

100 LET L0=0 110 LET L1=0 120 LET L2=0 130 LET L3=0

140 PRINT "MASTER MIND CODEBREAKER'

145 PRINT "PLEASE BE PATIENT. SOMETIMES I TAKE A FEW MINUTES ON MY MOVE" 150 PRINT "WHICH VERSION (1 OR 2) "f 160 INPUT V 170 LET V=V+5

190 REM ASSIGN COLDRS AT RANDOM FOR ROW 1 190 FOR J=0 TO 3

200 LET R«(OrJ)=A*(INT(U*RND( J) ) ) 210 NEXT J

220 REM START MAIN PLAY OF GAME HERE 230 REM I IS THE ROW COUNTER 240 FOR 1=0 TO 9 245 PRINT

250 PRINT "MY MOUE FOR ROWI + 1" IS"

260 PRINT R«(I,0),R*(I,1)>R*<I,2),R*<I,3)

169

Listing 3, continued:

270 PRINT 'HOW MANY BLACK PEGS "i

280 INPUT S(I,0>

290 IF S<I,0K>4 THEN 320

300 FRINT "THANKS FOR THE GAME'

305 PRINT

310 GO TO 870

320 IF S< 1.0)03 THEN 360

330 LET S(I>1)=0\REM IF 3 BLACKS THEN 0 WHITES 340 GO TO 380

360 PRINT "HOW MANY WHITE PEGS "!

370 INPUT S(I,1>

380 REM GENERATE HYPOTHESIS

390 FOR I0=L0 TO U-J

■tOO FOR I1=L1 TO U-l

410 FOR I2=L2 TO U-l

420 FOR I3=L3 TO V-l

430 LET Dt<0>=AKIO>

440 LET D«(1)=A$(I1)

450 LET D*(2)=A«(I2)

460 LET D»(3)=A*<I3>

470 REM CHECK ALL ROWS FROM FIRST TO CURRENT FOR CONSISTENCY

490 FOR R=0 TO I

500 FOR J=0 TO 3

510 LET C*(J)=R*(R,J)

520 LET B$(J>=D$<J)

530 NEXT J

540 REM USE ROW EVALUATION SUBROUTINE TO CHECK CONSISTENCY OF 550 REM HYPOTHESIS AGAINST EACH ROW 555 LET N=0\LET M=0 560 GOSUB 910

570 REM CHECK FOR AGREEMENT OF BLACK 8 WHITE COUNT 580 IF NOSIRiO! THEN 700 590 IF MOSCRrl) THEN 700 600 NEXT R

610 REM MAKE SURE THAT HYPOTHESIS ROW HOESNT DUPLICATE ROW 1

620 LET Z=6

630 FOR J=0 TO 3

640 IF R$<Or J)Oll(J) THEN 660

650 LET Z = Z+1

660 NEXT J

670 IF Z = 4 THEN 700

690 GO TO 820

700 NEXT 13

710 NEXT 12

720 NEXT II

730 NEXT 10

740 PRINT ' I HAVE REACHED AN IMPASSE IN MY THINKING"

750 PRINT "COULD YOU HAVE MADE AN ERROR?"

760 GO TO 870

770 LET 10=10

780 LET L1 = I1

790 LET L2 = I2

800 LET 1.3=13+1

810 REM DO NOT RECHECK ELIMINATED POSSIBILITIES

820 REM ASSIGN NEXT ROW

830 FOR J=0 TO 3

840 LET R*(I+1»J>=D*CJ>

845 NEXT J

850 NEXT I

840 PRINT "I AM STUMPED — YOU WIN"

070 FRINT "ANOTHER GAME ";

H80 INPUT Rt

890 IF R*="Y" THEN 150

900 STOP

910 REM SUBROUTINE TO EVALUATE RESPONSE

920 REM COUNT BLACKS FIRST

930 FOR J1=0 TO 3

940 IF C*( Jl JOB* < Jl > THEN 960

950 LET N=N+1

960 NEXT Jl

970 REM NOW COUNT WHITES

980 FOR J1=0 TO 3

990 FOR J2=0 TO 3

1000 IF J1=J2 THEN 1080

1010 IF C*<J1)=B*(J1) THEN 1080

1020 IF C*(J2)=B*<J2> THEN 1080

1030 IF C* ( Jl )OB*( J2 ) THEN 1080

1040 LET M=M+1

1050 LET B«(J2)='X"\REM DUMMY WRONG VALUE

1070 GO TO 1090

1080 NEXT J2

1090 NEXT Jl

1100 RETURN

1110 STOP

2000 END

READY

Strategy

Two simple rules determine the Codebreaker program's strategy: row 1 is a random try (all possible arrangements are equally probable); each subsequent row is an arrangement which cannot be disproven on the basis of previous results. When playing Mastermind the human player may try an arrangement which is known

to be incorrect in order to obtain specific information; this kind of strategy is not used by the BASIC program.

Program Structure

The BASIC Mastermind Codebreaker shown in listing 3 requires less than 3 K bytes for the source code, including remarks. RND and INT are the only special functions used. Play begins with a call to the random number generator for row 1 at line 200.

After the program types a row it requests feedback information about the try. The number of correct colors in correct positions is requested at line 270. If there are two or fewer black pegs for the try, the program asks for the number of correct colors in incorrect positions at line 360.

After receiving this information the program constructs a table of all possible arrangements, one row at a time (lines 390 to 730). Each row is internally hypothesized to be the hidden code and the question is asked: "How many black pegs and how many white pegs would have been awarded to each try from the first to the current row if the hypothesis were true?" These values are calculated internally by the subroutine at lines 910 to 1100. This is the same subroutine used by the Codemaker program. If there is a discrepancy between the calculated value and the actual value awarded for any row, the current hypothesis is rejected and the next row in the table is constructed. The variables LO, L1, L2 and |_3 mark the program's place in the table of possible arrangements between tries so that rejected arrangements are not considered again.

Since row 1 is constructed randomly and therefore occupies an unknown position in the table, it is necessary to check each try to ascertain that it does not duplicate the first row. This check is conducted from lines 610 to 670. If the program exhausts ten tries without breaking the code, it prints the message at line 860. I would be interested to hear if this ever happens.

When evaluating the program's try it is necessary to count black and white pegs carefully. If you make a mistake counting the number of exact or inexact correspondences, the program may exhaust the table of all possible arrangements without finding a possibly valid try. In this event, the message at lines 740 to 750 is printed.

Summary

An example of the computer's play is given in listing 4. Note that although the

170

The Thinking Computer: Mind Inside

Matter by Bertram Raphael. Artificial intelligence, or Al, is the branch of computer science concerned with making computers "smarter." It is a growing, vital field that is, unfortunately, the subject of much popular misunderstanding. The Thinking Computer: Mind Inside Matter is a lucid introduction to Al that does much to overcome this misunderstanding. With a minimum of technical jargon, this book discusses the capabilities of modern digital computers and how they are being used in contemporary Al research. It discusses the progress of Al, the goals, and the variety of current approaches to making the computer more intelligent. $6.95.

"T

m

1

Projects in Sight, Sound, & Sensation

by Mitchell Waite. Dedicated "to all space cowboys." Detailed theory and practice of seven fascinating amateur electronics projects, along with a complete and detailed appendix on how to make PC boards. The projects included in this book are: The Syntheshape, an art generator that can be used to generate innumerable complex and beautiful patterns on the screen of an oscilloscope. An electronic music box that will play over 3000 possible melodies when the lid is lifted. A way to control muscle tension explained in chapter 4. A muscle-wave biofeedback monitor can be used to achieve deep relaxation. The laser-light show transfers light into fascinating patterns in a darkened room. Other projects include a Kirlian camera, a digital ESP machine, and neonlight randomizer. $5.25.

Mind Massagers from BITS

The Great International Math On Keys

Book, from Texas Instruments. Do you need a numerical algorithm for calculating exchange rates in a hotel on a foreign trip? Or figuring those mysterious "points" when facing the sanctimonious charisma of a banker at mortgage time? This book is a compendium of simple explanations and step by step procedures for accomplishing numerical solutions to numerous commonly encountered situations in daily life. Each entry is characterized by a statement of the problem, including the elements of theory required, and the keystrokes needed to solve the problem on an algebraic entry calculator. This is an invaluable sourcebook of information for the person who is inclined to manipulate numbers. $4.95.

How to Solve Problems by Wayne A

Wickelgren. When confronted by a problem, many of us spend more time puzzling over how to solve it than in actually doing so. This book analyzes and systematizes the basic methods of solving mathematical problems. The methods are described in terms of a modern theory derived from research in computer simulation of thinking. Examples illustrating these methods include chess problems, logical puzzles, and railroad switching problems frequently encountered in science and engineering. Whether your interest in solving problems is professional, recreational, or both, you will find this a helpful book. $6.50 softcover.

Chess Skill in Man and Machine edited

by Peter W Frey. This is a most fascinating book, concerning itself with the when, how, and why of computer chess. The when describes past ACM computer chess tournaments, with the details of more than a dozen games. The how consists of the basics of both human chess skill and computer chess theory. It includes a detailed description of the best computer chess program to date (Northwestern University's CHESS 4.5), an end game program called PEASANT, and of various search strategies and heuristic computer chess theory which should enable one to write his own chess program. The book ends with the why concerning the contributions, now and in the future, of computer chess to understanding artificial intelligence, human intelligence, and learning. The only difficulty for the hobbyist's computer chess program is the need for a large computer for the fast processing of search strategies and large core storage for the program and its results. $14.80 hardcover.

Send to:

BITS, Inc 70 Main St

Peterborough NH 03458

Check payment method: My check is enclosed

Bill my MC No.

_Bill my BAC No.

Exp. date Exp. date

Total for all books checked Postage, 50 cents per book

for books

Grand Total

$

Name

Address

City

Signature

State

Zip

Prices shown subject to change.

You may photocopy this page if you wish to leave your BYTE intact.

All orders prepaid.

In unusual cases processing may exceed 30 days.

175

Circle 383 on inquiry card.

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 gambling 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.

References and Robots from BITS

BUILD YOUR

BQBDT

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 microprocessor 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 Technology. $12.50.

Suftwun-lfeditii

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 methods 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 designs. You'll find a thick hardcover textbook 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, 50 cents per book

for books

Grand Total

Name

$ $

Address

City

State

_Zip_

Signature

Prices shown subject to change.

You may photocopy this page if you wish to leave your BYTE intact.

All orders prepaid.

In unusual cases, processing may exceed 30 days.

Circle 383 on inquiry card.

176

Globs and Newsletters

Amateur Computer Club-Essex ENGLAND

In comparison to most hobbyist groups the English-based Amateur Computer Club is an ancient giant. They are now in their fifth year and are approaching 1000 members. Most of course are located in Great Britain, but many live in other European countries, and some in such remote corners of the world as Singapore and North Carolina.

Communication is via a newsletter which is published six times per year and contains articles on hardware, software and other pertinent technical data. The subscription rate is £2, although four American dollars would be equally acceptable.

A word about the club's name. When it was founded five years ago the only other computer group they had heard of was Stephen Gray's Amateur Computer Society. At that time they had no idea that interest in computers would take off to the extent that local clubs would become viable, so they thus have the distinction of being the Amateur Computer Club.

Write Amateur Computer Club at 7 Dordells, Basildon, Essex ENGLAND.

Apple Core Computer Club

According to Apple Core president Jerry Starzinski, AC^ was formed in May of this year, can boast 14 members, two complete SwTPC 6800 systems, two partial SwTPC 6800s in need of terminals, and

various individual members looking at some newer entries like Jupiter, Compucolor and Apple II.

The Apple Core Computer Club holds regular meetings at 7:00 PM on the last Wednesday of the month at J M Perry Technical Institute's Industrial Science Building, 2011 W Washington in Yakima WA. For more information write Jerry P Starzinski, 220 N 2nd St #17, Yakima WA 98901, or call (509) 248-1620 between 9 and 9:30 AM.

A Strange and Clandestine Group

An article by managing editor Joel Miller in Homebrew Computer Club's Newsletter has disclosed the existence of a new and potentially dangerous group of underground hackers. At least part of their covert activity centers around the publication of 777e Pit.

The text of Mr Miller's article reads as follows:

A few days ago, a mysteriously unsigned envelope was placed on my desk in the Fairchild Publications Department and, to my delight, it contained the last five issues of an informal underground microprocessor newsletter called the Effate Pit, "a journal for and by a small underground band of F8 users who can't afford a Formulator." An introductory statement informs us that "the chief users. . .are engineers working for a major semiconductor company," and that "you can't even get on the mailing list except by asking around in the right places." The issues contained a number of very interesting applications-oriented articles by such nefarious authors as "The Mole," "Captain Midnight," "The Scrounger" and "Poto."

After a little detective work con

Conducted by Peter Travisano and David Wozmak

MHHHHHiHHiHIIHHHHi Would your club benefit from a write-up in BYTE's Clubs and Newsletters section? It's easy enough to arrange. Just drop a line to BYTE, 70 Main St, Peterborough. NH 03458, attn: Clubs and Newsletters, with the information you'd like printed. Naturally, we can't cover every club every month, but we do make a special effort to mention new clubs and those which correspond regularly.

It is important to note that dated material must be submitted three months in advance of the event due to our production schedule.

Those people looking for a more complete listing of computer clubs should refer to January 1977 BYTE."

WL Settle for a HVQr® wU You Cm fat a BUSS ?

Lets

compare mec/tums ofHERWK/T 7 t'hforymt/on eKchsflpe for Computer (/sers:

Hue® R/ICO

Annual cosf

Publishtd CWfer^

-hLn ~k.,~, Tht April issue ofBusi orovi/e/ -fecWicd

/fit /WO information on fti ISI-fEifavkJ Arittmet,:

F/rsf/i

issue

?

flanufocfurer

" A

hPRIL '77

//irormaT/on ot, ,

Chip. In Miy we rtcomme-r\<ki retina for thosz neWTo microcomputers. The. June Buss polrilei out 3 Competitive DrpJuct feafur/w ioth an /'tfhlfwnt-frontp3nt\ 3ln<{ the S-JOO bus. ^jaiA ih 3ulu, Buss's M&MijmT viewpoint' mWiftskd itself in cillinc ifh^Tien to J less expensive syrttm. <jf co*p3<%h)z p'Wtf. AT fk xvi fmtj 8jj$$ prtisti'+k, Hi's wirrfb* rcsid&Ki, a/<* ASFi/MS cfavy/i- Subicrite, to duss flow $f the sptcal rik, °f ?6.IZ 2nd •./null ri.cei<vi o"r upcoming comifiior. £>f IJ8

ioj Cirmolort's fef vzpof. Be.d of all,

yowilljtX in en & t'n(i, wdi3>wi rf inferm-abion

Tor ir\0't

in tht U/ftmhtr Byte*. A s^mary of ntus INDEPENDENT fro* this, ilrt»2<i^5i wdtn. Jin JWy.

H

irt, //its

He Syremitr flyfe, f\ senary of nt/us

BUSS /$: bi-dirccti'oml, linking conxpuier users into tht mu/fi-proctssincj mtQftcompufer formed by its vtiitrs.Xf transfers information ntussary to

YOUR. Cental process///? unit

SeWV6.13. to BUSSr% CW/S Floto

£67 W/LLOW £T 'B NEW HAVEN CT 06511

177

Circle 419 on inquiry card.

Circle 420 on inquiry card.

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 mistake occurs when working in an environment that provides a continuous parallel to industry but neglects to provide the professional growth that is necessary to insure career development and avoid potential future frustrations. To insulate yourself against this happenstance, check with our professional staff. They will advise you on your career development as it relates to your technical development.

Our areas of specialization are:

Software Development Computer Graphics Data Base Computer Design Simulation and Modeling Telecommunications Hardware/Software Interface

For further information either call or send resume to:

PERRI-WHITE ASSOCIATES 50 FRANKLIN STREET BOSTON, MASS. 02110 (617) 423-1900

PERRI-WHITE & ASSOCIATES, INC. 5373 W. ALABAMA PLACE HOUSTON, TEXAS 77056 (713) 960-0350

Management Consultants Specializing in Data Processing/Systems Engineering All Replies Held In Strictest Confidence

Need Hard Copy?

tacting my numerous informants, snitches, and ratfinks scattered throughout the company, I finally made contact with The Mole, the newsletter's editor, who—despite my not knowing this week's passwordwas eager to talk. "Although F8 parts are easy to get here," says The Mole, "a lot of us are starting to fool around with other stuff, like the Z-80. (So we've) solved the problem of newsletter content by changing the name of the rag (to The Pit) and moving further underground to avoid creditors and others of a similar interfering bent."

The Pit has published articles such as "A Twelve IC TV Typewriter," "Parallel Handshake Interface From An ASCII Keyboard," "A Simple-ButSlow Analog Output For The F8," "Dynamic RAM For The F8," "Keypad Data Loader" among others. An especially interesting article by The Mole uses the F8 as a controller for surplus Diablo printer mechanisms that are now available on the hobby market.

Thanks for the story, Joel.

Should The Mole and his accomplices care to surface, BYTE would of course be happy to use its good offices to spread the word.

And Speaking of Homebrew. . .

Bay area hobbyists who haven't done so already should look into Homebrew, a inventive and well-established organization. Drop a line to Homebrew Computer Club, POB 626, Mountain View CA 94042 and find out more.

Nebraska Clubs

OMAHA, the Omaha Microprocessor Amateur Hobbyist Association, has recently celebrated its first anniversary. Club accomplishments to date include the financing of an Altair 8080, an audio cassette interface and an E & L Instruments MMD1—a micro designed for educational and experimental purposes. The group currently meets twice a month at Northern Natural Gas Company in Omaha.

One of OMAHA's board members, Lt Tom Smith, has formed a club in Bellevue NE called MACH (no explanation of the acronym was given). The club meets the second Tuesday of the month in the Commercial Federal Bldg, Hwy 73-75 and Galvin Rd, Bellevue NE.

Interested persons should contact

Circle 421 on inquiry card.

178

Circle 422 on inquiry card.

OMAHA, c/o Rita Bianchi, S&DP-4th Floor, Northern Natural Gas, 2222 Dodge, Omaha NE 68102, or MACH, c/o Thomas Smith, 2708 Calhoun St, Bellevue NE 68005.

Portland Computer Society

Portland Computer Society has recently been in touch. Meetings are held on third Saturdays at 1:00 PM at Portland Community College. For details write to PCS's new address, 3763 SE Division, Portland OR 97202.

Houston Amateur Microcomputer Club

Obviously there is strong interest in personal computing in the Houston area. One reflection of this is the growth of the Houston Amateur Microcomputer Club. Membership is now over the 100 mark, and according to their newsletter Nybble, they are preparing to make a significant contribution both in Houston and nationally. Contact HAMC, c/o Troxel Ballou, 3842 Grennoch, Houston TX 77025, or call (713) 661-6806.

Philadelphia Area Computer Society

Like Houston and countless other clubs PACS has grown dramatically with the personal computing boom. Their newsletter, The Data Bus, has doubled in size and improved in quality over the past four months. Club activity centers around the cosponsoring of the annual Trenton Computer Festival, an active group purchase effort and a major club project on 6502 applications.

Meetings are held on the third Saturday of the month at 2:00 PM at the LaSalle College Science Building, 20th and Olney St, Philadelphia; workshops, courses and subgroups meet prior to the club meeting, usually at 12:00.

You can write Philadelphia Area Computer Society at POB 1954, Philadelphia PA 19105, or call (215) 923-3299 or (215) 829-6745.

PET User Group

A user group has been formed for people interested in the Commodore PET 2001 computer. For those unfamiliar with the PET it is a compact computer with integrated keyboard, CRT with character and graphics capability, cassette drive, 14 K ROM operating system including full 8 K BASIC, and 4 K RAM user space.

The purpose of the PET user group will be to share and exchange applications,

BUILD YOUR OWN VIDEO TERMINAL FOR

$85 "PLUS"

• Serial ASCII or BAUDOT

• Full X-Y Cursor control

• 128 Characters, including upper and lower case

• 16 lines X 6* characters

• S100 Compatability

• Operates on 7VDC unregulated, 6.3 VAC @ 0.75 A

The SCT-100 Single Card Terminal interfaces directly to any computer or modem having serial ASCII or BAUDOT capability. It requires only the addition of a standard ASCII keyboard, and a TV monitor. It is available as a partial kit for $85.00 including the PC board, character generator ROM, and the 3870 microcomputer. The complete SCT-100 kit is $155.00 ($185.00 prewired & tested).

To order, call or write today. MC, BAC Accepted.

VECTRON P.O.Box //208S7, Dallas, Texas, 75220 Phone (21<f) 350-5291

21 START-AT-HOME COMPUTER BUSINESSES

in the shoestring, start-at-home

computer business handbook

CONSULT I NG •PROGRAMMING ©SOFTWARE PACKAGES • COM FREELANCE WRITING •SEMINARS • TAPE/DISC CLEANING FIELD SERVICE • SYSTEMS HOUSES # LEAS ING0SUPPLIES PUBLISHING • TI ME BR0KERS • HARDWARE DISTRIBUTORS SALES AGENCIES # HEADHUNT ING • TEMPORARY SERVICES USED COMPUTERS© FINDER'S FEES»SCRAP COMPONENTS COMPUTER PRODUCTS AND SERVICES FOR THE HOME

Plus - - hundreds of ideas on moonlighting, going full-time, image building, revenue building, bidding, contracts, marketing, professionalism, and much more. No career planning tool like it ever published. Order now and if you're not completely satisfied, send it back within 30 days for a full and immediate refund.

'81 X II ringbound »I13 pp. • SI 2.0 0

DRTRSERRCH

730 WAUKEGAN ROAD • SUITE 108 OEERFIELO. ILLINOIS 60015

Rush copies of "The Shoestring Start-At-Home

Computer Business Handbook to me right away

NAME/COMPANY

ADDRESS

CITY/STATE/ZIP

□ CHECK ENCLOSED f~~JB A N KAMER I CARD r~JM A S TERCHARGE

//

179

Circle 423 on inquiry card.

Circle 424 on inquiry card.

"We've Got It!!

A NEW ADDITION TO OUR STOCK OF SURPLUS ELECTRONIC EQUIPMENT / A

The IBM Selectric Based Ff~' I/O Terminal $695.00

■ INTEGRAL MODEM

• BCD OR CORRESPONDENCE CODE

• TABLETOP MOUNTING

• 22"W, 22"D X 8"H, 58 LBS

• ASCII CONVERSION AVAILABLE

• DOCUMENTATION INCLUDED

OTHER SURPLUS STOCK

• KEYBOARDS - ASCII ENCODED $40.00—$60.00

• CRT TERMINALS

• TAPE DRIVES $650.00

• EQUIPMENT CABINETS ■ POWER SUPPLIES

PRINTERS

TRANSFORMERS

WIRE-CABLE

/dUi Send for a free catalog or call Bill Blaney yip/ toll free 800-256-1036. In N.H. 603-885-3705

WQFLQWIDE ELECTPOriCS IIIC.

10 Flagstone Drive, Hudson, New Hampshire 03051

Many Other Items

Visit Our Store

I

16K RAM raffl

_JMI0.9.°^5L°AX.!S,JJJi,itiK^Q._,

19" RAC

I I I I I I I I L

RUGGED 20 SLOTS EXTRUDED CHANNELS

00 BUS CARD CAGE

i

BUS TERMINATION GROUND PLANE SOLDER MASK 12.25"H x 8"D

ECT-100 CARD CAGE & MOTHER BOARD .... KIT $100 ECT-100-F with 20 CONNECTORS & GUIDES .. KIT $200 ECT-100-8080 CARD CAGE MICROCOMPUTER KIT $320 ECT-100-Z80 CARD CAGE MICROCOMPUTER . KIT $420 PS HEAVY DUTY 30A POWER SUPPLY KIT $100

10 SLOT TABLE TOP SYSTEMS

WRITE FOR SYSTEMS VARIATIONS & LOW PRICES

Ki CPU's

8080 or Z80

1 NEED NO FRONT PANEL JUMP0N RESET CIRCUIT

MOTHER BOARDS 10, 20 or 21 SLOTS . .$40, $60 or $62 PROTOTYPING BOARD .$28 EXTENDER CARD .. .$24 SHIPPING EXTRA

ELECTRONIC CONTROL TECHNOLOGY

P.O. BOX 6, UNION, NEW JERSEY 07083 (201) 686-8080

I I I I I I I I J

programs and hardware expansion techniques, and to provide general user feedback. The first year membership is $5 and will include the User Notes publication. Contact Gene Beals, POB 371, Montgomeryville PA 18936.

"Name the Users' Group" Contest

A 5 year membership is the prize in a "name the users' group" contest sponsored by computer hobbyists exchanging information on the use of Heathkits. Contestants should of course avoid submitting entries which have been registered as trademarks, since these will not be considered.

Entries and requests for further information should be sent to Charles A Floto, 267 Willow St, Apt 23, New Haven CT 06511.

Southern Nevada

Southern Nevada Personal Computing Society was formed in June of this year and as of this writing (July) was still in the embryonic stage with meeting times and places still unresolved. Membership is open to Clark county residents and nonresident students of Clark County educational institutions. More information should be available by the time this issue of BYTE reaches its readers. To learn more about SNPCS write 1405 Lucilee St, Las Vegas NV 89101, or call (702) 642-0212.

Hex Users

A new Hex Users Club has been announced for systems with 16 to 24 keys, EPA, Motorola Evaluation Kit II, restricted to 6800 based systems, for now. For more information write to Charles C Worstell, 36012 Military Rd S, Auburn WA 98002, enclosing a stamped, self-addressed envelope, or phone (206) 927-6038.

Inland Empire Computer Club-Spokane WA

The Inland Empire Computer Club is a 50 member organization. Meetings are held at 7:30 each fourth Wednesday at the Washington Trust Bank at 3830 E Trent. To find out more about the Inland Empire Computer Club write POB 1434, Spokane WA 99210.

IBM 5100 Users Group

Those interested in contacting an IBM 1500 Users Group are invited to write 5541 Parliament Dr, Suite 104, Virginia Beach VA 23462, or call (804) 490-0154."

Circle 425 on inquiry card.

180

Continued from page 30

The memory management technique of LIL is to be as shown in figure 1.

Objects in a program may encompass the following: real simple variables, integer simple variables, homogeneous arrays (real or integer), strings, numerical constants, string constants, subprograms, functions, parameters, pointers and labels.

Numerical representation has been chosen so as to be as flexible as possible. Integer values are signed magnitude binary; real values have a binary coded decimal (BCD) mantissa with excess 64 binary exponent, a hybrid form which lends itself to the goal of memory conservation.

At present, the only segment of LIL which is actually implemented (on an MCS 6502-based KIM) is the arithmetic package, a mixed mode, variable word length package of great power and flexibility. Integer values may be from one to seven bytes in length; real values may be from two to 14 bytes in length. These word lengths may be curtailed to smaller values as LIL is actually implemented; much depends upon the demands made by language features for space in zero page.

As Mr Stavely suggests, LIL is being taken "one step at a time." However, it has been found that some of the more complex control features planned for LIL make it necessary to look ahead and allow for their implementation without "starting from scratch" with each new feature. LIL is to have control features which lend themselves to the concept of structured programming.

Object code, along with its accompanying reference table, is relocatable to any area of memory. Subprograms and functions may be compiled separately and used with different main programs. LIL has a COMMON statement through which global objects may be linked to a subprogram or function. All linkages in LIL are to take place through descriptor addresses; this implies execution time type checking for all operations. With the exception of labels, any global object may appear in a COMMON statement, including constants. Thus, heavily used objects may be included in the main program's COMMON statement and be repeated in a COMMON statement at the

Ample Juice

Constant voltage power supplies by Parasitic Engineering.

Give your Altair, IMSAI or custom system the power it needs to keep your programs up and running through brownouts and power fluctuations. The famous Parasitic Enginering Constant Voltage Power Supplies deliver full output with line voltages as

low as 90 volts or as high as 140 volts. 12-amp kit designed for Altair 8800(A), $90 postpaid. Universal 20-amp kit, $200 postpaid. (Cal. res. add tax).

9

Thinker Toys

1210 10th St., Berkeley, CA 94710

See it af your local computer shop. Or place BAC/MC orders to 800-648-5311.

Tarbell Floppy Disc Interface

Designed for Hobbyists and Systems Developers

Plugs directly into your IMSAI or ALTAIR* and handles up to 4 standard single drives in daisy-chain. Operates at standard 250K bits per second on normal disc format capacity of 243K bytes.

Works with modified CP/M Operating System and BASIC-E Compiler.

Hardware includes 4 extra IC slots, built-in phantom bootstrap and on-board crystal clock. Uses WD 1771 LSI Chip. 6-month warranty and extensive documentation. PRICE: Kit $190 Assembled $265

• ALTAIR is a trademark/tradename of M1TS, INC.

20620 South Leapwood Avenue, Suite P Carson, California 90744

O

CO

5

(213) 538-4251

181

Circle 426 on inquiry card.

Circle 427 on inquiry card.

A^^AjTELEPHONE «"N^B^ vWITHBYTE!

6800 AUTOMATIC TELEPHONE DIALER PROGRAM $9.95 postpaid

Have your 6800 system dial your phone • Uses only 5 external components • Stores 650 variable length phone numbers • Operates in less than IK bytes of memory

Includes: Paper tape in Mikbug* format and object code • Circuit diagram and instructions • Instructions for adapting to other 6800 systems

6800 TELEPHONE ANSWERING DEVICE PROGRAM $4.95 postpaid

Have your 6800 system answer your phone and record messages automatically. Compatible with any 6800 system.

Includes: Assembly listing and object code • Circuitdiagram and instructions

Write to: SOFTWARE EXCHANGE 2681 PETERBORO W. BLOOMFIELD, MICH. 48033

Mikbug" is a registered trademark of Motorola Inc.

Don Lancaster's ingenius design provides software controllable options including:

• Scrolling * Full performance cursor

• Over 2K on-screen characters with only 3MHz bandwidth

• Variety of line/character formats including 16/32, 16/64 .... even 32/64

• User selectable line lengths

TELL ME MORE! (

( ) SEND FREE CATALOG

Send instruction manual for the TVT-6 Kit with full operational details. $1 enclosed.

Name: .

Address:

Zip:

ELECTRONICS, INC. c«y state —

DEPT. 10-B, 1020 W.WILSHIREBLVD., OKLAHOMA CITY, OK 73116

beginning of each subprogram or function. The COMMON statement of LIL is to cost zero additional bytes, no matter how lengthy the statement, with a maximum of 256 common objects.

The concept of which Mr Stavely speaks seems to be ideal for the limited resources of the microcomputer. This is the software simulated compiler, much in the same manner that all arithmetic operations more complex than single byte addition or subtraction must be software simulated.

As Mr Stavely rightly points out, the object code of programs may be shared between owners of different brand microcomputers; all that is necessary is that each person have a loader and interpreter which defines the proper "abstract machine." This is an exciting concept which bodes well for those microcomputer owners who wish to establish a shared program network, and interchange ideas about the abstract machine.

LIL is simply one version of the abstract machine. However, the concept of control bytes in the code seems to be a very general idea which would be useful for any abstract machine. A control byte is to appear as the first item of executable code (discounting a few overhead bytes such as "number of bytes in code"), and control bytes are to appear after each 8 unit subdivision of code, or after each END OF STATEMENT, whichever comes first. The interpreter is to pick up control bytes "on the fly" as it executes the code. A copy of the control byte is rotated left each time the program counter is incremented; thus, by examining bit 7 of the copy of the control byte, the interpreter can determine whether the next unit of code is a 2 byte address or a 1 byte offset. In LIL, END OF STATEMENT is a routine which checks for certain valid conditions, then turns control back over to the program monitor which loads the next control byte and proceeds merrily upon its way. Upon encountering code such as WHILE. . ., the program counter and current state of the control byte are pushed onto the hardware stack for preservation; by later popping this data off the hardware stack and restoring the values of the program counter and control byte, execution is returned to WHILE

Mr Stavely's article contains a most interesting concept which holds the promise of truly high level programming languages for the microcomputer, as well as portability of code from one brand of machine to another.

Please let us see more such stimulating discussion of software concepts in the pages of BYTE."

Circle 428 on inquiry card.

182

by Rodnay Zaks. Ref. C201 $6.95

TH E BOOK (MICROPROCESSORS : from chips to systems )

This book is based on the author's experience in teaching microprocessors to more than 2000 persons during the past 5 years, both in a professional, and in a university environment. The seminars have received the highest ratings for their educational and technical value, and have been taught worldwide. This step by step book stresses:

1. How to assemble a complete system

2. Design trade-offs: advantages, disadvantages, problems, costs. About 250 pages, over 70 illustrations. Available August 1977

CONTENTS

A comprehensive introduction to all the essential aspects of microprocessors and microcomputers:

Technical Introduction / LSI Technologies ' Internal Architecture of a Microprocessor / System Components / The Microprocessor Families / Microprocessor Programming / Applications of Microprocessors / Building a System I Product Development ' Design Aids / Microprocessor Selection / Evolution and Perspectives.

THE AUTHOR

Dr. Rodnay Zaks has been responsible for the design of industrial microprocessor systems since their inception in 1972. He is the author of 11 educational books in the field and more than 20 scientific publications.

CASSETTES

The 2 basic microprocessor courses are now available on cassettes. Each course includes 2 cassettes (2>/2 hours) and a special book:

51 — An Introduction to Microprocessors $29.95

52 — Programming Microprocessors $29.95

OTHER BOOKS

• MICROPROCESSOR ENCYCLOPEDIA

2 complete reference books, containing manufacturers' data and description of operation for every microprocessor. A necessary tool for any comparative evaluation.

E8 - 8 BITS MICROPROCESSORS: Am 9080, AMI 6800, EA 9002, Fairchild F8, Gl LP 8000, Intel 8080 A, Intersil 6100, Mos Tech 650 X, Mostek 3880, 3850, M 6800, NS 8080 A, SC/MP, RCA CDP 1802, PPS-8, Signetics 2650, TMS 8080,

Western Digital MCP 1600, Zilog Z-80 $29.95

E5 - BIT SLICES: AMD 2901, Fairchild Macrologic, Intel 3000, MMI 5701, Motorola M 2900, M 10800, NS IMP, Signetics 8X02, 3000, Tl SBP 0400 $18.00

• IMD — International Microprocessor Dictionary

10 Languages: English — German — French — Spanish — Italian — Swedish — Norwegian — Danish — Hungarian —Polish. 30 Pages $1.95

• ACR-Microcomputer Acronyms — 4-Page guide to abbreviations $1.00

• SEMINAR BOOKS (condensed notes)

B2 - Microcomputer programming $39.95

B3 - Military microprocessor systems $39.95

B5 - Bit Slice $39.95

B6 - Industrial microprocessor systems $39.95

B7 - Microprocessor interfacing techniques $39.95

IN-HOUSE TRAINING

SYBEX is independent from manufacturers and provides in-house training and education on all the above topics, as well as on specialized microprocessor techniques.

AVAILABLE SOON:

Microprocessor programming techniques (with 8080 and 6800 examples) $7.95

ORDER FORM

Name

Position Company

Address_.

ST ATI' ZIP

□ Send me

copies of =:

copies of =.

copies of = .

Subtotal _ In California, add tax + . Postage and Handling ...

TOTAL

Payment included: □ check D P.O. □ money order D other..

TO ORDER

Handling (fourth-class rate): no charge. Faster delivery: $1.40 one book, $0.90 each additional one. ($2.50 overseas)

1. Fill attached coupon, or send P.O.

2. Enclose payment (prices are for U.S. only). In California, add tax.

3. Mail to SYBEX Inc, Publications Dept, 2161 Shattuck Ave, Berkeley, Ca 94704. Tel: (415) 848-8233. Telex: 336311

In Europe: SYBEX - Europe, 313 rue

Lecourbe, 75015 Paris, France Tel: (1)8282502, Telex: 200858

Circle 429 on inquiry card.

WHO HAS THE MOST STORAGE?

I read your April 1977 article, "A Software Controlled 1200 bps Audio Tape Interface," page 40, and found it extremely refreshing to find magazine people really practicing low cost hardware methods with "nice" software. It really surprised me to see a machine state diagram. However, the most interesting comment is that about a 3M tape controller and drive. I am not really interested in working the electronics out from scratch as you are. But, like so many of your readers, I am very much interested in having a 9 track NRZI peripheral for my machine. My main interest is the huge software availability from "big machines." For me, this software is accessible to run on my machine. I certainly would be interested in constructing the interface hardware for a 9 track drive and would like to see some information on that subject. My machine at present is a Z-80 with 128 K of memory. Soon, like now that the price is right, fast fixed point multiply and divide is available and the microprocessor is now a decent minicomputer in performance. The next thing for me logically is multiprocessing when I add the other 128 K bytes.

R Plemich 307 Hatlen Mt Prospect IL 60056

With a main memory region of that

size, you need at least a 9 track drive or a multiplatter hard surface disk. Here is an interesting and informal contest: let each reader who reads this note send in a postcard giving the amount of memory presently integrated (ie: plugged in, checked out and used as a programming resource) in his or her system. Give a short description of the system in use as well as the type of memory technology broken down by regions in address space. Address your cards to BYTE Memory Census, 70 Main St, Peterborough NH 03458. m

10,000,000,000 BITS

Could you tell me when I might expect to be able to purchase a Philips/ MCA optical video disk system with write and read capabilities suitable for use with a microcomputer?

Jack M Mann Jr 105 Yosemite Dr Oxnard CA 93030

Rare circumstance fails in your favor, it happens that I sat next to Dr Jerry S Sullivan of Philips Laboratories on a plane flight from New York City to San Francisco April 19. We were both going to Monterey CA to attend the 1977 IEEE Asilomar workshop on microprocessors. One of the topics of the wide-ranging conversation was the application of video disk technology in a meaningful way to personal computing. The enticement is there: if a writing method could be achieved we'd have a media cost of $5 to $10 per disk with perhaps 10 billion (10'") bits, jerry could not predict an exact date of course, but Philips is indeed working on the concept of a field programmable digital version of the disk. It is conceivable that such a device might be

ready within the next five years. The Philips/MCA video disk which is supposed to be on the market sometime this year is a read only device which will only be available programmed with movies and other visual materials. Functionally a digital version of the disk is similar to a fusible link read only memory or an ASR 33 paper tape with rubout: you can only write the information once. But with 70'° bits per disk and inexpensive disks, there is plenty of space to allow rewriting of files and updating by overwriting with the logical equivalent of "rubouts. " Cost is an open question at this time, of course. . . CK"

TAKING STOCK

I want a small computer. I need it for stock market research. I can wangle the money. I'm satisfied I can learn to program. But how can I get stock market data into my memory? Are there services that provide stock market data for that purpose? Do you buy it on tapes? On disks? Can you tie your own computer into someone else's data book through a telephone connection?

Shouldn't a greenhorn locate his data source first before he can decide what type of computer will be best for him? Why don't I ever see any ads for data sources?

Charles M Larson Investment Consultant 11513 Havenwood Dr Whittier CA 90606

It is a good point that one should tie down the data source before assuming one can use it. Without any knowledge of the charges and contractual arrangements, I do observe that the stock brokerage office which is located in our office building in Peterborough uses

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 application systems.

Contact us for further information.

Rotundra Cybernetics

tA

Box 1448, Calgary, Alta. T2P 2H9 Phone (403) 283-8076

COMPUTER MART OF

NEW HAMPSHIRE

DEALERS FOR TDL ICOM IMSAI DIGITAL GROUP KIM-1

SOFTWARE INCLUDES:

8K BASIC EXT. BASIC

TEXT EDITOR DISK BASIC WORD PROCESSOR MACRO-ASSEMBLER

170 MAIN STREET NASHUA (603) 883-2386

If Von &-oxa&- To |A»/<e YouR.

fx«T fo».Tw»E Tti EbP, /ou x.s*iiy Out rr -to Youiitif To Set im ow

VJtCr WASTE MftLUHBLE Ti»£ I-E(HtUl»*THE TRx^S 0f THE TMde TKe //fitb ulftY?

Leorvi rw THE ComfonT of Yom ErtsrO/flr^ LftuG-M WHile omens !_£»*.« t«e fth&MY. THrs tWTo MffcuOl KBfeMS

TRrtfrs /\lE(/^K Btf°*B fi%fxunu% fan— Absolutely 6u*nunEEt> 0« YounMowr S/mt: SeaJd -8/VIZ R>sr>« fiuh

Mnm>Li«4-To Et>? rVioftsiioMfiLs W-M 25% T>EFoo*«, TT NU;flTi|WJVi,ft.3o3l8

si) vD

Circle 430 on inquiry card.

Circle 431 on inquiry card. 184

Circle 432 on inquiry card.

COMPUTER AGE

999 S.W.40th Avenue (441) Plantation, Florida 33317 (305) 791-8080

We've got what you want. . .OFF THE SHELF. . . .

We've got Computers and Kits: SOL-20. Cromemco Z-2, Polymorphic Systems, and more. . .

,4/VD-Peripherals and Accessories such as Floppy Disks, Seats Memories, Cromemco Boards, Processor Technology Boards, Keyboards, PROM Programmers, CUTS, Printers, TV Monitors, CRT'S, Assemblers, Basics, Fortran IV (for 8080 and Z-80), ALL the magazines, Chips, etc. etc

AA/D-We've especially got people with answers who are willing to help you design and build your complete system or help you get up and running. . . . Systems are pn display for you to get HANDS-ON experience.

WE SER VICE WHA T WE SEL L

Whether your ideas include your own system development or Turnkey Applications. . . . We can help you. . . .

Stop by and see our "AFFORDABLE COMPUTER SYSTEMS AND COMPONENTS FOR HOME AND BUSINESS"

^ ************ ^

BARBAIS: IBM CARDS

S4.50 each + ************ >tc

They come printed in beige on a navy T-shirt with an indelible pen to punch your own message! How about equations? Maxwell's, Legendre, Cauchy, Schrodinger or Einstein. We have those on shirts, too. How about a flip-flop or an analog circuit, a Shakespeare sonnet or an H-R diagram, the periodic table, or a Chopin Etude, Heme or Chlorophyll molecular diagrams, the Krebs cycle, the Carbon-Nitrogen cycle, early Earth geology or Frog anatomy, the human circulatory system, a Venn diagram or a structured flowchart. Sizes, S,M,L and XL. Include 50 cents pst & hdl. Circle reader card or write for free illustrated catalogue.

OUTER PRODUCTS Dept N Box 88 LAFAYETTE HILL, PA. 19444

Circle 433 on inquiry card.

Circle 434 on inquiry card.

SURPLUS

BARGAIN

+ 5V @ 8.5A - 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. 110VAC 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

TYSON'S CORNER. VIRGINIA (WASHINGTON, D.C. AREA)

THE

COMPUTER SYSTEMS STORE

"Specializing in Systems"

FEATURING:

Processor Technology Poly MorphtC Diablo E & L

Veclor Graphics Apple

CROMEMCO

Lear Siegler DEC SWTPC Seals

Digital Group TDL

Books — Magazines

COMPUTERS FOR HOME. SCHOOL. & SMALL BUSINESS Our staff will help you select trom the best of each manufacturer to complete the system best suited to your needs

SPECIAL: LEAR-SIEGLER ADM 3A

CSS

COmPUTER SYSTEiTIS STORE

1984 CHAIN BRIDGE ROAD. McLEAN. VA 22101 TELEPHONE (703) 821 -8333 OPENING SOON

ALEXANDRIA VA • NORFOLK VA • BALTIMORE. MD • ORLANOO ELA

Circle 436 on inquiry card.

Washington D.C.'s Newest Computer Store

Intelligent Business

Machines, Inc.

Cromemco, IMSAI, TDL, Administrator I, SEALS, DIP Chips, etc.

Come see us at

938 Ellsworth Dr. Silver Spring, MD 20910 301-565-2711

Circle 437 on inquiry card.

210TA.4 K DYNAMIC RAM

S4.S0

2813, i.'wj 1*9 m i FIFO 56.S0

LAII 101 OP-AMP 11.13 Nl H i, OUAl) "^iS" S-'.MI

FIGARO GAS SENSORS.

=109. =8IJ, =813. cj. PHOTO CELLS (f-JS) I.ISM.

Ill-F'OI.AR LEU YEL/C.RN i2. I.LEC 1 ROLUMINESCENT I'ANI I GLOWS PALE GREEN

WITH 115 VAi. APPLII 0.

PRINT ON, I OR A VERY

NOTICE ABLI SIGN/INUj

CATCtR, J SI/ES: 7/8%6 :

•3/8 ji

■31* ;

S| MO I I X LONN

CON! 1

.'V (JPDl MINI I PL I! Kl I AY t

- COMING SOON

• 8 K BYTE EPROM BOARD (2708)

• PHASE ENCODED CASSETTE INTERFACE WITH PROGRAMMABLE SERIAL PORT: DUAL RECORDER TARBEI.L 01 K C METHOD SUPPORTED.

• 2708 PROGRAMMER

ALL MENTIONED ABOVE ARE S100 BUS COMPATABLE SEND SASE FOR INFO.

ELECTRONIC DISCOUNT SALES

138 N. 81st STREET, MESA. ARIZONA 85207

SIX PORT I/O CONTROLLER

• Program Control of Ports

• S100 Buss Compatible

• Parallel I/O

• Single Printed Circuit Board

$149.00

VIDEO SYSTEM

• 30 x 64 Display - 1920 Char.

• 128 Character Buffer

• 1 /usee Read/Write Time

• Extensive Software Provided

• Programmable Display Attribute Characters

$349.00

Available in Kits or Assembled BankAmericard and Master Charge Accepted

Dealer or Club Discounts Available

IOR

Box 28823 Dallas, Texas 75228

Circle 435 on inquiry card.

r lDisc/31 ^

DISC/3 COMPANY

COMPLETE MICRO

BUSINESS SYSTEMS

A/R, Mailing Labels, G/L, Pay

roll, A/P, etc.

plus

Lear Siegler $ 749.95

ADM-3A kit

IMSAI 8080 kit $ 599.95

Centronics Business $1145.00

Printer (132 columns)

DISC/3 COMPANY

1840 LINCOLN BLVD.

SANTA MONICA, CALIF. 90404

(213) 451-8911

Circle 438 on inquiry card.

SWTPC Business Programs

Math Package. 5 byte mantissa. 1 byte exponent 1 VA digit accuracy. Fortran-type formatting (Integer, Floating Point and Free Formatting on both read and write) $25.00

Letter Writing Editor. No line numbers needed. Subset of Honeywell's 1648 Time Sharing Editor. $25.00

Payroll. Phone (or details.

Accounts Receivable. Phone for details.

Stock Club - Marketing Evaluation. This is the same program used by Custom Computer Services to provide accounting for clubs belonging to ihe National Association of Investment Clubs.

Disk Based SWTPC Business Systems. Phone for details.

Dealer for SWTPC, Smoke Signal Broadcasting, Percom, Teletype®, GE, Tl, Centronics, Motorola, etc.

To Order: Include 3% postage. Illinois residents add 5% sales tax.

AAA Chicago Computer Center 3007% W. Waveland Avenue Chicago, IL 60618 (312) 539-5833 (3 PM - 6 PM)

Circle 439 on inquiry card.

Circle 440 on inquiry card.

Circle 441 on inquiry card.

telecommunications equipment supplied by GTE Sylvania with a number of different video terminals and printers. It is all pretty standard communications equipment, although the size of the GTE equipment case in the hall (a full height 19 inch rack cabinet) suggests a dedicated minicomputer as the local satellite of a network. Based on this observation, it should in principle be technologically feasible for you to hang onto a stock market wire and accumulate data via an RS-232 port and modem as it is generated day by day. There is also a whole host of stock market analysis firms, many of whom may offer some form of machine readable data as a by-product. Consult the advertisements in the Wall Street Journal or Barron's. If any readers can help by providing specifics in answer to Mr Larson's request, please write so that we can make the data available. Once the source of data is better detailed, it is possible to make some more specific comments.

As for why you don't see any advertisements for data sources, perhaps it is because none thought of selling the data before. Perhaps your letter will help create a market.*

WHERE DO I START?

I am currently a college student enrolled at a community college. I have several issues of your magazine and have been reading about all the small systems of computers. I am very interested in owning and operating a small computer system except for one thing: how much do I need to know to set one up? Specifically, how much digital electronics, electronic assembly, computer science and programming knowledge do I need? Assuming I need a lot of this type of knowledge, how long might it take me to master it so I can set up my system?

I intend to use my computer for

games, mathematical modeling, digital to analog devices and simulation. I would love to set up a system to do all these things, but I don't want to wait until I have a bachelor's degree in computer science to do it. I would greatly appreciate any guidance you could give me on what kind of knowledge or experience I would need in order to set up a workable system.

J ohn Graffio 1094 Quail Creek Rd Fallbrook CA 92028

The minimum "set up" time for a personal computer, by far, is through purchase of an "appliance" computer which comes ready to use, in the same manner as a stereo receiver comes ready to use. In this category are the latest calculators (such as the brilliant new SR-59 from Texas Instruments with its printer and ROM software attachments), or true general purpose computers such as the Apple-ll, Commodore PET 2001, or Noval 760. All of these come complete and assembled. If you want kits, those products range in complexity from simple peripherals to complete systems. Kits naturally take more time to get into operation and debug. Kits such as the Heathkit computer products assume no initial familiarity with electronics, and provide tutorial materials to get the user into operation.*

CONVERSIONS?

As a newcomer to the field of computers, I am iust beginning to understand the hardware, but my software problems still exist en masse. While thinking hexadecimal is nice, I have been brought up thinking in a base 10 numeral system (whatever that is?). I know not whether this is an extremely simple and trivial or a vastly complex question, but tell me,

how does one get all those rows of Is and 0s into groups of four BCD bits? I can understand actually counting up to the number with a high frequency counter (eight 7490s in BCD format paralleled by eight 7490s in binary format driven by a 10 MHz clock), some complex software method that applies tables, or even successively subtracting out exponents of 10. But I figure some genius, somewhere, has as algorithm. Can you help me?

Whit Smith 606 Brookwood Ln Goldsboro NC 27530

Conversion of a binary number to a decimal number was presented in some detail for the 8080 processor in an article entitled "How to Do a Number of Conversions" by lames Brown on page 50 of our September 1976 issue of BYTE. There is no magical short cut with most processors: you compare the integer successively with values of 10 raised to various powers (stored in a table of binary numbers) and derive each digit of the converted BCD number from the binary by successive subtraction of the appropriate power of 10 (or division if you have such on your processor). Conversion of the BCD form to an external ASCII representation is easier, and can be done by adding the hexadecimal constant 30 to each 4 bit BCD digit value, giving an 8 bit ASCII value from hexadecimal 30 to 39, which prints as the character values 0 to 9 respectively. Converting BCD inputs or ASCII inputs to binary internal forms is fairly simple as well: for each successive digit entered, multiply the previous entry sum by 10 (add the old value to the sum ten times for a less than optimal brute force technique), then add the new entry (carefully limited to values from 0 to 9) to the previous entry sum giving the new entry sum.*

APPLE IPs

Available at

Computer Playground

■ Demonstrations

■ Rentals

■ Games

■ Color Graphics

■ Repair and Service

■ Also see the KIM-1 system

6789 Westminster Ave. Westminster, CA 92683 Phone 714-898-8330

Microcomputer

systems, peripherals, custom programs for business, service, sound counsel on equipment selection.

We stock IMSAI, ICOM, ' Technical Design Labs, Vector Graphics, Heuristics, and other lines, and provide business packages and engineering design.

Microtex, Inc.

Microcomputer specialists

(713) 780-7477/9305-D Harwin Houston, Texas 77036

IT'S A GREAT BIG COMPUTER WORLD

;*£ But You Only Need

-*THE computer corner

•SOL — A New Dawn Is Here! •IMSAI 8080 •POLY-88 •TDLZ-80

•Memories & I/O Boards

-X_ •Computer Book Service H - •Magnetic Tapes & Disks • Full Line of Magazines H • Brain Games & Puzzles

H •Workshops & Club Information _

*T" Visit THE COMPUTER CORNER for

y all your computer needs. Stop in and _ browse - you'll like our personal service.

Whi

W

THE COMPUTER CORNER

i Plains Mall - Upper Level 200 Hamilton Avenue te Plains, New York 10601 Tel: (911J WHY DATA

10-6 Daily & Saturday

V1 > 10-9 Thursday \>

Circle 442 on inquiry card.

Circle 443 on inquiry card.

Circle 444 on inquiry card.

South Florida

nny Computer Stores. Inc.

South 'Florida's First Computer Store

WE CARRY:

• ALPHA MICRO SYSTEMS, MICRO FILE, PROCESSOR TECHNOLOGY, IMSAI

• BOOKS, MAGAZINES, NEWSPAPERS

• FULL SERVICE

• SOFTWARE

•WRITE OR PHONE US FOR PRICES

MORE THAN JUST A TOY Monday 12 noon — 9 pm Tues.-Fri, 10-6

UNIVERSITY SHOPPING CENTER 1238ASOUTH DIXIE HIGHWAY CORAL GABLES, FLA. 33146 (305) 661-6042

REMEMBER 16K

ASSEMBLED AND TESTED

S520 Features:

STATIC OPf RA1ION ACCESS TIME I 0 < s S 10 D BUS C O MPA T Hit r LOW POW1R 1 YFMCAl IV

lO&ma I6v 24m;i »6vni'9 BATTERY BACKUP

AVATAR SYSTEVS

LAS VEGAS NFV 8>J I (Hi I 7 0 21 7 3 3 B304

BASIC BUSINESS SOFTWARE Disc Sort $195

Interactive system generates customized jobstream sort module for sequential or random files.

Correspondence Processor $195

Manipulates text and name/address disc files with prompts and error checking. Very easy to use.

Key-to-Disc $195

Interactive system generates custom module with user defined CRT/disc formats, validity checks and automatic entry duplicate or increment.

Supplied on diskette with user manual and program documentation. See your Altair dealer or contact us.

THE SOFTWARE STORE

706 Chippewa Square Marquette Ml 49855 Master Charge - 906/228-7622 - VISA

Circle 445 on inquiry card.

Circle 446 on inquiry card

Circle 447 on inquiry card.

THE PROM SETTER READ/WRITE

1702A and 2708 ALTAIR/IMSAI COMPATIBLE NO EXTERNAL POWER SUPPLY

LET YOUR COMPUTER DO IT ALL

SOFTWARE INCLUDED Doubles as an 8 Bit Parallel I/O

KIT COMPLETE — $210 ASSEMBLED — $375

DEL/VERY LESS THAN 60 DAYS

SZERLIP ENTERPRISES

1414 W. 259th STREET HARBOR CITY, CA. 90710 Calif, Res. Add 6% Sales Tax

computer depot inc."

3515 W. 70th Street Minneapolis MN 55435 612-927-5601

Upper Midwest Headquarters for

PROCESSOR TECHNOLOGY, IMSAI, POLYMORPHIC SYSTEMS, DIGITAL GROUP, CROMEMCO, VECTOR GRAPHICS, TDL, SEALS, TARBELL, MICRO DESIGNS, NORTH STAR, NATIONAL SEMI-CONDUCTOR, FAIRCHILD SEMI-CONDUCTOR, MOSTEK, E & L INSTRUMENTS, SAMS, TAB, HAYDEN, WILEY, MC-GRAW HILL

Catalog Free

C40

ECONOMY TERMINALS

ET1 CRT TERMINAL FEATURES

Circle 448 on inquiry card.

Circle 449 on inquiry card.

Box 12261

Minneapolis. Minn. 55412 |612| 522-1076

• 24x80 display, with anti-glare screen & lilter

• 12" industrial 15 Mhz monitor

• 90 day warranty (parts & labor, F.O.B. factory)

• 96-hour elevated-temperature operating Q.C. test

• RS 232 and 20 ma interlace

• LF. CR. BS, Local, Rubout. Break. Home & Clear. Tab*, Remote Cursor Placement*, and Scrolling*

• Micro-Processor based, with 63-key keyboard »

"These (unctions van/ with the model selected.

Circle 450 on inquiry card.

BVTE SHOP.

the affordable computer store 7825 BIRD ROAD OF

(305) 264-2983 DIAL 264-FJYTE

MIAMI

WE HELP YOU GET YOUR SYSTEM UP AND RUNNING.

IMSAI 8080 BYTE-8 SWTP MP68 CROMEMCO

MEMORY EXPANSION COLOR TV GRAPHICS LEAR SIEGLER ADM 3 PAPER TAPE READER

PROCESSOR TECH

INTERFACES (KITS or ASSEMBLED UNITS)

IN FORT LAUDERDALE

1044 E Oakland Pk Blvd (305) 561-2983

Circle •

n inquiry card.

• •INTRODUCING NEMESIS 7- ■ THE GAME WITH THE BRAIN

Tin- first oi i terto* •>! handheld computerized games using "State of the Art" technology

s7 electronical ly duplicates trxactly the anc lent i. Pebble* were arranged Into J column* ot 1, 3, >s cacti, flay alternated wltli an opponent. Each <

oil

la

nipt pebble.

respectable opponent In Nemcsl*' is >l fixed program iter consisting of a custom designed LSI computer clilp ircult. To win Is extremely diliioili but possible. . opponents are aLso permitted.

to ■■•enbl* kit includes all part s (except battery) idlnj; custom M)S computer circuit, RS board £ case, soldering required S <*.95

olderlns.,

$U.S5 . 5 1.50

ir radio)

Nevada resIdentn .idd 1^ I'ST

Computer Creations Inc.

118 West 2nd Street; Reno, Nevada; 89501

Circle 452 on inquiry card.

CONNECTICUT'S LARGEST

JRV COMPUTER STORE

DECWRITER II — S1750.00 — W/ RS232C INTERFACE —

• IMSAI 8048 ONE BOARD COMPUTER

• TDL XITAN SYSTEMS

• SWTP G800 SYSTEMS

• VECTOR GRAPHICS

■ NORTH STAR MINI FLOPPY

• TEXAS INSTRUMENTS CALCULATORS

• PL RKIN ELME R DATA TERMINALS

► 18 OTHER LINES OF MICROCOMPUTERS

AND

PEF

FALL SPECIAL■

HERALS

8K STATIC RAM

250r.s ACCESS

S 100 COMPATIBLE

ASSEMBLED

8URMFD IN FOR 80 t

1 YEAR WARRANTY

COMPLETE BUSINESS PACKAGE (AVAILABLE NOWI

ACCOUNTS RECEIVABLE BILI INC. ACCOUNTS PAYABLE PAYROLL. AND INVENTORY DESIGNED, CODED, AND THOROUGHLY TESTED BY TOP FORTUNE 500 BUSINESS ANALYSTS.

3711 WHITNEY AVENUE . HAMDEN, CT ■ 1203) 281 1453

Circle 453 on inquiry card

E-Z-HOOK

E-Z Hooks have been designed and field tested through 'tie industry to save lime and money in commercial electronic production and servicing. The spring-loaded hook attaches (irmly, yet so gently it will not damage component — frees hands while testing. Durably constructed and fully insulated to a single contact point assuring true readings. Meets exacting laboratory and space age computer technology requirements. AVAILABLE IN 10 RETMA COLORS: Red, black, blue, green, oragne, yellow, white, violet, brown or gray.

MICRO HOOK

XM Micro Hook (1.75" long <1 gram] for difficult IC Testing. Permits hookups to delicate wires where weight and leverage may

damage component $.80 ua.

Specify color. ORDER P/N XM

Jumper with XM Micro Hooks

Order No. Length Price

204XM-12" 12" $1.70 204XM-24- 24" 1.70 Specify color

XM-S MICRO HOOK SET (Includes 1 ea. red. black, blue, green, orange, yellow, while, brown, violet and gray Micro Hookl. At this low price you can afford more than one set.

COMPLETE SET (10) MICRO HOOKS S7.95

MINI HOOK

ML

X100W Mini Hook <2.25" long)

combines rugged construction, minia lure size and Finger-eze Hypo Action for all the best test conneci ions. Hook is large enough for component

ugh '

Sp

ght places $.75 ea.

{y ORDER P/N X100W

Jumper X-100W Mini Hook to Stacking Banana Plug Order No. Length Price

201W 32" $1.35

Specify color.

Jumper with X-100W Mini Hooks Order No. Length Price

204-12W 12" $1.60

204-24W 24" 1.60

Specify color.

Jumper with X-1Q0W Mini Hook Order No. Length

EXTRA LONG MINI HOOK

XL 1 Mini Hook (5.0" long) combiner with an extra long body. It will m;: card racks and trhough deep wiring r

1 features of the X100W ! safe, short-free test connections in

t up to 4" , . ORDER P/N XL-1

Specify color. $1.25

JUMPER, XL-1 MINI HOOK TO STACKING BANANA PLUG

Order No. Length

201XL-1 32"

Specify color. Price $1.95

NEW from FLUKE ■ MODEL 8020A

THE DMM FOR THE PROFESSIONAL

• 200 Hr Battery Life

• 26 Ranges for 7 Fun

• 2000 Count Resolution

• High Low Power Ohms

• Autozero and Auto polarity

• MOV-protected to 6000V against hidden transients and overload protection to 300 V AC

• Diode Test Function

• Conductance checks leakage to 1 0,000 meg ohms

• Size: HWL (7.1x3.4x1.8

IN)

(18.0x8.6x4.5 cm)

• Weight: 13 oz.

NEW from CSC

FRED COUNTER #20 Hi to 100MHz 0B Digit Accuracy

Frequency Characteristics Range: 20 H/ to 100 MHz luuaraiileerJI 110 MHz typical Gate time: 1 sec. providing 1 'Jz resolution through Out Ireq range. Accuracy: ! 1 count • Time Base error. Input Characteristics Importance: 1 Ml! shunted by 50 pf Connector: phone lack. Coupling: AC Sine Wave Sensitivity: 30 mVRMS; 10 Hz 50 MHz; 100 mVRMS. 50 MH/ to 80 MHz. 300 mVRMS, 80 MHz and above. Maximum lnpuivOO V Peak, 20 MH/-5D0Hz, 100V Puak, 500 Hz-1 KHz, 75 V Peak. 1 KHz 10 MHz; 50V Peiik, ID MHz and above.

Internal Time Base Characteristics Frequency. 3.579545MHz crystal oscillator. Setabilily: 1 3 upm @25°C. Trimmer Ail|usiment: ' A ppm. Temperature Stability: Belter than 0.? upm/°C, 0 to 50UC. Maximum Aging Rate: 10 ppm/yeat.

MAX too S134.9E OTHER CSC PRODUCTS

SOCKETS AND BUS STRIPS

OT59S Soct OTS9B Bui OT47S Sack OT47B Bui QT35S Sock OT3SB Bui OT1BS Sock OT12S Sock QTBS Socke QT7S Srjcfce

"8 100 19 9

OR 101 29 9

r*B102 39 9

PB103 19 9

PB104 799 EX 300 9 9

E *(i00 l o g

PROTO CLIP PC14 14.0,n S 4.5 ->C16 16 Din 4 7 24-oir. B.f PC40 40<pin 13.7

®

Our Quality Is Best!

PET MODEL 2001

SPECIFICATIONS

DIMENSIONS LWO 18-1/2 * 10-1/2 »

WEIGHT 44lbl

MEMORY

RAM luiti) 4K 18K OPT 1 e*0 10 32K ROM I (Widen I opi-ralmg svsleml 14K BK BASIC irilurpieiai

mo i\

QUITE PORTABLE VERY AFFORDABLE AND UNBELIEVABLY VERSATILE the PET computer may very well be a lifetime pET investment

MODEL 2001 $595.00

OPT. 8K RAM ONLY $795.00

VIDEO DISPLAY UNIT

, CRT > 100G i

CASSETTE STORAGE

Fait rerJundani recording scheme assuring reliable doia recrjverv • Modified drive tor higher reliability ol recording and record retention ■ High noise immunity, error detection and correction • Uses uandard audio cassette tapes • Tape tiles named OPERATING SYSTEM

Support) multiple languages • Machine language accessibility • File management in operating SVStem • Cursor control, reverse field and graphics under simple BASIC conirol ■ Cassette Hie management trom BASIC • True random number flenetatlon Or pseudo random sequence. INPUT/OUTPUT INPUT/OUTPUT

All olher I/O supported througn IEEE-488 instrument interlace which allows lor multiple intelli gem peripherals • All I/O automatically managed hv Operating syslem so'tware • Single ctiarac1« I/O with GET command ■ Easv screen luie-udil capability ■ Flexible I/O structure allows lui BASIC enpansinn Mrlth intelligent peiiptierals BASIC INTERPRETER

Expanded BK BASIC • Upvvjid expansion 1rCm current popular BASIC language • Strings, integ $r% and mull drni arrays • High precision 110 significant digilsl • Direcr memory access through PEEK and POKE commands

2N TRANSISTORS

2N29Q4A 36

2 '■■ -■ OS A 2N697 2NG99

2N930 2N1132 2N TGI 3 2N1711 2N1893 2N21 02 2N21SO 2N2218 2\2?l&A

'\22'9A 3G 2N

L>\30!.:< 2 N13054 2N305i> 2N3375 2N3391A 2N 3392 2N339.3 2N3414

N2221 2N2221C 2N2222 2\2222A 2N2368 2N2369 2'-J2369-i 2N2475 2 N 2484 2N2605 2N2G08 : 2N264T> 2N2647 2N2713 2N2904

2N34 17 2N3440 * 2N3442 2N35S3 2N3563 2N35G4 2N35G5 2N35Ei7 2N35G8 2N3569 2N363B 2N3G3HA 2N3642 2N3643 2N3G45

.?N3G4tj 2 N 3694 2N3702 2N37Q4 2N3 70Li 2 N3706 2N3707 2N3 7 0H 2N3709 2 N 3 / 1 0 2N3711 2N3721 2N3724 2 N 3 7 2 f. 2N3731 2N3740 2N3741 2N377 1 2N3772 2N3773 2N3789 2N3819 2N3B23 2N3859 ?"J3Bti0

2N3B66

2N3S71A 2N3903 2N3904 2N3905 • '• HO',

2n::95s

2N39^7 ?M 39'iti 2N3962

2N4036 2N4037 .'N.105S 2N40SO 2N4 061 2 N.-109 3 ""' 1123

20

1.30

2M4 I 24 '.'i\4 1 2b

2M4 1 :>r>

2 M 4 I a 2 2N4.143 2N4220A l 00 2M4224 1.25 2M4228 40 2N4235 1 80 2N4237 1 2D 2N4238 5N4248 2 ,-.424y

:".420o 2\2 5-; 2 :>-jB

?'-.434Fi r\4395 2-.4400 2N4401 .'N44Q2 2\4403 2--.4J09 2>,4416 2M44 25 2M442 7 2 -181:8 2N4RU8 2 N 49 18 2N4919

2\49 2.'! 2M49H:> 2'-l4;tS4 2N4937 2N4988 2N4989 2N4991 ?M4t>9 3 2M4'J94 2M508G 2NB087 2N5088 2\5ufi!) 2N5109 2N51 31 2N51 33 2N51 34 2N51 72 2fJ51 79 2N5190 2N5191 2NB1 94 2!1S2 1 0 2N52 19 2N5220

2!<ib:<:n

2N5223 2N522G 2N 13227 21\ 5 ? 3 2 2N5232A 2N5249

2N(i306

2NS308

2 N 5309 2N'i321 2M!>322 2Kib323

2N5354 2N5355

2N5 366 2N'i3G7 2 Ni> 308

:;n;.309

2N93/0 2N5373 2N53 75 2N5383 2N5397 2N5418 2N54 19 2N54 20 2N5447 2N5448 2N54 49

2NS450

2N5451 2N5457 2N545B 2N54R4 2N5490 2N5777 2N5778 2N58 1 1

34 2N5824 40 2M5825 52 2N5826 .00 2N5827 70 2NS828 70 2N5828A

34 2N6000 38 2N6001

2NGO02 50 2NG014 50 2NG015

25 2NG027

26 2N0028 28 2N6034

.28 2N6035 " 28 2N6037 58 2N6076 2 50 2N6099 30 2N5101

35 2N6103 ' 40 2N6121

30 2N6122 30 2N6123 25 2N6124 20 2N6126 25 2N'612G GO 2N6218 45 2N6219 GO 2N6220 70 2N6222 GO 2N6223 55 2N6224 40 2N0225 40 40

2S8405

2SC53G

2SC828

2SC829

2SC929

2SC93D

2SC933

2SC1226A

2SC1359

JAPANESE TRANSISTORS

.85 2/1.20 2/1.50 2*1.50 2/1.40 2/1.30 1 00 1 25 90

2SC1973

2SC1974

2SC1975

2SC2034

2SD72

2SD313

2SD32!i

3SK49

3.00 3.10 3.40 1.00 1 10 1.25 2.75

PLESSEY SAMPLER 300 METALIZED CAPACITORS 18 DIFFERENT STD. VALUES $26.00

SAMS BOOKS

TTL COOKBOOK

No.21035 $8.9 IC OP AMP COOKBOOK No,20969 S12-9 TV TYPEWRITER COOKBOOK No.21313 £9.9 C MOS COOKBOOK

No.21398 $9-9 TRANSISTOR SUBSTITUTION HANDBOOK, 15th Ed.

No.21169 S4.5 TRANSISTOR SPEC. MANUAL, 7th Ed. No.21208 S5.9 SEMICONDUCTOR REPLACE, GUIDE No.21 092 S3.9

BUILDING AND INSTALLING ELECTRONIC INTRUSION ALARMS No.20929 S4.5 UNDERSTANDING IC OP-AMPS No.20855 S3.9

HOW TO USE IC LOGIC E LEMENTS. 2nd Ed.

No.21 081 S4 .5

UNDERSTANDING CMOS IC's

No.21129 S4.9

ZEWER DIODES

« WATT

PRICE

1 WATT

V PRICE

1N5223B

2.7

.22

IN4728A

3.3

INS224B

2.8

.22

1N4729A

3.G

IN52258

3.Q

.22

IN4730A

3.9

IN5226B

3.3

-22

IN4731A

4.3

44

IN5227B

3.6

.22

IN4732A

4.7

44

IN5228B

3.9

22

IN4733A

5.1

44

IN5229B

4.3

.22

IN4734A

5.G

44

IN5230B

4.7

.22

IN4735A

6.2

44

IN5231B

5.1

22

IN473GA

6.8

44

IN52328

5.6

22

IN4737A

7.5

IM5233B

6.0

22

IN4738A

8.2

44

IN52348

fi-2

.22

IN4739A

9.1

44

IN5235B

6.8

.22

IM4740A

10

44

IN5236B

7.5

.22

IN4741A

1 1

IN5237B

8.2

22

IN4742A IN4743A

1 2 13

44

l"'5239B

9.1

22

IM4/4JA

1 5

44

IN5240B

10

.22

IN4745A

16

IN524 IB

.22

IN4746A

IS

44

IN5242B

.22

IN4747A

20

IN5243B

13

.22

22 24

44

IN5245B

IN47S0A

27

IN524GB

16

22

IN 4751 A

30

IN52476

.22

IN4752A

33

44

IN5248B

18

.22

IN47G3A

36

IN5249B

19

.22

IN4754A

39

IN5250B

20

.22

IN4755A

44

IN5251B

.22

IN4756A

IN4757A

IN5253B

25

IN4758A

IN5254B

27

22

IN5255B

28

22

IN4 760A

68

IN52568

30

.22 2?

IN5257B

33

IN5258B

36

■22

DIODES

IN5260S

39 43

.22 .22

IN914

10/1

.00

IN 526 IB

.22

IN4002

10/1

.00

IN5262B IM5263B

-22

IN4003

10/1

.00

1N5264B

60

.22

IN4004

10/1

.00

IN5265B

62

.22

IN4005

10/1

.10

IN5256G

68

22

IN5267B

75

IN4Q06 IN4007

10/1 10/1

.20 .20

BUILD A WORKING DPM IN 1/2 HOUR WITH THESE COMPLETE EVALUATION KITS.

Test these new parts for yourself with Intersil's low-cost prototyping kits, complete with A/D converter and LCD display (for the 7106) or LED display (for the 7107). Kits provide all materials, including PC board, for a functioning panel meter.

ICL7106EV (LCD) ICL7107EV (LED)

S29.95 S24.95

CAPACITORS

50V CERAMIC DISC $1

5pf 9/pkg 15pf 9/pkg 25pf 9/pkg 27P1 9/pkg 47p1 8/pkg 68pf 8/pkcj lOOpf 8/pkq 150pf 8/pkg 220pf 8/pkg 270pf 7/pkg

300pf 330p( 390pf 470pf 560pf 680pf .OOlmfd .0015mfd ,0022mfd .003mfd

7/pkg 7/pkg 7/pkg 7/pkg 7/pkg 7/pkg 9/pkg 9/pkg 9/pkg 9/pkg

00 Per Package

,0047mfd 9/pkg .005mfd 9/pkg

.Olmfd 9/pkg .015mfd 8/pkg

.02mfd 8/pkg 022m fd 8/pkg

.03mfd 8/pkg 039mfd 7/pkg 04 7mfd 7/pkg

.Imfd 6/pkg

PLESSEY POLYESTER MINI BOX

MF

V

s

MF

V

s

MF

V

s

.001

1000

.14

.012

630

.14

.15

100

.20

.0012

1000

.14

.015

400

.15

.18

100

.21

.0015

1000

.14

.018

400

.15

.22

100

.23

.0018

1000

.14

.022

400

,15

.27

100

.26

.0022

1000

.14

.027

400

.15

.33

100

.30

.0027

1000

.14

.033

250

.15

.39

100

.33

.0033

1000

.14

,039

250

.15

.47

100

.36

.0039

630

.14

.047

250

.15

.56

100

.44

.004 7

630

.14

.056

250

,15

.68

100

.47

.0056

630

.068

250

.15

82

100

.54

.0068

6 30

1 4

.082

250

.17

1.0

100

.60

.0082

630

.14

100

.17

.01

630

.14

.12

100

.18

MATSUO DIPPED TANTALUM

MF

MF

MF

1 35 .33 2.2 20 .33 10.0 35 90

.15 35 .33 2.2

22 35 .33 33

33 35 .33 4 7

.47 35 33 6.8

68 35 .33 6.8

1 .0 35

1.5 35

25

45 22.0 16 .45

40 33.0 20 1.32

.45 47.0 20 1.53

.42 68.0 16 1.62

.45

1% MICA 500V

51

PF

.29

220 PF .41

1500 PF

.60

62

PF

.29

240 PF .46

2000 PF

.90

75

PF

.29

300 PF .50

2200 PF

94

82

PF

29

390 PF .50

4700 PF 1

80

100

PF

.30

470 PF .50

5100 PF 1

80

120

PF

.32

620 PF .52

10000 PF 3.60

150

PF

.35

820 PF .53

180

PF

.41

1000 PF ,60

ALUMINUM ELECTROLYTIC (RADIAL LEAD)

470 50 BO

' 35 25 220 GO .50 1000 :

' 50 .32 330 ID .30 '000 3

) 10 IB 330 16 .33 1000 5

) 16 .20 330 25 .40 2200 3

RESISTOR KITS 5% CARBON FILM RESISTORS

COMPLETE WITH STORAGE BIN 1/4 WATT KIT

42 Different Values (68^ to 4.7 MQ) 20 Each Value

1/2 WATT KIT 42 Different Values (68l2to4.7 M£2) 20 Each Value

1/4W-$24.90 PER KIT 1/2W - $25.90 PER KIT

CARBON FILM RESISTORS (5%) Only in Multiples of WO pes per value (ohms) J4W .., $1.69 per 100 WW . . . $1.79 per 100

10

100

1.0K

10K

100K

1.0M

11

110

1.1K

11K

1 10K

1.1M

12

120

1.2K

12K

120K

1 .2M

13

130

1 .3K

13K

130K

1.3M

15

150

1.5K

15K

150K

1,5fyl

16

160

1.6K

16K

160K

1.6M

18

180

1.8K

18K

180K

1 ,8M

20

200

2.OK

20K

200K

2.0M

22

220

2.2K

22K

220K

2.2M

24

240

2.4K

24K

240K

2.4M

27

270

2.7K

27K

270K

2.7M

30

300

3.OK

30K

300K

3.0M

33

330

3.3K

33 K

330K

3.3M

36

360

3.6K

36K

360K

3.6M

39

390

3.9K

39K

390K

3.9M

43

430

4.3K

43 K

430K

4.3M

47

470

4.7K

47 K

470K

4.7M

51

510

5.1 K

51 K

51 OK

5.1M

56

060

5.6K

56K

560K

5.6M

62

620

6.2K

62 K

62DK

6.2M

68

680

6.8K

68 K

68 OK

6.8M

75

750

7.5K

75K

750K

7.5M

82

820

8.2 K

82 K

820K

8.2M

91

910

9.IK

91K

910K

9.1M

RESISTOR ASSORTMENTS

Each a«ortment coniains 5 pel oach rjt 10 different v Valuei included are shown in (Ohms) HW,5% {50 pes total). . .$1.75 / '/iW,5% (50 pes lotal). , .51.85

Asst.1 Asst.2 Asst.3: Asst.4. Asit.5 Asit.6:

Asst.7:

56 ohm

6B. 82, 10rj. 120, 150, 180 220 270. 330 390 ohm 47 0. 5 60. 680. 3 20 ohm. IK. 1 2K. 15K.I 8K.2.2K.2.7K 3.3K, 3.9K. 4.7 K, 5 6K. 6.8K.82K. 10K. 12K. 15K. 18K 22K. 27K. 33K. 39K, 47K. 56K. 6BK. 82K. 100K. 120K 150K. 180K, 220K. 270K. 330K. 390K .470K .560K 680K . 820K

1 2M.1.5M.1 8M.2 2M.2 7M.3 3M.3 9M ,4 7M .5 6M. CiW Assortment No 7 doesn't include 5.6M1 AsSt.8R:IAII seven dssorimenis annuel

V.W S% 350 ncs total $10,95 'AW 5% 350 pes total $11.55

SANKEN Series SI-1000G amplifiers are sell-contained power hybrid amplifiers designed for Hi-Fi, stereo, musical instruments, public address systems and other audio applications. The amplifiers have quasi-complementary class B output. The circuit employs flip-chip transistors with high reliability and passivated chip power transistors with excellent secondary breakdown strength. Built-in current limiting is provided for Sl1Q50G and all devices can be operated from a single or split power supply.

HYBRID AUDIO POWER AMPLIFIERS

• Multi-purpose linear amplifiers for comercial and industrial applicacations.

• Less than 0.5% harmonic distortion at full power level.

• 1/2 dB response from 20 to 1 00,000 H2.

• Single or split (dual) power supply.

• Rugged, compact and lightweight packages.

• Built-in cnrreru limiting for S1-1050G and efficient heat radiating construction.

TYPICAL CONNECTIONS

SI-1050G WITH SPLIT SUPPLY

LEFT

RIGHT

7400N SERIES

74 53N

22

74I4 5N

1.20

7454N 7459N

.22 .25

74147N 74148N

1.80 1.70

7400N

.16

7460N

.22

74150M

1.50

7401N

.20

7470N

48

74151N

1.10

7402N

.26

7472M

44

74152N

1.10

7403 N

.26

74 73N

.42

74153N

1.10

7404M

.22

7474N

42

74154N

1.10

7405M

.23

74 75N

.60

74155N

1.10

;406N

.36

7476N

60

74 1 56N

1.10

740 7 N

.36

7480N

.80

74157N

1.10

7408N

-28

7481 N

1.60

74 158N

1.30

7409 N

.28

7482N

1.40

74160N

1.20

74 TON

24

7483N

82

74161N

1 70

74 1 1 N

.27

7484N

1 20

74162N

1.80

7412N

.38

7485N

1.20

74163N

1.40

7413N

.48

7486N

.44

74164N

1.40

7414N

1 16

7-1 SON

2.20

74165N

1.50

7416N

.42

7490N

.56

74166N

1,50

741 7N

.42

7491 N

80

74167N

3 90

7420 N

.22

7492N

58

74170N

2.00

7421 N

.28

7493N

62

741 73N

1.60

7422N

.58

7494 N

.88

74174N

90

7423r,

34

749 5N

.90

74175N

1 20

7425N

.40

7496N

.80

74176N

1.10

742GN

28

7497N

4.00

74177N

1.10

7427 N

36

74100N

1.20

741 78N

1.30

74 28^

50

74104N

.50

74179N

1.70

7430N

.26

741Q5N

.90

74 180N

1.10

7432N

.32

74107N

.42

75181N

3.10

7433N

.44

74109N

.56

74 182N

1,00

7437 N

36

74 1 10N

.80

74184N

2.70

7438N

.35

74111N

.80

74185N

2.90

7439 N

.36

74116N

1.90

74188N

2.90

7440N

.26

741 18N

1.90

74190N

1.40

744 IN

.90

74121N

.48

74191N

1.20

7442N

.66

74122N

48

74192N

1.10

7443N

.74

74123N

.80

74193N

110

7444N

1.00

74125N

.54

74194M

1.10

7445N

1.00

74126N

54

75195M

1.60

744(5 N

1.00

74123N

.58

74 1 96IM

1.40

744 7 N

.98

74132N

1.40

74197N

1 30

7448N

.98

74136N

.90

74198N

1.60

7450N

74141N

1.60

74199M

1 40

745! N

74143N

4.80

74 200N

7 50

SI-1010G HOW output) . SI-1020G I20W output! . SI-1050G I50W output! .

. S 6.90 S13.95 . $26.80

l o--o

OOW J- J*

' o-^-o

T1 MI )3W„r

MICROPROCESSOR CRYSTALS

'FREQUENCY HOLDER PART

IMHz]

NUMBER

1 00

HC33

CY1 A

2.00

HC33

CY2A

6.75

3.2768

HC33

CY3B

4.80

■1 00

HC18

CY3A

4.80

4.134

HC18

CY4C

4 80

500

HC18

CY7A

4.80

5.7143

HC18

C85C

4.80

6.00

HC18

CY6B

4 80

10.00

HC18

CY12A

4.35

14.31818

HC18

CY14A

4.35

1 5.00

HC18

CY15A

4.35

18.00

HC18

CY19A

4.35

20.00

HC18

CY22A

7.20

23.684

HC18

CY23B

4.35

27.00

HC18

CY27A

4 35

32.00

HC18

CY30B

4.35

MICROPROCESSOR & SUPPORT CIRCUITS

Data Sheet with Application Notes - $0.50

; I!'

1.30 2.10 1 80 3.40

P80H0A CHORDA C1702A C2708

P8J12

P8214

P821G

AMB234PC

P822G

AM B??>i PC

19 GO 13.40 □ 3 GO

P240G 2GI2K

2524V

252i.V

2G33V

N8T2GB

N6T97

Id.30 MH0070CH

13GO P2101

9.30 P2101 1

4 30 P2102

a 00 P2102 1

? 40 P2111

4.90 P2111 1

3.10 P2112

7422 IN 74247N 74251N 74278N 74279N 74293N 74298N 74365N i

74L'S

74LS00N /4LS01N < 74LS07N ; 74LS03N : /4LS04N ; 74LS05N : 74LS08N : 14 LS09N < 74LS10N .: 74LS11N .; 74LS15N 74LS20N 74 LS21M 74LS22N 74 LS26M 74L527N 74LS28N 74L330N 74LS32N 74LS33N 74LS37M 74 LS38N 74LS40IM 74 L342N

74LS75N .70

74LS90N 84 74LS258N 1 10 74H76 A

74LS92N .86 74LS260N 44 74H101 '

74LS93M .86 74LS261N 1.90 74H102 '

74LS95N 1 00 74LS266N T> 74H1Q3 t

74LS96M 124 74LS273N 2 66 74H106 i

74LS107M ,46 74LS281N 7 60 74H103 t

74LS109N 46 74LS283N 2 00

74LS112N .64 74LS290N 1 76 nAC

74LS113N .64 74LS293N 176

74LS1 14N 92 /4LS299N 6 14

74LS123N l 10 /<-.LS3(;5M 70 74SO0

74LS125N 60 74LS367N 70 74S01

MLS132N 1 44 74LE374N 3 3,

74LS136N 14 74LE3/5N .82

74LS138N 99 74LS378N 1 60

74LS139N .99 741.S331N 4

74LS145N 1 64 74LS386N' 72

74LS148N 3.45 74LS399N 2 15

74LS151N 88 74 LS670N 3 95 74LS153N

74LS155N 1.50 74LS157N .88 74LS158N .99 74LS160N 1.25 74LS161N 125 74LS162N 74LS163N 74LS164M

74 H

.yy 74 hoi

1.25 74H04 5 25 MH05 1.25 74H08 1 25 74HIO 1 50 74H11

74LS170N 3.20 74H20 74LS174N .80 74 H21

74LS175M 74LS181M 74LS190N 74 LS191N 74LS192N

.80 74H22

'■92 74H30

^^O 74H40

1 50 74H50

1 20 75H51

74LS193N 1.21 74H5?

74LS194N 1 32 74H53

74LS195N 99 74H54

74LS196N 2.76 74H55

74LS197N 2.84 74H60

74LS221N 1 76 74H6I

74LS241N 3.00 74H62

74LS251N 1.10 74H72

74LS253N 1 10 74H73

74LS257N 95 74H74

74S02

74S03

74S04

74S05

74S08

74S09

74510

74S11

74S15

74S20

74S21

74S22

74S30

74S32

74 S3 7

74S40

74S50

74S51

74S60

74S64

74S65

74S74

74S76

74S78

74S85

74S86

74S1 12

74S113

74S114

74S133

74S134

74S138

74S139

74SI 40 74S151 74S153 74S154 74S157 74S158 74S160 74S161 74S172 74S174 74S1 75 74S178 74S179 74S181 74S182 74SI 89 74S194 74S195 74S196 74S197 74S251 74S253 74S257 74S258 74S260 74S280 74S289

74 COON 74 CO 7 N 74C04N 74C08IN 74C10M 74C14N 74C30N 74C32N 74C42N 74C48N 74C73N 74C74r\l 74C76M 74C83N 74C85N 74C86N

3.60 3.60 6.00 2.00 2.00 2.36 236 6 00

2 36

3 20 2 00

2.08 3.32 1.00

M F AWCRONA DISCOUNT POLICY

^ FOR ALL 7400SERIES TTL IC S

BUY 10 PER TYPE

BUY 25 PER TYPE

BUY 100 MIXED ( 10 PER TYPE!... BUi 1000 MIXED (2G PER TYPE!

. G;„ DISCOUNT

10% DISCOUNT

15". DISCOUNT

20% DISCOUNT

MNG040 CMOS PLL

Singh; chip phiise locked loop iriiHiidoU lor use as a traquencY »ynthesiiei m CB iransCEivers and oiher com

S7.90

LINEAR FET INPUT OP AMP

LF355H 1.60 LF355N 1.10 LF355/\H 22.50 LF356H 1.10 LF356AH 22.50 LF357H 1.60 LF357N L F 35 7A h

25 50

MD4301 CMOS ALARM CIRCUIT IC S2.50 SANKEN HYBRID POWER OP-AMP - up

AC rms) power output — Built-in Tiling — 1/2 clB response from DC to 100,000 Hz - Terminal for external feedback SI-1050 GS $33.80

WIRE WRAP TOOL WSU-30 S5.95 Strips, wraps and unwraps 30 ga. wire on standard wirewrapping pins. 50' roll wire, specify color red, blue, white or yellow 51.98 WIRE WRAP KIT WK-2 S11.95 Includes WSU-30 tool, 50 ft roll of 30 AWG wire and 50 fi roll of 30 AWG wire and 50 pes ea of 1", 2", 3" and 4" lengths of prestripped wire. Specify color red, blue white or yellow.

LINEAR ICS

LM101 AH LM 1 01 F LMIO'iH LM105F LM106H LMIOVH L M 1 OS H LM 109 K LM 1 14 LM1 18H LM201 H LM201 AH LM201 AN LM202H LM205H LM206H LM207H LM208H LM209H LM209K LM210H

LM218H LM3O0H LM3D0N LM301 AH LM301 AN LM3D2H

LM302N LM304H

3.50 LM305H

5.65 LM30GAH

4-90 LM305N

9-00 LM30CH

9.00 LM30/H

3.95 LM307N

4.90 LM308H

8.00 LM308AH

3.40 LM308NI8I

14.50 LM309H

.98 LM309K

3.00 LM310H

3.90 LM310D

7.00 LM311D

6.80 LM31 1 NI8)

12.50 LM311H

3.50 LM312H

6.00 LM31SH

5.00 LM318H

5.40 LM318N(ai

5.70 LM319N

3.45 LM324N

9.50 LM339N

1.50 LM380N

1.50 LM381N

.90 LM555CN(BI

.90 LM556CN

3.40 LM709CN

90

I709CH 7 IQCH

.1 71 OCN

1 .40

2.30 LM715H

1 50 LM715CH

6.80 LM715CD

.95 LM723CH

.90 LM723CD

1.50 LM723CN

6.30 LM725H

1.50 LM725CH

1 90 LM725CD

1.90 LM733CH

3 30 LM733CD

3-80 LM733CN

■20

J1741

1.30 LM74

1.40 (.M741CD

3.50 LM741CNI8)

5.20 LM741CN

3.50 LM747CH

3.10 LM747CD

3.60 LM747CN

1.40 LM747D

1.40 LM748H

1.50 LM74F.CFI

2 30 LM748CN(BI

.90 LM74BCN

1.20 LM1458CH

3 30

AUDIO POWER AMPLIFIERS 5,5 WATT AN315

Designed for mobile radios, tape players, etc. Easy to use, High Gain - 53 dB (Closed Circuit), S3.90 ea.

SPECIAL

FAIRCHILD

LM741PC 3 for SI.00

DIP SOCKETS

74C89N

14,00

74C90N

1 36

74C93N

1.36

74C95N

1 80

74C107N

1 90

74C151N

3.82

74C154M

5.70

74C157N

3.42

74C160N

2.04

74C161 N

2.04

74C162N

2 04

74C163N

2.04

74C164N

1 80

74C16GIN

1 80

74C173N

166

74C174N

1.66

74C175fJ

1 66

74C192N

2 04

74C193N

3 74

74C221N

2.04

74C901N

1.00

74C902N

1.00

74C903N

1.00

74C904N

1.00

74C906N

1 00

74C907M

1 00

74C914M

2.20

74C922N

5.70

74C92i3N

2.00

74C926N 12.00

30C95N

1.16

80C97M

1.00

C MOS

J000AE

it.

4001OL

1 M

1006 At

?'l

1008 A E

1 I'O

4009 At

?ft 32

1014AE

4015AE

1 20

4027AE 4029AE

4040AE 1042AE 4Q43AE

4040 A I: 40G0AE

4051J5E 4052AE 4053/. F

405GAE

407OAE 4071flf 40/2AE

40 7GAE

407SAE

4098AE 4502AE

4516AE 4&1SAE 4620AE

28 Pin 99 36 Pin 1 39 40 Pm 1 59

1 -24 25-49 50 UP

TO-220 VOLTAGE REGULATOR FROM FAIRCHILD

78D5C 5V 7815C 15V 7806C GV 7818C 18V 7808C 8V 7824C 24V 7812C 12V

2 for $1.20

INTERSIL 8038 PRECISION WAVEFORM GENERATOR AND VCO

For simultaneous sine, square and triangular waveforms -C.001 Hz to 1 MHz. PART NO. 8038CCPD S3.90

MOTOROLA'S EDUCATOR I MICROCOMPUTER HEP KIT

■ Motorola M6800 Technology

• Test-as-you-builtl in easy steps normally one evening assembly

• Completely self contained with all parts, cabinet and instructional

Get started in the fascinating

world of Micro Computers SI 69.95

for only

EDUCATOR II POWER SUPPLY KIT

• 5 V fi* 1.0 Amps •Designed specifically for Educator II Microcomputer

irtmiiiiiiinnilH iimnn

NEC SINGLE BOARD

TK-80 MICROCOMPUTER

FOR LEARNING 8080A S395.00 MICROCOMPUTER SYSTEM

• Single board rnicrocomputer system. » On board displays and keyboard,

• Powerlul monitor program in lactory coded ROM.

• Easy system operation.

• CMOS RAM battery back up capability.

• Provisions for audio cassette tape for ex ternal storage.

• System expandability.

• Battery operation capability.

• Instructive program examples for learning.

• Informative documentations.

F8 ASSEMBLED KIT

SIGNETICS 8080A EMULATOR KIT

AM2900 EVALUATION AND LEARNING KIT

Microcompu

ter System

The KIM Family

S245.00

K 1 .VI 3

1 79.00

HK Static VliTT'orv Mo

80.00

K IM ROM 1

1 50 00

1:0 00

K IM Document,!

S9.95

9 9f,"

9 9!.*

9 9G

KIM Maio Suii'miimn

4.95

Cross Alternate'

4;S6

Terminal Imorl.ice Mo

9.9S

KIM AssoitHHu. Manua

9.9D

KIM Tb*( EOHO'

No. 101 250 pa«e INFORMATION BOOKLET Only M.95

MAIL ORDER ADDRESS - P.O. Box 2208Y, Culver City, CA 90230. Send check or money order, COD, Master Charge and BankAmericard welcomed. Minimum Order: $10.00. Add S1.00 to cover postage and handling. California residents add 6% sales tax. TELEPHONE ORDERS: Call (213) 641-4064.

ANCRONA STORES DO NOT ACCEPT MAIL OR TELEPHONE ORDERS

CALIFORNIA ANCRONA

1 1080 Jefferson Blvd. Culver City, CA 90230 (213) 390-3595

CALIFORNIA ANCRONA

1300 E. Edinger Ave. Santa Ana, CA 92705 (714) 547-8424

ARIZONA ANCRONA

4518 E. Broadway Tucson, AZ 8671 1 (602) 881-2348

OREGON ANCRONA

1125 N.E. 82nd Ave. Portland, OR 97220 (503) 254-5541

GEORGIA ANCRONA

3330 Piedmont Rd., NE Atlanta, GA 30305 (404)261-7100

TEXAS ANCRONA

2649 Richmond Houston, TX 77098 (713) 529-3489

CANADA, B.C. ANCRONA

Vancouver

Circle 454 on inquiry card.

Digital Research Offers New Microcomputer Software

Diskette

CP/M is a floppy disk operating system designed for use with IBM compatible floppy disk computer systems which employ the Intel 8080 processor. Functions of this software package include named dynamic files, program editing, assembly, debugging, batch processing, and instantaneous program loading. CP/M can be adaptable to any 8080 or Z-80 computer system with at least 16 K bytes of main memory and one or two IBM compatible disk drives. Price for a complete CP/M system in object form with documentation is $70; documentation (set of six manuals) alone is $25. For further information, contact Digital Research, POB 579, Pacific Grove CA 93950.

Circle 597 on inquiry card.

Tychon Introduces New 8080 Editor/Assembler

Tychon's new co-resident editor/ assembler, called TEA, is designed for use with 8080 systems and incorporates some useful features. The program resides in 5 K bytes of memory, and can accept either octal or hexadecimal values. The switch from one number base to the other can be made at any time through keyboard commands.

TEA can be relocated in memory using a built-in relocator feature. The price is $35 for a paper tape version of TEA plus the user's manual. The program is also available loaded into 1702A or 2708 programmable read only memory integrated circuits.

For more information, write to Tychon Inc, POB 242, Blacksburg VA 24060."

Circle 598 on inquiry card.

BLOS and ZAPS

BLOS (rhymes with gloss) and ZAPS are two operating systems announced by Algorithmics for the 8080 and the Z-80 respectively. They are directly loadable on Digital Group systems via cassette. BLOS requires 12 K and ZAPS, 13 K of memory. ZAPS assembles all Z-80 instructions; BLOS assembles only instructions executable by the 8080. BLOS and ZAPS are identical otherwise. Programs written in the 8080 subset are transferable from one system to the other.

The text editor within BLOS and ZAPS is much like those used on timesharing systems. Because it is a full context editor, no line numbers are required. You may edit any of up to 16 files in memory. Only the actual data bytes are stored. Editor commands include input, insert, delete, replace, change, global change, up, down, top, bottom, string search, print and print current line number.

The assemblers feature user-defined commands, switchable number bases, and a full set of cassette operations.

Contact Algorithmics Inc, POB 56, Newton Upper Falls MA 02164."

Circle 599 on inquiry card.

A Microprocessor Development Kit

Aivex Inc has a new product that should be of interest to those who work with the PDP-11 computer: the MAX-11 conversion kit. The package, which converts a PDP-11 into a microprocessor development system, consists of a cross assembler, simulator and PROM programmer. The cross assembler is said to feature a user defined macro library, local symbols, symbolic cross reference, listing controls and conditional assembly. The simulator features eight break points, single step with trace, external device simulation, interrupt simulation and real time cycle counter. The programmer accepts data from a PDP-11 disk through an RS-232C interface. The kit is presently available in 4040, 8080 and 6800 versions. The price for the simulator plus assembler is $1250; the progammer is $2300.

Contact Aivex Inc, 6 Preston Ct, Bedford MA 01730, (617) 275-2333.

Circle 600 on inquiry card.

A Hardware and Software Catalog

TDL's new catalog features a variety of hardware and software products, including the Z-16 memory module, a 16 K byte static programmable memory card. Maximum access time is 200 ns, and the kit price is $574.

Also described is the XITAN series of mainframes and the Zapple monitor and text editor. A relocating macroassembler is offered along with several BASIC packages and disk software.

For a free copy of the catalog, contact Technical Design Labs Inc, Research Park, Bldg H, 1101 State Rd, Princeton NJ 08540 (609) 921-0321.■

Circle 601 on inquiry card.

An In-Depth Software Package

Sublogic Company of Culver City CA has announced 3D graphics for microcomputers. The Sublogic 3D micrographics package allows the user to view two-dimensional perspective projections of three-dimensional scenes from any location in space. Driving and flying simulations, artistic projections, design projections, engineering analysis and advanced games are some of the applications.

Two versions of the graphics package are offered: a minimal subset BASIC version for general purpose slow speed graphics on any microcomputer system, and a 6800 assembly language version with dynamic graphic capabilities for advanced simulation and complex graphics.

Adaptation instructions, program listings, applications, interface and testing information are supplied with each package. The BASIC version costs $22; the 6800 package is priced slightly higher. Dealer inquiries are welcome. For further information contact Sublogic, POB 3442, Culver City CA 90230."

Circle 602 on inquiry card.

LSM Engineering's New Text Editor and Operating System

Need a text editor or an operating system for your computer? LSM Engineering, POB 3243, Orange CA 92665, now offers both of these items.

EDIT is a text editor designed to edit source files for BASIC, FORTRAN, assembly language, etc, which utilize the standard 96 character ASCII set. Source files can be manipulated by character, string, line and page to create additions, insertions, replacements and deletions to text.

LSM's Small Operating System, called SOS, has commands for saving, loading and verifying data blocks in conjunction with a Tarbell cassette interface, as well as memory fill, memory block transfer, block verify and memory dump routines. SOS resides in 2 K bytes of read only memory and is supplied with a commented source listing and information to enable the user to patch in up to four new keyboard commands without reassembly.

EDIT is available for $22.50 on Tarbell block form cassette or paper tape, and SOS costs $15 on Tarbell block form cassette."

Circle 603 on inquiry card.

190

WE PAY POSTAGE!

D.R.C. ELECTRONICS

P. 0. Box 401247, Garland, Texas 75040 (214) 271-2461

16K E-PROM CARD

S-l 00 (1MSA1/ALTAIR) BUSS COMPATIBLE

DEALER INQUIRES INVITED SPECIAL OFFER: Our 2708's (650 NS) are $12.95 when purchased with above kit.

$69.95 (KIT)

IMAGINE HAVING 16K OF SOFTWARE ON LINE AT ALL TIME! KIT FEATURES:

1. Double sided PC Board with solder mask and silk screen and Gold plated contact Fingers.

2. Selectable wait states. S USES

3. All address lines and data lines buffered!

4. All sockets included.

5. On card regulators.

KIT INCLUDES ALL PARTS AND SOCKETS! (EXCEPT 2708's)

ADD $25 FOR ASSEMBLED AND TESTED

2708

2708

1KX8 EPROMS

Prime new units from a major U.S. mfg. 650 N. S. access time. Equivalent to four 1702A's in one package! GOING INTO ^

BUSINESS $15.7 5 each

SALE!

8K LOW POWER RAM KIT

$149.00

(Kit of All Parts and Sockets)

(S-100 BUSS COMPATIBLE)

The last word in RAM Kits. Uses 21L02-1 RAM's. All address and data lines fully buffered. PC Board is solder masked and silk screened and has gold plated contacts. Four regulators with heatsinks included.

ADD $30 FOR ASSEMBLED AND TESTED

OPCOA LED READOUT

SLA-1 Common Anode. .33 In. character size. The original high efficiency LED display. $.75 each 4 FOR $2.50

741C OP AMPS

MINI DIP. Prime New Units. Has computer MFG's house number. 12 FOR $2 100 FOR $15

DISC CAPACITORS

.1 MFD 16 V. P.C. Leads

Most Popular Value! P.C. Leads. By Sprague. 20 FOR $1

TANTALUM CAPACITOR

1 MFD. 35 V. Kemet. Axial Lead. Best Value. 10 FOR $1

T. I. ASCII CHARACTER GENERATOR

TMS 4103 JC. 28 PIN CER DIP. Has seven bit COLUMN Output for use with Matrix hard copy devices. With specs. $3.50

MOTOROLA 7805R VOLTAGE REGULATOR

Same as standard 7805 except 750 MA OUTPUT. TO-220. 5VDC OUTPUT.

$ .44 each 10 FOR $3.95

NATIONAL SEMI. MA1003 CAR CLOCK

Not a kit. Complete tested module. Works on 12 VDC, has on board time base. Sold by others at $24.95. Big .30" Bright Green Digits. Same as used by Detroit in new cars.

$19.95

EDGE CONNECTOR — $1.50

Z - 80 PROGRAMMING MANUAL

By MOSTEK, the major Z - 80 second source. The most detailed explanation ever on the workings of the Z - 80 CPU CHIPS. At least one full page on each of the 158 Z - 80 instructions. A MUST reference manual for any user of the Z - 80. 300 pages. Just off the press! A D.R.C. exclusive! $"| 2.95

TRW POWER DARLINGTON

15 AMP 500V NPN. $2 Each

HIGHSPEED SCR

TO-66 5 AMP 250 PIV. By Hutson. $.69 Each

TERMS: ORDERS UNDER $15 ADD $.75. NO C.O.D. WE ACCEPT VISA AND MASTER CHARGE CARDS. MONEY BACK GUARANTEE ON ALL ITEMS. TEXAS RESDDENTS ADD 5% SALES TAX.

ELECTRONICS p o box 40

Circle 455 on inquiry card.

247 • GARLAND, TEXAS 75040 • (214) 271-2461

A New Plotter for Microcomputers

Axiom Corp has introduced a compact graphic plotter, called the EX-810, which is designed to operate with microcomputers. The unit prints 8,192 dots per second with up to 512 dots per row. It can function as an 80 column alphanumeric printer with a speed of 160 characters per second.

The EX-810 is designed to be driven by an 8 bit microprocessor and is equipped with a TTL compatible controller which takes care of all the internal timing functions necessary to drive the printhead and advance the paper. Printout is initiated by a single input command which causes the eight track non-impact printhead to move across the printing field in approximately 240 ms. Margin and printhead position marker signals are fed back to the microcomputer and may be used to synchronize an eight bit scanning raster to the printhead driver input. The user can vary the horizontal dot resolution by generating an external timing cycle for the input raster.

The EX-810 is a self-contained unit with case power supply, paper holder, infrared low paper detector and bell. The dimensions are 9.625 by 4 by 10.875 inches (24.45 by 10.16 by 27.62 cm), and 5 inch (12.7 cm) wide electrosensitive paper is used for printing. Applications include printing forms, tickets, logos, maps, pictures and charts.

The price is $795 in single quantities. OEM discounts are available.

Contact Simon Harrison, vice president of marketing, Axiom Corporation, 5932 San Fernando Rd, Glendale CA 91202. (213) 245-9244.«

Circle 604 on inquiry card.

EPA Micro-68a Computer Now Available in Kit Form

Programmable Gain Amplifier Card

National's New 16 Bit Microcomputer: the IMP-16L

The Signal Laboratories Inc Programmable Gain Amplifier card (PGA) is a Zilog Z80 MCB compatible accessory offering two channels of computer controlled amplification. Each channel has filtered and unfiltered outputs. Under control of the Z80 MCB, the gain of each channel may vary from unity (0 db) thru 54 db (70 db optional) in 2 db increments, with gain accuracy of 0.1% (0.01% optional). Similarly, the Z80 MCB may select any one of eight user-selectable bandwidths for each channel's filtered output. Unfiltered outputs are 3 db down at 50 KHz. The Programmable Gain Amplifier (PGA) is one of a family of Zilog Z80 MCB compatible accessory cards available from Signal Laboratories Inc, 202 N State College Blvd, Orange CA 92668. Price for quantities under ten is $395, available from stock.*

Circle 605 on inquiry card.

A State(ment) of Flux

There are many sources of information available to the experimenter which teach the art of soldering, but few of these sources give a detailed explanation of the metallurgy and physics involved in the process. M W Dutton Company, Consumer Products Division, 350 Kinsley Av, POB 6205, Providence Rl 02940, has bridged the solder gap with a well-written brochure entitled "Dunton's Nokorode Soldering Guide." Topics covered include the composition of solder, solder alloy phase diagrams, mechanical properties of solder and a discussion of solder flux. The brochure is free for the asking.*

Circle 606 on inquiry card.

Anyone looking for an alternative, to the many existing 8 bit word microcomputers will be interested in National Semiconductor's new 16 bit microcomputer called the IMP-1 6L. The unit has a high speed asynchronous bus and a data controller that allows direct memory access (DMA) data transfer rates of up to 16 million bps. It comes complete with 4 K by 16 bits of programmable memory expandable to 64 K by 1 6 bits. A 20 mA interface is also provided.

There are 60 general purpose instructions, including multiply, divide, double precision add and subtract, and numerous bit oriented instructions. A control read only memory is also provided in two different versions to speed calculations.

The IMP-16L has four general purpose registers and a 16 word last-in-firstout stack. IO lines include eight general purpose flags, one general interrupt, one vectored interrupt, and four general purpose jump condition inputs. Cycle time is 1.4 ms. Typical register to register addition time is 4.9 ms, and memory to memory addition time is 8.4 ms. One direct memory access transfer takes 1.05 ms.

Software support includes diagnostic routines, a resident assembler, plus a variety of cross-assemblers. The system's architecture permits the installation of up to three central processing units (CPUs) for multiprocessing. The unit costs $825 and up, depending on memory size and options, and is available either from distributors or directly from the manufacturer. For more information, write to National Semiconductor, 2900 Semiconductor Dr, Santa Clara CA 95051."

Circle 607 on inquiry card.

Electronic Product Associates Inc, 1157 Vega St, San Diego CA 92110, has announced the Micro-68 computer kit

for $385, which includes power supply and cabinet.

This computer kit comes complete with 16 key hexadecimal keyboard and 6 character hexadecimal display. It uses the Motorola 6800 processor design. Sockets are provided for 768 bytes of volatile programmable memory (128 words supplied with kit). The MON-1 keyboard operating system is supplied in PROM form so that the computer is ready to run upon completion of construction. Commands include inspect and change, load user's program, run

user's program, insert break points and save stack. Sixteen bits of IO are provided to the side connector, while the main bus is accessible at the front connector. Full bus buffering provisions are provided on the board. A piggyback Teletype/video display/audio cassette adapter is available.

The Micro-68a is fully compatible with the Micro-68b for later upgrading into a larger system and is available from stock."

Circle 608 on inquiry card.

192

Features/ service, price!

and a selection of S-100 compatible kits to match.

8Kx8 Econoram II

single Kit $163.84 3 kits 24K of memory!-$450

Configured as two separate 4K blocks for maximum flexibility. Individual protect for each block; provides interrupt if write attempt is made into protected block. Buffered data in, address in, and outputs. Tri - state outputs. Guaranteed under 1.5 A and faster than 450 ns. Use with 1 wait state (logic implemented on board) with 4 MHz Z-80. Writes on either PWR or WRITE, your choice. Low power Schottky support ICs. Lots of bypass caps. Sockets for all ICs. Legended, solder masked double-sided board.

ALSO: 8K ECONORAM II, assembled, tested, warranted for 1 year $188.50

4K ECONORAM in kit form $100.00

4K ECONORAM, assembled, tested, warranted for 1 year $120.00

CPU

power »*©

Provides a well-regulated 5V@4A, + 12V0 *sA, -12V @ HA, and adjustable negative bias voltage. Crowbar overvoltage protection keeps TTL from getting zapped. Compact construction. Recommended for bench work as well as powering small computer systems.

AcrivE TermInator $29,50

Plugs into any S-100 Motherboard whose buss lacks active terminations. Cleans up noise, crosstalk, overshoot, and other buss problems that can scramble data unpredictably.

MOTHERBOARD $90 ...also 18 SLOTS $124

Includes all edge connectors, plus active terminations to minimize crosstalk, noise, overshoot, and ringing that may be present with unterminated busses. Excellent for stand alone system, or add on to existing systems.

8080 SOFTWARE BOARD $265

Gets you away from talking to your 8080 in machine language by giving editor, assembler, and monitor routines programmed in F-ROM. Low power.

Unprogrammed ER0M boards are also available; use for custom routines. Do the programming yourself or take advantage of our programming services.

2K (smaller) ECON0R0M Htm $195.00

4K (basic) ECONOROM 11*™ $250.00

8K (larger) ECONOROM Ildii $350.00

Mullen Opto-isolator/Relay Board $117*

HieWiinderBuss™

This 20 slot motherboard, that includes all edge connectors, is designed to function in even the most adverse electrical environments. Includes active termination circuitry and double-sided board $154

The Speakeasy

More than a cassette interface: handles 3 cassette 1/0 channels, but also has RS-232/teletype interface, 8 bit parallel port with handshaking signals...and includes integral RAM and ROM to drive it all $120

Morrow Front Panel

This integral front panel / CPU card offers maximum debugging and programming flexibility, thanks to the ability to examine and alter memory, 1/0 ports, and more while your program is running $250

TERMS: Please allow up to 5% for shipping, more for power supply; excess refunded. Prices good through end of magazine cover month. Californians add tax. CODs accepted with street address. For BankAmer i card®/VI SA®/Mas t ercharge® orders ($15 min) call 4 1 S-562 - 0636 , 24 hours.

BILL GODBOUT I BOX 2355, OAKLAND AIRPORT, CA 94614

reed relays respond to an 8 bit word sent by your computer; also, 8 opto-isolators accept an 8 bit word from the outside world and send it to your computer for handshaking or further control. Comes with applications notes and detailed instructions. Typical uses include model railroad intelligent switching, audio switching, burglar alarms, etc.

Mullen Extender Board $ 35

Allows you to troubleshoot and inspect boards outside of the system in question. Integral logic probe uses 3 different colored LEDs to indicate hi, lo, and pulse. Special edge connector makes for easy clip lead probing 5 lead identification. Non-skid probe.

One of the reasons we can offer these kits for such reasonable prices is that we do a big business in parts...far too many parts, in fact, to list in an ad this size. But if you are looking for a source of DB-25 connectors, edge connectors , and more...send for our flyer.

Circle 456 on inquiry card.

Classified Ads j

FOR SALE: Assembled SwTPC CT-1024 TVT2 with computer controlled cursor, less power supply, $200. Assembled SwTPC TVT CT-L board, S15. Assembled IMS UCRI cassette interface, S40. Tarbell cassette tapes of 2 K MINOL 2.2 (a Tiny BASIC) or 8 K EMPL 1.0 (a micro APL for the 8080), $10 (user's manual included). Erik Mueller, 36 Homestead Ln, Roosevelt NJ 08555. (609) 448-2605.

FOR SALE: SwTPC CT-1024 with ASCII keyboard, memory board, power supply, and parallel interface for $150. KIM-1 with homemade power supply S200. Mike-2 8008 computer with commercial power supply, 2 K of RAM and 14 K of ROM for $200. Alan Feldman, 1114 Cameron Av, LaCrosse Wl 54601. (608) 782-1921.

FOR SALE: KIM 1 (MOS) computer board mounted in cabinet with built in power supplies. Excellent condition, $220. Roger Cox, 4327 N Chestnut, #18, Colorado Springs CO 80907.

WANTED TO BUY: Hewlett-Packard 9830A calculator, 4 K word memory preferred. Also, matrix ROM, strings ROM, mass memory ROM, and 9866A or 9871 A printer. Consolidated Papers Inc, POB 50, Wisconsin Rapids Wl 54494, Attn: Purchasing Dept.

FOR SALE: NATIONAL SC/MP LCDS Development System. Used once. Perfect condition, in original factory carton. Includes CPU card, LCDS, all manuals, $400. MC Devine, 31 Crestview Dr, Westerly Rl 02891. (401) 596-7718.

FOR SALE: Several new 12 V stepping motors, with specs for $25. (Haydon part #9904 112 05001). These are normally sold for $49 in single quantities. Applications for stepping motors include robots, printers, XY plotters, NC machines, peristaltic pumps, etc. Mahesh K Shah, 4240 Clarendon, #63, Chicago IL 60613.

WANTED: Contact with persons who have a serious personal interest in using a microcomputer for stock and commodity market investment purposes. If covariance is more than just another word to you, send a brief note of your desires, qualifications and market experience/involvement to J Williams, 2415 Ansdel Ct, Reston VA 22091. An association is being formed.

6500: I have just bought an ECD Corporation MicroMind (based on the 6500 microprocessor family) and would like to get in touch with other people who have recently bought this system to exchange notes, problems, software, etc. I would appreciate anyone who wishes to (and this includes any 6500 family users, too) getting in touch with me to exchange addresses and, hopefully, information. Gregg Williams, 3439 Southern, #7, Memphis TN 38111.

FOR SALE: Five MITS 4 K dynamic memory boards. All in working order and run BASIC. $90 each. 1 ACR, working, $85. One ALTAIR 8800a. Has all power modifications including large capacitor, 14 edge connectors in mother board. $500. Danny L Quinton, POB 23496, Emory University, Atlanta GA 30322.

NEW EPROM PROGRAMMER for2708'sand 2716's

The new low cost PP-2708/16 PROM programmer from OAE is the only programmer with al I these features:

• No complex interface to wire, just plug the programmer into a 2708 memory socket and clip one wire to the "wait" buss!

• Driving software is short and simple!

• 10 turn cermet trimmers for precision voltage and pulse width adjustment1

• DC to DC switching regulator

• Anodized extruded aluminum case for table top operation

• Zero insertion force socket

• 2 programmers for the price of 1

Programs both the popular 2708 (1024x8) and the new TMS 2716 (2048x8) EPROM's!2

The OAE PP-2708/16 module turns your computer into a powerful full feature PROM programmer. OAE's exclusive interfacing technique makes it a snap: simply plug the PP-2708/16 into a 2708 read only socket. A short software routine sends data over the address lines to program the PROM.

SAVE $50.00. For a limited time we are selling the assembled, tested and aligned unit at the kit price! Only S249.003

1Let us know whose PROM's you are using and we will align our programmer for optimum date retention and longest PROM life.

2Also available is our Model PP-2716 programmer for Intel's unique 2716 EPROM. Same LOW PRICE.

include $3.50 for domestic shipping and handling. California residents include 6% tax.

NEW LOCATION!

★ SPECIAL ★ OAE . ,. _ . . ,

Oliver Audio Engineering, Inc.

TMS 2708'S AT COST 676 West Wilson Avenue

ONLY $19.95 EACH Glendale, CA 91203

(213) 240-0080

PROM PROGRAMMING: From Hex or Octal listing: 2708s ($16), 1702As ($5). From Hex/ Octal paper tape: 2708s ($8), 1702As ($41. You supply the PROM. 48 hour turnaround. Quantity discount: 1 to 3 PROMs 0%, 4 to 7 PROMs 10%, 8 to 11 PROMs 15%, 12 or more 20%. They can all be different. I also have a few 1702As at $6 each. HS Corbin, 11704 Ibsen Dr, Rockville MD 20852. (301) 881-7571.

FOR SALE: Honeywell keypunch keyboard (reed-switched keys). No enclosure or electronics, $20. Richard Sims, 64 Charlesgate E Apt 75, Boston MA 02215.

FOR SALE: 1 absolutely brand new IMSAI 8080 system. 12 K memory. Also brand new 33 ASR and Panasonic tape recorder. All working and totally unused. Call toll free (800! 221-2628 or write Bernard Rome, 375 Park Av, New York NY 10022.

FOR SALE: Computer Automation 216 mini, complete and working with 8 K core, 16 bit processor, ITY Zoma controller, and miscellaneous electronics. Interfaced to Dr Suding 1100 baud cassette, software included: assembler, editor, debug, loaders, plus miscellaneous diagnostics. May consider trade up or down. Rich Adamson, 1517 Lucia, Fairmont MN 56031. (507) 235-6321.

FOR SALE: 3M DC300A data cartridges which work in the IBM 5100, TEKRONIX, DEC and similar equipment at a club price of $18 per data cartridge plus the cost of postage. IBM 5100 Users Group, c/o HITS Inc, 5541 Parliament Dr, Suite 104, Virginia Beach VA 23462. (804) 490-0154.

FOR SALE: Computer software to print signs. Print long horizontal signs in large block letters. Output letters are 100 print characters high by 50 print lines wide and are printed with characters of that letter. Complete program source text listing and instructions. Program is written in PL/I and is 517 statements long. Send only 517 cents plus 33 cents for mailing. David Sligar, 7091 Pickway Dr, Cincinnati OH 45238.

WANTED: Copies of book Computer! by J A Titus as published circa 1974 by Radio-Electronics Magazine. Also any other literature on 8008 microproprocessor circuits, printed circuits layouts, etc. A C Acton, POB 31, Midland Ml 48640.

WANTED: BYTE issues November 1975 and April, May 1976. Will pay almost any price for well preserved copies. Send price and condition information to Chris Sutter, RR 2 Box 370, Collinsville I L 62234. 1618) 344-6552.

WANTED: I have a Digtal PDP-8/m computer, and would like to buy any or all of the following options: MM8-E 4 K core $200, MM8-E/J 8 K core $400, MP8-E memory parity $200, KL8-E serial interface $150, DK8-EA line clock $100, DK8-EC prog clock $150, KE8-E extended arithmetic unit $150, I am willing to bargain. T J Miles, 3970 Saanich Rd, Victoria BC CANADA V8X-1Y6. (604) 479-1752.

FOR SALE: SwTPC PR-40 alphanumeric printer. Unit is assembled, tested, and adjusted. Used nine months without problems. All documentation and four rolls of paper tape provided, $350. Also one TVT1 with two pages of memory, keyboard, UART cassette tape IO, computer control interface. All contained in case. Al! documentation included. $200. Call or write Gary L Dickman, POB 41, Colby KS 67701. (913) 462-3439 after 6 PM CST.

FOR SALE: BASIC language program of Monopoly. Takes care of all bookkeeping and property detail for this popular board game. Play Monopoly between friends. Make deals and bankrupt your opponents. Runs in 22 K of programmable memory. Written in Data General's 12 K BASIC. Documentation $6, paper tape $12. Charles A Lovell, 4837 Clybourn Av, N Hollywood CA 91601.

FOR SALE: Teletype Model 32 ASR, complete, in good condition, $300 plus shipping. BYTE issues 14, 15, 16 for $3 each. Paul Enright, 2460C Waolani, Honolulu HI 96817.

Circle 457 on inquiry card.

194

MICROCOMPUTER

8080A

DYNAMIC RAMS

SUPPORT DEVICES

414D (16P)

5.50

8212

4.00

1103 (16P)

1.50

8214

12.95

2104 (16P)

6.50

8216

5.25

2107B (22P)

4.50

8224

6.00

2107B-4 (22P)

4.00

8228

9.25

TMS4050 (18P)

4.50

8238

8.20

TMS4060 (22P)

4.50

8251

12.00

4096 (16P)

5.50

8253

28.00

MM5262 (22P)

3.00

8255

12.00

MM5270 (18P)

5.00

8257

22.00

MM5280 (22P)

6.00

8259

22.00

6800 SUPPORT

STATIC RAMS

681 OP

6.00

31 L01

2.00

6820P

8.00

91L11A

4.25

6828P

9.60

91L12A

4.25

•6834P

21.95

1101A

1.00

6850P

12.00

2101

3.00

6852P

17.00

2102 (10S)

1.25

6860P

15.00

2102-1 (5.00NS)

1.50

6862P

18.00

2M1A-4

4.45

6880P

2.70

2112A-4

3.00

Z80

SUPPORT DEVICES

250 IB 3107

*4200A (250NS)

1.45 2.95 13.75

3881

15.95

410D (200NS)

11.95

3882

15.95

*4804

20.00

F-8 SUPPORT DEVICES

3851 14.95

3852 14.95

5101 74C89 74S201 91L02A

20.00 3.00 4.75 2.00

FLOPPY

7489 8225

2.25 1.50

DISC CONTROLLER

8599

1.50

PD372D

65.00

82S09

9.00

1771

69.95

"Limited supply.

BankAmericaro

MISC OTHER COMPONENTS

NH0025CN

NH0026CN

N8T20

N826

N8T97

74367

DM8098

1488

1489

3205

D-3207A

C-3404

P-3408A

P-4201

MM-5320

MM-5369

DM-8130

DM-8131

DM-8831

DM-8833

DM-8835

SN74LS367

SN74LS368

1.75

3.00

4.00

3.25

1.45

1.00

1.00

1.95

1.95

6.20

2.50

3.95

6.75

4.95

7.50

2.00

3.00

2.50

2.50

2.50

2.50

1.00

1.00

MICROPROCESSOR'S

F-8

Z-80

Z-80A

CDP1802DC

AM2901

6502

6800

8008-1

8080A

8080B

19.95 36.95 49.95 29.50 22.95 24.95 24.95 8.75 15.95 16.95

SHIFT REGISTERS DYNAMIC

1404AN 3.00 2405 4.95 2505K 3.00

SHIFT REGISTERS

STATIC

MM506

2509K

2518B

2533V

TMS3002

TMS3112

MM5058

.89 1.00 3.95 2.00 1.00 3.95 2.00

FIFO

3341A 2812-D

6.75 11.95

KEYBOARD CHIPS

AY5-2376 14.95 AY5-3600 14.95 TV GAME CHIPS TMS 1955 (6 Games)

10.95

AYSS-8500(6Games)

10.95

U S R T

welcome

S-2350

13.50

IM-6403

10.80

TMS-6011 (Tl)

6.25

TR-1 KIT?A /VA/ni

6.25

U A R T S

AY5-1013

6.75

AY5-1014A

9.95

LHAHAC1EK

GENERATORS

2513

6.75

2513

6.75

3257

18.00

MCM6571

10.80

MCM6571A

10.80

MCM6572

10.80

MCM6581

8.75

WAVEFORM

GENERATOR

8038

4.50

MC4024

2.75

566

2.00

PROM'S

1702A

1702AL

2704

2708

2716

3601

5203AQ

5.00 7.00 20.00 24.00 75.00 4.50 7.00

5204AQ

6834

6834-1

82S23B

82S129B

8223B

10.00 21.95 16.95 4.00 4.25 4.00

IMSAI/ALTAIR

S-100

COMPATIBLE

JADEZ80

KIT

-with PROVISIONS for

ONBOARD 2708 and POWER ON JUMP

$135.00 EA.

Electronics for the Hobbyist and Experimenter

5351 WEST 144th STREET LAWNDALE, CALIFORNIA 90260 (213) 679-3313

Discounts available at OEM quantities. Add $1.25 for shipping. California residents add 6% sales tax.

Assembled & Tested

8K STATIC RAM BOARD

250ns. $209.95 350ns. $199.95 450ns. $189.95

* WILL WORK WITH NO FRONT PANEL

* FULL DOCUMENTATION

* FULLY BUFFERED

* S100 DESIGN

* ADEQUATELY BYPASSED

* LOW POWER SCHOTTKY SUPPORT ICS

KIT

250ns. 350ns. 450ns.

$169.95

149.95 1139.95

Circle 458 on inquiry card.

/^<BP 7400N Tfl

SN74O0N*

.16

SN7459A

.25

SN74Q1N

.16

SN7460N

.22

SN74154N

1.00

SN74Q2N

.21

SN7470N

.45

SN74155N

.99

SN7403N

.16

SN7472N

.39

SN74156N

.99

SN7404N

.18

SN7473N

.37

SN74157N

.99

SN7405N

.24

SN7474N

.32

SN74160N

1.25

SN7406N

.20

SN7475N

.50

SN74161N

.99

SN7407N

.29

SN7476N

.32

SN74163N

.99

SN740BN

.25

SN7479N

5.00

SN74164N

1.10

SN7409N

.25

SN7480N

.50

SN74165N

1.10

SN7410N

.IB

SN7482N

.98

SN74166N

1 25

SN741IN

,30

SN7483N

.70

SN74167N

5.50

SN7412N

.33

SN7465N

.89

SN74170N

2.10

SN7413N

.45

SN7486N

.39

SN74172N

B.95

SN7414N

.70

SN7486N

3.50

SN74173N

1.50

SN7416N

.35

SN7489N

2.49

SN74174N

1.25

SN7417N

35

SN7490N

.45

SN74175N

.99

SN7420N

.21

SN7491N

.75

SN74176N

.90

SN7421N

.33

SN7492N

.49

SN74177N

.90

SN7422N

.49

SN7493N

.49

SN741B0N

.99

SN7423N

.37

SN7494N

.79

SN74181N

2.49

SN7425N

.29

SN7495N

.79

SN74182N

.95

SN7426N

.29

SN7496N

.89

SN74184N

1.95

SN7427N

.37

SN7497N

4.00

SN74185N

2.20

SN7429N

.42

SN74100N

1.00

SN74166N

15.00

SN743DN

.26

SN74107N

.39

SN74187N

6.00

SN7432N

.31

SN74121N

.39

SN74188N

3.95

SN7437N

.27

5N74122N

39

SN74190N

1.19

SN7438N

.27

SN74123N

.50

SN74191N

1.25

SN7439N

.25

SN74125N

.60

SN74192N

.89

SN744QN

.15

SN74126N

.60

SN74193N

.69

SN7441N

.89

SN74132N

1.09

SN74194N

1.25

SN7442N

59

SN74136N

.95

SN74195N

.75

SN7443N

75

SN74141N

1.15

SN74196N

1.25

SN7444N

.75

SN74142N

4.00

SN74197N

.75

SN744SN

.76

SN74143N

4.50

SN74198N

1.75

SN7446N

.B1

SN74144N

4.50

SN74199N

1.75

SN7447N

.69

SN74145N

1.15

SN74200N

5.59

SN7448N

.79

SN74147N

2.35

SN74279N

.90

SN7450N

.26

SN7414BN

2.00

SN74251N

1.79

SN7451N

.27

SN74150N

1.00

SN74284N

6.00

SN7453N

.27

SN74151N

.79

SN742B5N

6.00

SN7454N

.20

SN74153N

.89

SN74367N

.75

Channel F — additional cartridges — $17.95 ea. 08,3 - n or 2 players)

0814 —Spitfire {1 or 2 players) 0611 — Tic-Tac-Toa/Shooting Gallery 0819 — Drag strip (1 or 2 players)

Quadra-doodle/Doodle/ 0815 — Spacewar (2 players) 0820 — Maze (2 players)

0812 — Desert Fox/Shooting Gallery 0818 — Magic Numbers (computer logic) 0822 — Baseball (2 players)

20% Discount for 100 Combined 7400's

CO4OO0

.25

CD4001

.25

CD4O02

.25

CO40O6

2 50

CO40O7

.25

CD4009

.59

C04010

.59

CO4011

25

CD4012

.25

CD4013

.47

CD4016

.58

CD4017

1.35

CD4019

.55

CD4020

1.49

CD4022

1.25

CD4023

.25

CD4024

1 50

CD4025

.25

CO4026

S3.95

CD4027

-69

CD4028

1.65

CD4029

290

CD4030

.65

CD4035

1.85

lM3UQH

.80

LM301H

.35

LM301CN

.35

LM302H

.75

LM304H

1 00

LM305H

.95

LM307CN

.35

LM308H

1.00

LM308CN

1.00

LM309H

1.10

LM309K

.99

LM310CN

LM311H

^90

LM311N

.90

LM317K

6.50

LM318CN

1.50

LM319N

1.30

LM320K-5

1.35

LM320K-5.2

1.35

LM320K-12

1.35

LM320K-1S

1.35

LM320T-5

1.75

LM320T-5.2

1.75

LM320T-8

1.75

LM320T-12

1.75

LM320T-15

1.75

LH320T-18

1.75

LM320T-24

1.75

LM323K-5

9.95

LM324N

1.80

LM339N

1.70

LM340K-5

1.95

LM340K-6

1.95

LM340K-8

1.95

LM340K-12

1.95

LM340K-15

1.95

LM340K-1B

1.95

LM340K-24

1.95

LM340T-5

1.75

LM340T-6

1.75

LM340T-8

1.75

LM340T-12

1.75

LM340T-15

1.75

LM34QT-18

1.75

LM340T-24

1.75

LM350N

1.00

LM351CN

.65

74LS00

29

74LS02

29

74LS03

29

74LS04

.35

74LS05

.35

74LS08

29

74LS10

29

74LS13

69

74LS14

1 75

74LS20

29

74LS26

.39

74LS27

39

74LS28

39

74LS30

29

74LS32

39

74LS40

39

74LS51

29

74LS55

29

74LS73

.49

CMOS

CQ404Q C04042 CO4044 CD4046 CD4047 CD4049 CD4050 CO4051 CD4053 C04059 CD4060 CD4066 CD4069 CD4070 CD4071 CO4081 CD4508 CD4511 C04515 C04S18 CD4520 MC14566

2.45 1.90 1.50 2.51

2.75 79

.79

74CO0N

74C02N

74C04N

74C10N

74C20N

74C30N

74C42N

74C73N

74C74

74C90N

74C95N

74C107N

74C151

74C154

74C157

74C160

74C161

74C163

74C164

74C173

74C193

74C195

MC4044

MC14016

LINEAR

1.75

78MG LM370N LM373N LM377N LM380N LM38CCN LM381N LM382N NE501K NE510A NE531H NE536T NE540L NES50N NE555V NE560B NE56IB NE562B NE565H NE565N NE566CN NE567H NE567V LM703CN LM709H LM709N LM710N LM711N LM723H LM723H LM733N LM739N LM741CH LM741CN LM741-14N LM747H LM747N LH748H LM74BN LM1303N LM1304N LM1305N LM1307N LM1310N LM1351N LM1414N

LM145BC

LM1496N

LM1556V

LM1812N

LM2111N

LM2901N

LM3Q53

LM3065N

LM39D0N

LM39Q5N

LM3909

LM5556N

MC55S8V

LM7525N

LM7535N

LM75450 75451CN 75452CN 75453CN 75454CN 75491CN 75492CN 75494CN

RCA LINEAR CA3013 2.15

CA3D23 CA3035 CA3039 CA3046 CA3053 CA3059 CA3060 CA3080 CA30B1 CA30B2 CA3083 CA3086 CA3089 CA3091 CA3053 CA3102 CA3123 CA3130 CA3140 CA3600 RC4194 RC4195

2.56

74LS00 TTL

74LS74 74LS75 74LS76 74LS83 7JLS85 74LSB6 741S90 74LS92 74LS93 74LS95 74LS96 74LS107 74LS109 74LS112 74LS132 74LS136 74LS138

74LS139

74LS15I

74LSI53

74LS157

74LSI 62

74LSI 53

74LS164

74LJ5175

74LS18I

74LS190

74LS191

74LS192

74LS193

74LSI94

74LS195

74LS257

74LS260

74LS279

74LS670

CLOCK CHIPS

MM5309 6 Digit. BCD Outputs. Reset PIN.

MM5311 6 Qirjit, BCD Oulpuls, 12 or 24 Hour

MM5312 4 Digit. BCD Outputs. 1 PPS Output

MM.5314 6 Digit. 12 or 24 Hour 50 Ot 60 Hi

MM5316 4 Digit, Alarm. 1 PPS Output

MM531B Video Clock Chip. For Use Wiln (MM5B41 - S9 951

CT7001 6 Digil. Calendar, Alarm, 12 or 24 Hour

T249 Whlli w/bncelil $19.95 T248 nilow D/lnCtW S22.96

T237 Whit* M/bn»!it 122.96 T2M Yillow v/brsMlit S2S.96

LED

Timcband bym/M/m — Watches —

Men's & Ladies

• Solid State

• Displays hour, minute, second, month & day

• Free set ot replacement batteries

• Choose LED or LCD styles

• One year factory warranty

LadlM

LCD

TC825 Whlti Wttnp 129.96 TCB24Yillowv/ttnp $34.95

»V LADIES LED

X

T32S Will, •/linn S24 .K

na MM man $27.96

jCH/INNELCE

$159.95

• Freeze Action • Speed Option

• Automatic time and scorekeeping

• Battery-lree AC operation

• Dual controls with 8-way action

• Built-in Pro Hockey and Tennis games

• Easy hook-up on any B/W or Color TV

• Factory warranty

125" dla.

XC209

Red

10/51

XC209

Green

4/S1

XC2Q9

Orange

4/$1

XC209

Vellow

4/S1

200" dla

XC22

fled

10/S1

XC22

Green

4/J1

XC22

Yellow

4/$1

XC22

Orange

4/51

SSL-22

RT

4/S1

DISCRETE LEDS

XC526 XC526 XC526 XC526 XC526

Green Yellow Orange

XC556 XCSS6 XC556 XC556 <C556

.190" dla.

Red 10/$ 1

Green 4/Sl Yellow 4.'S1 Orange 4/S1

.0S5" dla. MV50 ■ Red - 6/51

Green Yellow Orange Clear

INFRA-RED LED WxVxl/16" M 5/11.00

DISPLAY LEDS

TYPE

MAN 1 MAN 2 MAN 3 MAN 4 MAN 7 MAN 7G MAN 7Y MAfJ 52 MAN 64 MAN 74 MAN 62 MAN 84 MAN 3620

POLARITY

Common Anode 5 » 7 Dol Malrn Common Cathode Common Catnode Common Anode Common Anode-green Common Anode-yellow Common Anode-green Common Anode-red Common Camode Common Anode-yellow Common C.ilhode-yellow Common Anode -orange

125 3/1 0 187 19 300 1 2

300

TYPE

MAN 3640 MAN 4710 DL701 DL704 DL7P7 MAN 4740 DL741 DL 747 01 750 DL 33B FND70 FND503 FND507

POLARITY

Common Cathode-orange Common Anode-Red Common Anode-red r Cdmmon Cathode Common Anode Common Anode-Red Common Anode Common Anoue Common Calhode Common Cathode Common Cathode Common Calhode Common Anode

5110 1.00

FCS 8000A - 3Vz Digit - ,8" Display

NEW! 25 Pin Version with colon & am.'pm indicator

• Connects almost one lor one with 3817. 38I7A or D. (3817 available at S5.00 each).

• Typical segmeni coirem 8mA eicepl colon. 10 hrs b & c and 10 mln, a & d which are 16 mA.

FRONT VIEW - FSCBO00

SPECIAL $4.95 EA.

MAXIMUM FORWARD CURRENT —25 mA.

■ Forward \ 1.5 volts

10 or more

HP 5082-7300 Series — Multi-Digit

• Vi" ht. • Common Cathode Red

• 3-5 volts (it 5 mils/second

• 7 segment Monolithic J jg 5 89

• °'P PackaSe 4 rjigi, ;gg 5 Digit 1.19

.79

.79

TV GAME CHIP SET — $14.95

Includes AY-3-8500-1 Chip and 2.010 mh* crystal (2,010 crystal — $1.95 aa/AY-3-8500-1 chip — $13.95 83.)

IC SOLDERTAIL — LOW PROFILE (TIN) SOCKETS

14 pin

16 pin 18 pin 22 pin 14 pin 16 pin IB pin 24 pin

18 pin

10 pin 14 pin 16 pin

18 pin

35 SOLDERTAIL STANDARD (TIN)

SOLDERTAIL STANDARD (GOLD)

WIRE WRAP SOCKETS (GOLD) LEVEL #3

25-49

50-1

24 pin

S36

37

36

28 pin

■15

43

36 pin

60

59

58

40 pin

63

62

61

28 pin

S 99

90

81

36 pin

1 39

1.26

1 15

40 pin

1 59

\ 45

1 30

24 pin

5 70

63

57

2B pin

1 10

1 00

90

1 75

1 40

1 26

1 75

1 59

1 45

=L #3

?4 pin

51 05

95

85

1 40

1 25

36 pin

1 59

I 45

40 pin

1 75

1 55

50 PCS

ASST. 1 ASST. 2 ASST. 3 ASST. 4 ASST. 5 ASST.6 ASST. 7

ASST. 8R

RESISTOR ASSORTMENTS $1.75 PER ASST.

OHM 47 OHM 120 OHM

180 OHM 220 OHM 270 OHM 330 OHM 470 OHM 560 OHM 6B0 OHM 820 OHM

10 OHM 12 OHM 15 OHM 27 OHM J3 OHM 39 OHM

6B OHM 62 OHM 100 OHM

1B0K 470K 1 2M 3 3M

270K 680K 1 8M 4 7M

22 OHM 56 OHM 150 OHM 390 OHM IK 2 7K 68K

120K 330K B20K 2 2M 5 6M

1/4 WATT 5% 50 PCS.

1/4 WATT 5% - 50 PCS.

1/4 WATT 5°i 50 PCS.

1/4 WATT 5% 50 PCS.

1/4 WATT 5% SDPCS.

1/4 WATT 5% 50 PCS.

1/4 WATT 5%. 50PCS.

Includes Resistor Assortments 1 -7 (350 PCS.) $10.95 ea.

S5.00 Minimum Ortfer - U.S. Fundi Only California Rttidenti - Add 6% Sain Til

Spec Sheets • 25c — Send 35c Stamp lor 1977A Catalog Dealer Inlormetion Available

ELECTRONICS

1021-A HOWARD AVE.. SAN CARLOS. CA. 94070 PHONE ORDERS WELCOME - (415) 592-8097 All AdvartlMd Price. Good Thru October

WIRE WRAP CENTER >

HOBBY-WRAP TOOL-BW-630

$34.95 A

Battery Operated (Size C) Weighs ONLY 11 Ounces Wiaps 30 AWG Wue onto Standard DIP Sockets (.025 inch)

WIRE-WRAP KIT — WK-2-W WRAP . STRIP . UNWRAP

. Tool tor 30 AWG Wire

• Roll ot 50 Ft, White or Blue 30 AWG Wire

• 50 pes. each 1", 2". 3" 8 4" lengths pre-stripped wire.

$11.95

WIRE WRAP TOOL WSU-30 WRAP . STRIP . UNWRAP - S5 95

WIRE WRAP WIRE — 30 AWG

25ft min. $1.25 50ft $1.95 100ft. S2.95 1000ft. $15.00 SPECIFY COLOR — White - Yellow - Red - Green - Blue • Black

WIRE DISPENSER — WD-30

50 ft. roll 30 AWG KYNAR wire wrap wire $3.45 ea. Cuts wire to desired length

Strips 1" ot insulation Specify — Blue-Yellow-Wfiite-Re

Sf^PRECISION

Comes with test leads, operating manual and spare fuse.

Neyt

31/2-Digit Portable DMM

• Overload Protected • .3" high LED Display

• Battery or AC operation • Auto Zeroing.

• 1mv. IVa. 0 1 ohm resolution • Overange reading

• 10 meg input impendence

• DC Accuracy 1% typical

Ranges: DC Voliage: -0-1000V/AC Voltage: 0-10O0V Freq. Response: 50-400 HZ/DC-AC Current: 0-1000mA Resistance: 0-10 meg onm Site: 6.4'x 4 4* x 2

Model 2800 $99.95 AC Adapter BC-28 8.00 Rechangeable Batteries BP-26 20.00 Carrying Case LC-28 6.00

DATA HANDBOOKS

7400 Pin-oui & Description of 5400/7400 ICS $2.95

CMOS Pin-oul & Description of 1000 Serins ICS $2.95

Linear Pin out 8, Functional Description $2.95 ALL THREE HANDBOOKS $6.95

TYPE

1N746 1N751A 1N752 IN 753 1N754 1N959 IN965B 1N5232 1N5234 1N5235 1N523G 1N45G 1N45B 1N4B5A 1N4001 1N4002 1N4003 1N4004

ZENERS —

VOLTS W

3.3 400mm

5.1 400m 5.6 400m 6 2 400m 6.6 400m

8.2 400m 15 400m 5.6 500m 6.2 500m

6 8 500m

7 5 500m

40m 7m

DIODES

PfllCE TYPE

4/1.00 1N4D05

4/100 1tW06

4/1.00 1N40O7

4/100 1N3600

4/1 00 1N4148

8/1.00 1N4154

4/1 00 1N4305

28 1N4734

28 1N4735

28 IN4736

28 1N473B

6/1 00 1N4742 1N4744

RECTIFIERS

VOLTS W

600 PIV 1 AMP BOO PIV 1 AMP 1000 PIV 1 AMP 200m

75

10m 10m 25m

PRICE

10/1 00

ion .00

10/1 oo 6,1.00 15.-1 00 12/1 00 20/1 00 2B 28

50 PIV 1 AMP

100 PIV 1 AMP

200 PIV 1 AMP

400 PIV 1 AMP

C1' 0

IN1183

1N11B4 12/1.00 1N1185 12/1.00 1N1186 12/1.00 1N1188

12 Iw

15 1w

50 PIV 35 AMP

100 PIV 35 AMP

150 PIV 35 AMP

200 PIV 35 AMP

400 PIV 35 AMP

SCR AND FW BRIDGE RECTIFIERS

C36D 15A@ 400V SCR $195

C3BM 35A @ 200V SCR i 95

2N2328 1 6A @ 200V SCR 50

MO A 980-1 12A@50V FW BRIDGE PEC 195

MDA9BQ-3 12Ata20QV FW BRIDGE flEC 1 95

MPS A05 MPS A06

2N2221 JN2Z23A 2N2369 2N2369A 2N248J PN3906A 7N2907A 2N292S 2H3053 2H3055 MJE3055 MJE2955 2K3392 2N339B

5/SI M 5/S1.00 3*1 00 4J51 00 SSI oc 5 !l 00

SI 00 SI 25 53100 5W 00

TRANSISTORS

3N37Q1 2N3705 2N3706 2N3707 2N3711 2N3W 2N3725 2N3903 2N390* 2N390S

2N40I3

4/|1 00 (111 00 4. SI 00 4/J1 CO «S1 00 411 00 511 00

SSI 00 SSI 00 5 Si 00 511 00

CAPACITOR

CORNER

1

3 10-49

50-100

1-9

10-49

50-1

10 pl

05

.04

.03

001fiF

.05

.04

.035

22 pl

OS

.04

.03

0047f<F

05

.04

.035

47 pl

.05

04

03

OVE

.05

.04

.035

100 pi

05

.04

.03

022nF

06

05

04

220 pl

.05

.04

.03

047MF

.06

OS

.04

470 pl

.05

.04

.035

1„F

.12

.09

075

100 VOLT MYLAR FILM CAPACITORS

001ml

.12

10

.07

022ml

.13

11

08

0022

-12

10

07

047ml

.21

17

13

,0047ml

.12

.10

.07

1ml

27

.23

.17

Olml

.12

.10

.07

.22mf

.33

.27

.22

+ 20% OIPPED TANTALUMS (SOLID) CAPACITORS

-1/35V

.28

.23

.17

1.5/35V

.30

26

.21

15/35V

.28

.23

.17

2.2/25V

.31

.27

22

.22/35V

28

.23

.17

3.3/25V

.31

27

.22

.33/35V

.28

.23

.17

4 7/25V

.32

.28

23

47/35V

.28

.23

.17

6.8'25V

36

31

25

6B/35V

.28

.23

.17

I0/25V

40

.35

.29

1.0/35V

.28

23

.17

15/25V

63

50

40

MINIATURE ALUMINUM ELECTROLYTIC

CAPACITORS

Ailal Lead

RidTal Laid

.47/50V

.15

.13

.10

.47/25V

.15

13

10

1 0/50V

.16

14

47/50V

16

14

.11

3.3/50V

.15

.13

JO

1.0/16V

.15

.13

.10

4.7/25V

.10

.14

.12

1 0/25V

16

14

10/25V

.15

.13

.10

1.0/50V

.16

14

.11

10/50V

.16

.14

.12

4.7/16V

.15

.13

.10

22/25V

.17

.15

.12

4.7/2SV

.15

.13

.10

22/50V

.24

.20

.18

4 7/50V

16

.14

.11

47/25V

.19

.17

.19

10/16V

14

.12

.09

47/50V

25

.21

19

10.25V

15

.13

10

100/25V

.24

20

.18

10/50V

.16

.14

12

100/50V

35

.30

.21

47/50V

.24

.21

19

220/25V

32

.28

.25

100/16V

.19

.15

.14

220/SOV

.45

.41

.38

100/25V

.24

.20

.16

470/25V

.33

.29

.27

100/50V

.35

.30

.28

1000/16V

.55

.50

.45

220/16V

.23

.17

.16

2200/16V

.70

.62

.55

470/25V

.31

.28

.26

CRYSTALS §f

- .-n5^ THESE FREQUENCIES ONLY t^-Jh-J —

P trS'

rrsQunncy

La so Sty le

Price

CY1A

i uuu ivinz

HC33'U

$5.95

CV2A

2 000 MHz

HC33 U

ICY2.01

2 010 MHz

HC33/U

$1,951

CY3A

4000 MHz

HC18/U

S4.95

CY7A

5.000 MHz

HClS/U

S4.95

CY12A

10.000 MHz

HC18 U

S4.95

CY14A

14.31818 MHz

HC18U

$4.95

CY19A

18.000 MHz

HC187U

54,95

CY22A

20 000 MHz

HC18/U

54,95

CY308

32.000 MHz

HC18U

S4.95

XR-2206KB Kit $29.95 Special XR-2206KA Kit $19.95

WAVEFORM GENERATORS

XH-205 SS.40 XR-2206CP -U9 XR-2207CP 3 85

STEREO DECODERS

XR 1310CP S3 20 XH-1310EP 3 20

XR-iflOOP 3 20

XR-2567 2 99

MISCELLANEOUS

XR-2211CP SB. 70 XR-4136 99

XR-1468 3 85

XR-1488 5.80

XR-1489 4 80

XR-2208 5.20

TIMERS

XR-555CP S 39

XR-320P XR-556CP XR-255GCP 320 XR-2240CP 3.25 PHASE LOCKED LOOPS XR-210 5 20

Xfl-215 XR-S67CP XR-567CT

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) $2.95

50/100 PINS (Wire Wrap) $6.95

50/100A (.too Spacino) PINS (Wire Wrap) $6.95

25 PIN-D SUBMINATURE

DB25P PLUG $3.25

DB25S SOCKET $4.95

HEAT SINKS *r*

205-CB 680-.75A

205-CB Beryllium Copper w-black finish for TO-5 S .25 291-.36H Aluminum for TO-220 Transistors &

Regulators $ .25

680-.75A Black Anodized Aluminum for TO-3 $1.60 401 -A Black Anodized Aluminum — predrilled

mounting holes for T0-3 — 4¥< x 1'/t x 2" $1.75

DIP SWITCHES SPSTSIldo Action

#206-4 ( 8 pin dip) 4 switch unit $1.75 sa #206-7 (14 pin dip) 7 switch unit $1.95 oa #206-8 (16 pin dip) 8 switch unit $2.25 ea

Etching Kits (cannot be shipoetj via air)

32 X A-1 P C Etch Materials Kit

enough lor 5 circuit boards

27 X A-1 — Plugboards

3662

22/44

Etched Circuil Kit

Complete kit — only add water

6.5X4.5 X 1/16 Epoxy glass

P-Pattem-44 P C Tabs-spaced 156"

Malitig connector lor plugboard —

22 pin double readout

Universal Microcomputer/Processor

plugboard — Epoxy Glass— complete

wild tieatsmk and mounting hardware

5 313 X 10 X 1.16 copper clad

$29.95 ea. S 9.95 ea. S 6.95 ea. S 2.95 ea. $19.95 ea.

1/16 VECTOR BOARD

P-Pattern

6JP4J 062XXXP I69P44 02XXXP 64PJ4 062

L

W

1

2-Up

50

G 50

1 5J

50

17 00

3 6S

3 3?

50

6 50

2 07

1 86

50

a 50

2 5E

2 31

50

Yi 00

5 0-1

■I 53

50

17 00

9 23

8 26

17 00

6 at)

6 12

ft\ i)—frx I SLIT-N-WRAP WIRE WRAP TOOL

\Xs yGClOc I . Slits and opens insulation exposing

bare wire

• No pre-cutting or pre-stripping.

• Comes complete with two -100 ft spools #28 AWG wire

Model P180 $24.50

HEXADECIMAL ENCODER 19-KEY PAD

. ABCDEF

• Return Key

• Optional Key (Period)

• - Key

$10.95 each

63 KEY KEYBOARD

$24.95

This keyboard features 63 unenl coded SPST keys, unattached to I any kind Of P C E A very solid ' molded plastic 13' x 4" base IS most applications

HD0165 16 LINE TO FOUR BIT PARALLEL KEYBOARD ENCODER CHIP J7.95

TOOLS

A97MS — Diagonal Cutter - 4" semi-flush cut S8.50ea.

A11DMS — Chain Nose Pliers - 454" long 7.50 ea.

T-6 — Wire Stripper - #16 to #26 gauge 3.75 ea.

55B — Wire Stripper - #10 to #20 gauge 2.50 ea.

CS-8 — Cutter-Crimper Tool - 8'A" long 8.50 ea. Nibbing Tool — Cuts. Trims or Notches Metal

up to #18 gauge 6.95 ea.

Nibbling Tool Replacement Punch 3.75 ea

PERMACEL' P-29 PLUS Electrical Tape - All Weather \j_-9 Rolls S.79 cacti 10-up Rolls S6.95/10 roll packagi

MICROPROCESSOR COMPONENTS

CPU

8212 8 Bit Input/Output 8214 Priority Interrupt Control 8216 Bi-Directional Bus Driver 8224 Clock Generator/Driver CDP1802 - with user manual CPU'S

1080 Super BOOS

I080A Super BOOS

>6S0 8 BIT MPU

S19.95 4.95 15.95 6 95 10.95 39.95

J 95

8228 System Controller - Bus Driver MC6800 8 Bit MPU MC6820 Periph. Interface Adaptei MC6810AP1 128 x 8 Static RAM MC6830L8 1024 x 8 Bit ROM Z80 CPU

256 i

?1U? 5;>80 4096 .

RAM'S

Static

2504 251B 2519 2524 2525 2527

102- Dynamic He. 32 8iT Hex JO BIT 512 byname 102-: Dynamic Dual 256 BIT Dual 512 BIT Quart 80 BH 1024 Static FitO

Static Sialic

Dynamic

Static Slain: Stahc Static

Sianc Sialic

Static

$10.95 22.50 15.00 6.00 18.00 49.95

S 1 49

IMM5262

2K x 1

Dynamic

2 lor 1 00,

PROMS

1702A

204B

Famos

S S.95

5203

20-lfi

14 95

82S23

32 x 8

Open C

5 00

82S123

32 i a

Tnstale

5 00

74S2S7

102-1

7 95

3601

256 . ■!

Si

3 95

]?708

8K

Epjom

29 95|

6301-1

1024

Tri-StalB Bipolai

3,49

6330-1

256

Open Collecior Brno

r 2.95

6331-1

256

Tn-Stale Bipolar

2 95

FCM3817 AY-3-8500-1 MC3061P MC4Q16P [74 MCI 4583 MC14562 CD4059 CD4070 MC14409

SPECIAL REQUESTED ITEMS

MCM

10

AY-5-2376

CD4508

CD4515

CD4520

MCM6571

MCM6574

MCM6575

ICM7045

6 75 6 50 2 70 17 50

24.95

MK 50240

11C90

DS0026CI1

TIL30B

ICM7208

ICM7207

25 00 9 95 17 50

10 50

22.00 7 50

BT20 BT97 3341

9368

MCM08L7 LD110/LD111 AY-5-9100 95H90

ICM7209

HDD165

7.95

PARATRONICS

Logic

Analyzer Kit

ALLOW 1 TO 3 WEEKS DELIVERY

Featured on February's Front Cover of Popular Electronics

L%^T\ MODEL 100A $229.00/Kit

'Some applications are: Troubleshooting microprocessor address, instruction, and data flow 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

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.

PARATRONICS TRIGGER EXPANDER - Model 10

Adds 16 additional bits. Provides digital delay and qualification of Input clock Model 10 — $229.00 and 24-bit trigger word. — Connects direct to Model 100A for integrated unit). Bmplaia — S6.95

BUGBOOK " S |

Continuing Education Series ,JL. Jf.

BUGBOOK I & II -Basic concepts ol TTL Logic — over 90

experiments $17.0u7set BUGBOOK Ma - Introduces UART — recommended

for RTTY enthusiast S5.00/book BUGBOOK III - Explores 8080 chip — introduces

Mark 80 Microcomputer $15.00/book 555 TIMER APPLICATIONS SOURCEBOOK WITH EXPERIMENTS — over 100 design techniques $6.95/book CMOS-M-DESIGNERS PRIMER AND HANDBOOK a complete CMOS instruction manual $6.00 INSTRUCTORS MANUAL

Necessary for instruction on Bugbook I and II. $3.00

Introductory Otter — all 6 books (worth $49.95) (does not include Instructors Manual) SPECIAL - $42.95

CONTINENTAL SPECIALTIES

PROTO BOARD 6 Other CS Proto Boards

$15 95 I PB100 - 4.5- x 6"

(6" long xY' wide) PB101 - 5.8" x 4.5

$ 17.S

PB102-7"x4,5'1 PB103 - 9" x 6' PB104 - 9.5" x 8" PB203 - 9.75 x 6h x 2J/< PB203A - 9.75 x 6V2 x 2'A 120.00

(includes power supply)

.95 39.95 59.95 79.95 75.00

MAX 1110 Frequency Counter

20 MHz-lOOMH: — B digit — .6" LED Available Seplember 15. 1977 5134.95

Logic Monitor $84.95

loi DTL HTL TTL oi CMOS Devices

PROTO CLIPS

14 PIN $4.50 16 PIN 4.75 24 PIN 8,50

DESIGN MATES

DM1 - Circuit Designer 54.95

DM2 - Function Generator

69.95 DM3 - RC Bridge 59.95

QT PROTO STRIPS

•I'i'ir'-.ri.i.ii.iiiisi;:,,

Ul type

<-holes

price

OT-59S

590

12.50

QT-59B

bus strip

2.50

QT-47S

470

10.00

QT-47B

Uus strip

2.25

QT-35S

350

8.50

OT-35B

Bus Strip

2 00

QT-18S

180

4 75

OT-12S

120

3 75

QT-BS

80

3.25

OT-7S

70

3 00

Experimenter 300

S 9 95

Experimenter 600

S10.95

$5.00 Minimum Order — U.S. Fundi Only California Residents — Add 6% Sales Tai

Spec Shoots - 25c — Send 35c Stamp for 1977ft Catalog Dealer Information Available

ELECTRONICS

1021-A HOWARD AVE., SAN CARLOS, CA. 94070 PHONE ORDERS WELCOME — (415) 592-8097 All Advonllsd Prices Good Thru Octobor

CD Hmebcind Digital Alarm Clocks

C-50D - Ivory Case C-50DB - Ebony Case

$16.95

. Doze Button . 100°= Solid State 1 Large Pert Led Display

(.8" nigh) . flM'PM indicator . Seconds display at louch

ol Button 1 Power lailme indicator 1 One year factory i

Timeband lamp clock

• 24 hour alarm

• Doze button

• Alarm-on indicator

• .8" high Red LED Display

• AM/PM Indicator

• High intensity lamp

• Lamp shuts oft when collapsed Model C-590 (Ivory) $29.95

' AM/FM 8-Track Stereo Receiver With BSR Changer

• PLL System

• BSR Record Changer

• Slide Controls

• Automatic AFC Control

• 4 Speaker Output

• Walnut finish vinyl covered wood veneer with smoke dust cover

Size: 20"W x 9WH x 15'/4"D

Model 8365 $149.95

DIGITAL STOPWATCH

• Bright 6 Digit LED Display

• Times to 59 minutes 59 59 seconds

■ Crystal Controlled Time Base

• Three Stopwalct.es m One

Times Single Event — Split S Taylor

■ Size 4.5" x 2 15" x .90" (4W ounces)

• Uses 3 Penlite Cells

Kit — $39.95 Assembled — $49.95 Heavy Duty Carry Case$5.95

Stop Watch Chip Only (7205) $19.95

3V2 DIGIT DVM KIT

This 0-2 VDC 05 per cent digital voltmeter features the Motorola Vh digit DVM chip set. It has a .4" LED dispay 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 lits into the same case as the 0-2V DVM allowing 117 VAC operation

A. 0-2V DVM with Case $49.95

B. 5V Power Supply $14.95

JE700 CLOCK

The JF 700 is alow cosi digital clock, ol is a very ntgh qualify unit The unii te; tures a simulated walnui case wilh d

KIT ONLY $ 17.95

Rejected ATARI GAME BOARDS

Over 60 Reusable IC's, misc. S

transistors, resistors, diodes, j

caps, crystals, switch, etc. i

(8V2"x16"). Limited Quantity, j

$4.95 ea.j

INSTRUMENT/CLOCK CASE

Injection molded unit. Complete with red bezal. 4ft" x 4" x 1-9/16'

$3.95 ea

JE803 PROBE

The Logic Prooe is a unit wmcn is tor me mdespensiDle m irouBle snooting logic lam.iies TTL DTL HTL CMOS II derives the powsr it needs to Operate directly oil ol [he circuit under test drawmq a scant 10 mfl ma* II uses a MAM3 readout to indicate any ol the loilowmg state; Dy

thesesymhols iHt - i iLOWt - o iPULSEj - P The cn n_ D j-.. Ptobecandetfciriinri(rLwri(.yoitisesio-i5MHz 2>3.30 r CI MI

II can! oe used at MOS levels or circm Hamaqe

w,ll,e2^ printed circuit board

PL 5V 1A Supply

This is a standard TTL power supply using the well known LM309K regulator !C lo provide a solid 1 AMP at current at 5 volts We try to make things easy lor you by providing everything you nee3 m one package, including ihe hardware

lo.ooi, $9.95 Per Kit J

Circle 459 on inquiry card.

Whafs New?

A

Personal Computing Company Introduces ACI-33 Cassette Interface

A 3 Base Triple Play

IMSAI Offers New Microcomputer with One Megabyte Memory Capacity

The new IMSAI 8080 Megabyte Micro is one manufacturer's answer to the ever increasing need for more programmable memory space in microcomputers. The unit's chassis has the capacity for one million bytes of programmable memory. The problem of addressing this much memory is solved by using a total of 20 address lines. Memory modules may be purchased in units of 16 K, 32 K or 64 K bytes of dynamic programmable memory.

The heart of the memory control logic is the Intelligent Memory Manager/ Interrupt (IMM) board, which provides write protect for each 1 K byte block of programmable memory, read protection, fully vectored interrupts, and time of day clock. Memory expansion is implemented by increasing the number of address lines from sixteen to twenty, and using a form of block switching to control the four added lines. The extended address space is divided into 64 1 6 K byte blocks of which four may be on-line at any one time. The "switch" is implemented by defining a map which associates a state for address lines 16 through 19 with each state of address lines 12 through 15. The map defaults to 0000 out for all states of address lines 1 2 through 15 when the system is reset. It is modified and maintained under software control.

For more information, write to Michael Stone, IMSAI Manufacturing Corporation, 14860 Wicks Blvd, San Leandro CA 94577."

The ACI-33 is an audio cassette interface designed primarily for the Southwest Technical Products Corporation SwTPC 6800, the control interface and a terminal. The unit will also operate with any RS-232 terminal and computer serial 10 which can supply +5 V and ±12 V for the RS-232 interface. When used with the SwTPC, the ACI-33 supports all functions of the control interface.

The ACI-33 uses the self-clocking redundant Manchester scheme of encoding, sometimes called the "Byte Standard." The two logic states used for encoding are represented by 1200 Hz and 2400 Hz frequencies which are written onto and read from the tape.

Priced at $59.95 for an assembled model, the interface is available from Personal Computing Company, 3321 Towerwood Dr, Suite 101, Dallas TX 75234.

Circle 572 on inquiry card.

MARQUIS, a New Video Display Unit from Dataview

The MARQUIS, announced by Dataview Inc, 23A Dana St, Maiden MA 02148, is a new video display unit featuring both 20 mA current loop and RS-232 interfacing capability. The user can select any of 15 different data transmission rates ranging from 50 to 9600 bps. Full or half duplex operation and parity generation are included and are switch selectable. The unit displays 80 upper case characters per line, using a 5 by 7 dot matrix. Characters are taken from a 64 character ASCII set."

Texas Instruments' new Tl Programmer calculator could be a boon for the long suffering programmer: it performs arithmetic in octal, hexadecimal and decimal, and can be used to convert automatically from one of these bases to any other.

Typical applications of this calculator include converting memory addresses from hexadecimal to decimal, calculating relative address locations and so on. Expressions may have mixed bases within them, and parentheses may be nested up to four deep. Negative numbers are displayed in two's complement form in both the hexadecimal and octal bases: a one's complement key is also included.

A particularly useful feature on this unit is its ability to perform bit by bit operations on hexadecimal or octal numbers, including AND, OR, exclusive OR and SHIFT operations.

The Tl Programmer sells for $49.95 complete with 8 digit LED display, rechargeable battery, AC adapter and carrying case, and is being offered initially by mail only from the company. For more information, write Texas Instruments Inc, Inquiry Answering Service, POB 5012, M/S 84 (Attn: TIP), Dallas TX 75222."

Circle 574 on inquiry card.

News of Interest to "Computors"

SEI Publications has announced a new monthly management report called the Small Business Computor. The term "computor" was coined by the company to describe the man who computes, rather than the machine. The report is to be in newsletter format with no advertising. Its goal is to educate and assist small businessmen and women in the use of computers, computing and data processing as they apply to small businesses.

Sample articles include "Motorcycles and Micros: Retail Success Story," "Control of Computer Based Information Systems," and "Computer Consultants: Who Needs Them?".

More information can be obtained by writing to SEI Publications, POB 145, Newington CT 0611 1."

Circle 571 on inquiry card.

Circle 573 on inquiry card.

Circle 575 on inquiry card.

198

PDR-27 GEIGER COUNTER

Just released by the US Navy San Diego. They appear to be in excellent condition and come in fitted aluminum carrying case not shown. Batteries easily obtained except for 1.5 mercury cells which you can substitute with external AA cells, 4 ranges from 0.5 to 500 mr/hr, detects beta & gamma rays. Visual indication and if phonesa are purchased, audio as well. With no facilities to test, we are selling "as is" visually OK, with schematic.

Phones $5.00 Inst. Book $5.00 PDR-27 $35.00

TOUCH TONE ENCODER KIT $12.95

Simply solder the chip to the PC board on back of the touch pad. It's done. Add 9 volt battery, small speaker, and you have touch tone audio output. We provide specs and instructions. SP-149-B $12 95

IR VIEWER $199.00 COMPLETE

Custom made with manufacturers guarantee. Complete with built-in light source. Permits viewing in total darkness. Operates from 6 volt lantern battery. Great for scientific experimentation, viewing birds, animals, ciminal detection, just plain snooping. (We cannot ship to Calif, residents. SPL-21 $199.00

SPECTRA FLAT TWIST

50 conductor, 28 gauge, 7 strands/ conductor made by Spectra. Two conductors 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 originally $13.00/ft

SP-324-A $1.00/ft. 10 ft/$9.00

SP-234-A $1.00 ft 50cond. 10ft/$9.00 SP-234-B .90ft32cond. 10ft/$8.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 8Cond. #24 12 " 22 14 " 22 24 " #24 29 " 22

10' $2.50 3.00 3.50

50' 100' 9.00 15.00 11.00 18.00 13.00 21.00

5.00 20.00 30.00 7.50 28.00 45.00 Great savings as these are about 1/4 book prices. All fresh & new.

TOUCHTONE ENCODER CHIP

Compatible with Bell system, no crystal required. Ideal for repeaters & w/specs. S6.00

CHARACTER GENERATOR CHIP

Memory is 512x5 produces 64 five by seven ASCII characters. New material w/data S6.00

Please add shipping cost on above. Minimum order $10

FREE CATALOG SP-9 NOW READY

P O. Box 62 E. Lvnn Massachusetts 01904

199

Circle 460 on inquiry card.

A New Altair That Looks Different

A New Way to Label Integrated Circuit Pins

Power for Your Microprocessor

The new Altair Turnkey microcomputer is a significant departure in appearance from the rest of the Altair line. The front panel is virtually blank, sporting only two toggle switches, five LED indicators, and a key operated power switch. All the functional units of this Turnkey model of the 8800b are contained on one circuit board called the Turnkey Module board; this includes the central processing unit (CPU), programmable memory, sense switches and serial 10. All the hardware for this model is compatible with preceding Altair computers.

The Turnkey Module board consists of a serial 10 channel that can operate a variety of peripheral devices, plus 1 K byte of programmable memory and provisions for another 1 K bytes of programmable read only memory and logic for the power-on-start feature.

The available software includes a multipurpose bootstrap loader and monitor, both resident in the programmable read only memory. The 8800b is software compatible with the rest of the Altair line. For more information, contact MITS, 2450 Alamo SE, Albuquerque NM 87106."

Circle 576 on inquiry card.

Industrial Users: Upgrade MDS-800 to Develop Z-80 Code

For designers wanting the additional capability of the Zilog Z-80 processor, but who presently have Intel MDS-800 hardware and 8080 software, Relational Memory Systems Inc (RELMS) announces the Z-80 System Adaptor Module, Z-80-SAM. Completely hardware and software compatible with the

Here is an efficient method for labeling dual in line (DIP) integrated circuit pins on the pin side of printed circuit boards: Adtech Inc, POB 10415, Honolulu HI 96816, has announced DIP-1 DIP Pin Out Labels. The labels, which come in a variety of sizes from 8 pin to 40 pin, are printed on an Vh by 11 inch sheet of clear mylar with adhesive backing. The accompanying reproduction illustrates a portion of the sheet. Each label is imprinted with the appropriate pin out pattern. The user cuts out the desired label and presses it onto the circuit board. Each 8/2 by 11 inch sheet costs $5.95, postpaid, in the US. This technique can save a significant amount of time by cutting down on wiring errors and speeding up troubleshooting. We highly recommend this technique for prototyping, having used a crude manual approximation for years to help eliminate wiring errors."

Circle 577 on inquiry card.

8080, 8080A, 8085 and Z-80 microprocessors, the Z-80-SAM enables an MDS-800 to support and develop both 8080 and Zilog Z-80 software. The Z-80-SAM contains a single board and associated software and firmware. The SAM microcomputer board supplants the corresponding MDS-800 board.

Besides the hardware board, Z-80 SAM system monitor programmable read only memory (PROM) firmware replaces corresponding MDS-800 read only memory (ROM) firmware (on monitor ROM board).

The Z-80-SAM extends the useful life of the capital investment 8080 users have in their MDS-800 system while enabling the user to utilize the faster, more efficient Z-80 microprocessor in future hardware/software development.

Enhanced debugging capability is afforded by hardware features such as display LEDs and single cycle switch which allow the user to freeze the MDS-800 data bus, examine the bus

Century Industries, POB 348, Blue Bell PA 19422, has announced a new power supply kit called the Mighty 4000, designed for use with microprocessors. The unit features four regulated and short circuit protected outputs: +5 V at 5.5 A and -5 V at 2.2 A (both fixed output), +5 V at 1.9 A to +1 2 V at 3.3 A, and +1 2 V at 0.23 A to +28 V at 0.33 A.

The supply is 10.66 by 4.43 by 3.80 inches (27.07 by 11.25 by 9.65 cm) and weighs 8.5 pounds. The price of the kit is $99; it is also available assembled for $129.

Circle 578 on inquiry card.

New Minicomputer Periodical Offered

Minicomputer Press has announced forthcoming publication of the first of several new periodicals devoted to minicomputer end users in business, industry and the home. Minicomputer Workbook is devoted to the interests of engineers, educators and professionals who are familiar with data manipulation and computer concepts, but who need a periodical that integrates the two areas together in a meaningful way. For more information, contact Charles Moore Associates, POB 6, Stump Rd, Southampton PA 18966."

Circle 579 on inquiry card.

contents, and single step the program.

The Z-80-SAM is priced at $1495 in single unit quantities which includes the Z-80 microcomputer board, monitor ROM board, and Z-80 SAM assembler on diskette.

For more information, contact Douglas B Kelley, director of sales and marketing, Relational Memory Systems Inc (RELMS), POB 6719, Santa Clara CA 95150."

Circle 580 on inquiry card.

200

Now low-cost memory

Introducing a new generation nf ECONORAI with SynchroFresh "reliability

Meet ECONORAM* III with SynchroFresh™, the 8Kx8 dynamic memory for S-100 bus computers that really works. And uses less than half the power of static designs. And costs just $188 for an assembled 8K.

Unlike previous attempts at building a low-cost dynamic memory, ECONORAM* III is entirely reliable ... because of Synch roFresh™, a new approach to memory refresh that is simple, elegant and totally effective.

SynchroFresh™ was invented by George Morrow, designer of the original ECONORAM*. Instead of arbitrarily interrupting your CPU to perform memory refresh cycles, Morrow designed SynchroFresh™ to weave refresh invisibly into the natural timing of the S-100 bus. SynchroFresh™ circuitry simply monitors your computer's machine states, utilizing all of the normal opportunities for memory refresh. It's that simple.

And simplicity means reliability and dramatically lower cost. That's why a SynchroFresh™ design was chosen for the first ECONORAM* dynamic, to follow in the footsteps of the largest-selling static memories for personal computers.

ECONORAM* III with SynchroFresh™is an 8Kx8 dynamic board, configured as two individually addressable 4K blocks for flexibility. It is available assembled, tested and warranteed for one full year for just $188. This unprecedented warrantee offers a full refund of purchase price if ECONORAM* III does not run reliably with your S-100 CPU—evidence of our confidence in its performance.

It is also available as a kit with complete assembly instructions and documentation for $159.

ECONORAM* III with SynchroFresh™, in assembled or kit form, may be ordered directly from ThinkerToys™. Write 1201 10th Street, Berkeley CA 94710 or call (415) 527-7548. Call BAC/MC orders toll-free to 800-648-5311. Or ask your computer store to order it for you.

ECONORAM* III with SynchroFresh™

$188

Assembled, tested & w

9s

product of Morrow's Micro-Stuff for

Thinker Toys

•ECONORAM is a trademark of Godbout Electronics.

Circle 461 on inquiry card.

Bally Introduces New Programmable Game Unit

The new Bally Professional Arcade home TV entertainment center is a well-engineered example of the new breed of programmable game modules which use microprocessors for logic and control functions.

The unit features a printing keyboard calculator and can generate video games in color. The games are stored on cassettes; users can change games when desired by simply plugging a different cassette into the front of the unit. A large variety of games is available, including Checkmate, Dodgem, Seawolf, tennis, elementary math drills and poker; up to four players can participate. All games come complete with sound effects and music.

The unit sells for $299, which includes two game cassettes. Contact Robert E Wiles, director of marketing, consumer products, Midway Manufacturing Corporation, 10750 Grand Av, Franklin Park IL 601 31.■

Circle 581 on inquiry card.

OAE Announces New PROM Programmer

OAE's new programmable read only memory (PROM) programmer should be of interest to the experimenter. This is the PP 2708/16, designed to program the 2708 and the 2716 PROMs which are available from a variety of sources. A parallel interface is used to connect the unit to any microcomputer; an internal address unit is built into the unit, plus timing and control logic and DC to DC power conversion from unregulated 8 VDC input.

The PP 2708/1 6 comes complete with a black anodized aluminum case, 5 foot ribbon cable with connectors, and software. The price is $249 for the kit, or $299 for the assembled and tested unit. Contact Oliver Audio Engineering Inc, 7330 Laurel Canyon Blvd, North Hollywood CA 91605."

Circle 582 on inquiry card.

Turn Your Microcomputer Into a Programmable Scientific Calculator

Analog Input Module

From Artisan Electronics, 5 Eastmans Rd, Parsipanny NJ 07054, comes news of a new microcalculator called the Model 85. This new unit is the single board equivalent of a hand held scientific calculator but without a keyboard or case, designed to interface directly to a microcomputer.

Instruction entry to the microcalculator Model 85 is under microprocessor software control. The Model 85 accepts instructions, provides a means to detect busy status, and outputs the full 14 digit display back to the microprocessor for storage or display.

Software for controlling the Model 85 in both a read and write mode requires less than 256 bytes of microprocessor system memory.

The Model 85 has scientific calculation capabilities for handling scientific, engineering, mathematical or statistical problems. Problem solving capability includes transcendental functions, such as logarithms, sines and tangents; polar to rectangular coordinate conversions for handling complex arithmetic, vector; multiple storage registers, selecting operating mode and also constants for ff and e are provided as well as four metric to English unit constants for conversions between inches and centimeters, liters to gallons, and so on. Statistical routines are also provided for calculation of means and standard deviations. The price is $189.■

Circle 583 on inquiry card.

Burr-Brown has announced their new MP20, a microprocessor compatible analog input which consists of a 16 channel analog multiplexer, high gain instrumentation amplifier, 8 bit analog to digital converter, plus all necessary address, data and control bus interfaces.

The MP20 is timing and logic level compatible with the 8080A and the 8008 processors. No external logic is needed. Gain and offset are internally laser trimmed, eliminating the need for external adjustments. Absolute accuracy is better than ±0.4% on the ±5 V or 0 to +5 V ranges.

Low level signals such as thermocouple outputs can also be handled directly with reduced accuracy. The instrumentation amplifier can be programmed with a single external resistor to provide input signal ranges as low as ±10 mV full scale.

In actual use, the MP20 is treated as memory. Each analog input channel occupies one memory location. Any memory reference instruction can be used to access data. Thus, one LDA instruction will input data from one channel to the accumulator. Two adjacent input channels can even be acquired with one LHLD instruction. The MP20 can also be interfaced as IO.

Power requirements for the unit are ±15 VDC and +5 VDC. The price is $195 in single unit quantities. Contact C R Teeple, product manager, Burr-Brown, International Airport Industrial Park, Tucson AZ 85734."

Circle 585 on inquiry card.

Innovex Introduces New Series 400 Floppy Disk Drives

Innovex Inc, 75 Wiggins Av, Bedford MA 01 730, has announced their new series 400 floppy disk drives which feature automatic head unload and stepper motor timeouts, bidirectional write protect, six LED activity indicators, and 50 pin ribbon cable or twisted paiiinterfacing capability.

Both the Model 410, which is soft sectored and IBM compatible, and the Model 420, which is hard sectored, provide single and double density recording capability. A proprietary data separator design is said to offer improved data integrity margins in comparison with other available units.

Prices for the Innovex Series 400 start at $575 in single quantities. Contact Innovex for further information."

Circle 584 on inquiry card.

202

S.D. SALES CO. po. box 28810 -b Dallas, texas 75228

★ Imsai - Altair "A" Compatible Kits ★

Dealer inquiries welcome on these items:

Z-80 CPU BOARD

From the same people who brought you the $89.95 IK RAM KIT. We were not the first to introduce an Imsai/Altair compatible Z-80 Card, but we do feel that ours has the best design and quality for the lowest price! The advance features of the Z-80 such as an expanded set of 158 instructions, 8080A software compatibility, and operation from a single 5VDC supply, are all well known. What makes our card different is the extra care we took in the hardware design. The CPU card will always stop on an M1 state. We also generate TRUE SYNC on card, to insure that the rest of our system functions properly. Dynamic memory refresh and NMI are bought out for your use. Believe it or not, not all of our competitors have gone to the extra trouble of doing this. As always this kit includes all parts, all sockets, and complete instructions for ease of assembly. Because of our past experience with our 4K kit we suggest that you order early. All orders will be shipped on a strict first come first served basis. Kit includes Zilog Manual and all parts. Kit shipped with 2 MHZ crystals.

Z-80 Chip & Manual - $49.95; Acid S5.00 for Z-80A Z-80 Manual - S7.50 Separately.

Complete kit - $149.

4K LOW POWER RAM

IMSAI AND ALTAIR 8080 PLUG IN COMPATIBLE. USES LOW POWER STATIC 21L02 - 1 500ns. RAM's. FULLY BUFFERED, DRASTICALLY REDUCED POWER CONSUMPTION, ON BOARD REGULATED, ALL SOCKETS AND PARTS INCLUDED. QUALITY PLATED THROUGH PC BOARD. For 250 ns RAM's add $10.

THE WHOLE $89.95

WORKS kft

NEW! DESIGN CONSOLETTE KIT - $89.95

S.I). Sides announces die inexpensive way to beat the Wire wrap jungle. Our latest kit gives you I 24 solderless quick connect terminals, enough lor eight 16 pin IC's and provides 50 \ N common buss matrix, lias regulated +SVDC and +/- I 5VDC, all at I AMP. Voltage regulation at 100%. Also includes a pulse generator variable from I Oil/ In 50mhz and .01 see. to 100 llano seconds. Generator output is +5V. In kit form only and includes all parts, sockets; front panel measures 7'.4"x8'4", and hardware, case not available.

CAR/BOAT KIT M0 $34.95 9^'

%mc to (jom 8auf

MUSICAL HORN

Musical Horn kit for car, boat or home. Plays any tune from Mozart to Led Zeppelin. Change tunes in seconds: complete solid state electronics. Standard or custom tunes available at S6.95 each. (You supply the sheet music - we supply electronics for your favorite tune.) One song supplied with original order. Standard tunes available: DIXIE - EYES OF TEXAS - ON WISCONSIN - YANKEE DOODLE DANDY - NOTRE DAME FIGHT SONG - PINK PANTHER - AGGIE WAR SONG - ANCHORS AWAY - NEVER ON SUNDAY - BRIDGE OVER RIVER QUI - CANDY MANStandard 2 inch 8 ohm speaker supplied. Power horn available for car/boat kit.

HOME KIT

$26.90

Kit includes speaker which operates from your door bell. When door bell is pushed your favorite tune is played. Car/boat kit includes speaker which operates from car/boat horn ring. Allow 4 weeks delivery on both kits.

$9.95 kit

6 DIGIT ALARM CLOCK KIT

We made a fantastic kit even better. Redesigned to take advantage of the latest advances in IC technology. Features: Litronix Dual W displays, Mostek 50250 super clock chip, single I.C. segment driver. SCR digit drivers. Greatly simplified construction. More reliable and easier to build. Kit includes all necessary parts (except case). For P.C, board arid S3.00; AC XFMR arid SI .50. Do not confuse with Non-Alarm kits sold by our competition! Eliminate the hassle - avoid the 5314' . NEW! WITH JUMBO LED READOUTS!

] 0(10 MFD J^WVDC Up

4/$1.00

:jl switci

12/$1.00

POWER RESISTOR 15 OHM 25W BY

CLAROSTAT

75<P ea.

RESISTOR ASSORTMENT

200/$2.

P.C. LEAD DIODES 1N4148/1N914

100/$2.

1N4002 1A 100 PIV

40/$1.

THERMISTORS MEPCO - NEW! 1.5K OHM

5/$1.00

DISC CAP ASSORTMENT

P.C. Leads. At least 10 different values. Includes .001, .01, .05 plus other standard values.

60/51.00

AMD-1702A

tfu/jt Jactoi// 7(adue

FACTORY PRIME UNITS! BRAND NEW! 1.5 Micro-Seconds Access Time.

10/$40. $4.95 ea.

* Sfecidf *

3.579545 MHZ Time Base Crystal SI.25

28 PIN SOCKETS 3 for $1.00

11,000 MFD 50WVDC Computer Grade Cap S3.00 each

39 MFD 16 V Mallory Electrolytic 15 for SI.00

FACTORY PRIME! 21L02-1

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!

500ns 8/$12.95 250ns 8/$15.95

IC's from XEROX

1402 A Shift Regulator MH0025CN - 55c

50c

MK50397-S58.95

S.D. Sales Exclusive! Elapsed time IC. Specially modified six digit counter circuit to measure 59 min., 59 sec 99/100 sec. Perfect for dark room timers, chess timers or any timing applications. Supplied with data sheet and applications.

7400

- 9c

7430

- 9c

7493

26c

7402

- 9c

7440

- 9c

74121

-22c

7404

- 9c

7437

-10c

74123

-32c

7406

-lie

7438

-10c

74151

- 9c

7407

lie

7451

- 9c

74155

-22c

7410

9c

7474

-16c

74193

-35c

7416

-13c

7475

-24c

8233

35c

7420

- 9c

7486

-16c

Intel

1302 - 45c

MOS 6 Digit Up/Down Counter

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 preloadable compare register with compare out-put. BCD and seven segment outputs, internal scan oscillator, CMOS compatible, leading zero blanking. 1MHZ. count input frequency.

$12.95

CALL IN YOUR BANKAMERICARD OR MASTER CHARGE ORDER IN ON OUR CONTINENTAL UNITED STATES TOLL FREE WATTS LINE:

Texas Residents Call Collect:

214/271-0022 1-800-527-3460

TERMS:

Mom/ 'Bad

NO COD'S. TEXAS RESIDENTS ADD 5% SALES TAX. ADD 5% OF ORDER FOR POSTAGE & HANDLING. ORDERS UNDER $10.00 ADD 75c. FOREIGN ORDERS - U.S. FUNDS ONLY!

Orders over $15. - Choose $1. FREE MERCHANDISE!

Circle 462 on inquiry card.

Nybbling Thinly Sliced Bytes

Texas Instruments has announced a new set of 4 bit slice microcomputer circuitry which will be of great interest to experimenters wanting to try their hands at designing a microcomputer from scratch.

The S481 chip set is a new series of Schottky TTL microprogrammable building block integrated circuits which are said to offer up to ten times the throughput of conventional microprocessors.

The S481 chip set can select and operate on two operands, generate status and store results in 100 ns. The set consists of one or more 4 bit slice processors, one or more 4 bit slice controllers, an appropriate number of field programmable logic arrays (FPLAs), and a variety of Schottky programmable read only memories and programmable memories.

The experimenter can choose word size to be any multiple of four, making this a very versatile system. The number of general purpose registers which can be created is limited only by the number of directly accessible memory locations. A memory to memory system places the register file function in main memory; this system can be designed to handle interrupts or context switches faster than conventional register to memory systems.

For more information, contact Texas Instruments Inc, Inquiry Answering Service, POB 5012, M/S 308 (Attn: S481), Dallas TX 75222.

Circle 586 on inquiry card.

Periodical Guide for Computerists

The Periodical Guide for Computerists is a new 20 page book that indexes over 1000 personal computing articles from 15 magazines (including BYTE) for the period from January thru December 1976. The articles are indexed under more than 100 subject categories. Indexed are magazine articles, letters from readers, book reviews and editorials from both hobbyist and professional publications.

The books are available from E Berg Publications, 1360 SW 199th Ct, Aloha OR 97005, for $2.50 each, postpaid, and also from local computer stores."

Circle 587 on inquiry card.

A New Product Guide from RCA

RCA has announced the MPG-180, a new 40 page guide to their COSMAC family of microprocessor products. Hardware products described include the CDP1800 series of CMOS integrated circuits. This series features central processing units (CPUs), programmable memories, read only memories, IO circuits and interfacing circuitry. The MPG-180 describes the CDP1 802 microprocessor and covers its features, architecture, ratings, characteristics, timing diagram and instruction summary.

Among the additional items described are a Microtutor which teaches programming techniques, a floppy disk system, a binary arithmetic package, timeshare software development packages and a cross-reference guide to other manufacturers' integrated circuits.

The free MPG-180 product guide may be obtained by writing to RCA Solid State Division, POB 3200, Somerville NJ 08876."

Circle 588 on inquiry card.

Is Your Computer System Half-Baked?

We received the following information from The Computer Center Inc, 321 Pacific Av, San Francisco CA 94111: A new Microcomputer Recipe Book is available free from the Computer Center, listing everything from soup to nuts that you need to put together your own microcomputer operating system for personal, business or scientific use. Items listed under "Ingredients" include computers, semiconductor and floppy disk memories, video displays and printers. Suggested menus for complete systems range from the "BIG MAC," a simple 8080-based computer used in conjunction with the family TV set to the "Beef Wellington," which includes a Processor Technology Sol-20 microcomputer, dual floppy disk drives, a DECwriter II printer and a video monitor. Technical books dealing with hardware design, software development and "How To Do It" books are also offered."

Circle 589 on inquiry card.

A Hand Held 4 Channel Logic Analyzer

A problem with multichannel digital logic analyzers for most computer experimenters is cost. Digital Broadcast Systems Inc, 4306 Governors Dr, Huntsville AL 35805, has provided a relatively low cost solution to this problem with their new 45-B Logic Analyzer. The 45-B is a hand held instrument which attaches to any conventional single trace oscilloscope having an external trigger to produce four simultaneous digital waveforms. A typical application would be to display the clock from a given circuit on one channel, and selected logic gate inputs and outputs on the other three channels. Complete instructions are printed on the analyzer itself.

The unit can be used with TTL, DTL, RTL or CMOS logic families. Two potentiometers control waveform amplitude and multiplexed display rate; once these controls are set, the scope time base control operates normally. The price, including a 9 V battery and AC adapter, is $149.95."

Continental Specialties' New Catalog

Continental Special-ties Corporation, 44 Kendall St, POB 1942, New Haven CT 06509, have announced their new 16 page catalog. It contains a variety of breadboarding aids such as integrated circuit test clips, solderless breadboards (some with self-contained power supplies), and logic probes. A line of instrumentation is also featured, including a function generator, RC bridge and pulse generator. There is a question and answer section in back of the catalog which answers frequently asked breadboarding questions. The catalog is free."

Circle 591 on inquiry card.

A New Floppy from Digital Systems

Digital Systems announces a new floppy disk system featuring Shugart Associates drives and Digital Systems FDC-1 controller. Disk formatting is IBM compatible, and diskette initialization capability is provided. The Digital Research CP/M disk operating system software is available as an option, as is an Altair bus compatible interface. The price for the assembled and tested unit is $1 845. Contact Digital Systems, 6017 Margarido Dr, Oakland CA 94618."

Circle 592 on inquiry card.

204

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 00 requirement + 5V and ± 5V or ± 12 V depending on your RS 232 device.

We supply — board, connectors, documentation and components. Sorry, we do not supply case or power supply.

WHERE IT MAKES SENSE, MAY BE USED WITH ANY 80

OMPUTER POW

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 C 7Q00 with local regulators are 5V to 10A, in one amp increments, - 5V at 1A, ± 12V at 1A lr# W regulators supplied 6 340T-5 supplied.

UNIVERSAL 4K A-TiiRn MEMORY BOARD KIT?/*!

This memory board may be used with the

F8 and with minor modifications may be used

with KIM-1xip.

32-2102-1 static RAM's, 16 address lines, 8 data lines in, 8 data lines out, all buffered. Onboard decoding for any 4 of 64 pages, standard 44 pin, .156" buss.

F8 EVALUATION BOARD KIT WITH EXPANSION CAPABILITIES

A fantastic bargain for only - ji.ji.nn with the following features: OQ|C|U U

• 20 ma or RS 232 interface YwW

• 64K addressing range

• Program control timers • 64 Byte register

• 1K of on-board static • Built-in priority interrupts memory • Documentation

• Built in clock generator • Uses Fairbug PSU

BASIC ON

2708-8K EPROM S20.95

2522 STATIC SHIFT RE6 S 195

2513 CHARACTER GEN . S 9.95

2518-HEX 32 BIT SR S 3.50

2102-1 1024 BT RAM S 1.29

5780 4K DYNAMIC RAM .. $ 4.75

5202A UV PROM S 6 95

I 101A-25G BIT RAM $ .85

2107B S 4.25

MK4008P S- 1.95

I 702A UV PROM S 4.95

5204-4K PHOM SI0 95

AY 5 101 3 UART _ S 6.95

MINIATURE MULTI-TURN TRIM POTS 100, 500. 1K.2K.5K,10K,25K.50K,100K,

200K.500K 1 M,"().S.75each 3/S2.O0

MULT I TUiiN TRIM POTSSimil.ii Bourns

3010 style 3/16"x5/8"*1 l /4": 50.100, IK 1 0 K, 50 K ohms Si .50 ea . 3 S4 00 LI'-iHT ACTIVATED SCRj TO 18, 200V 1A S 1 10

TRANSISTOR SPECIALS

7N3585 NPN Si TO 66 S .95

2N3772 NPN Si TO-3 S 1 60

2N456A PIMP GE S 75

2N4008 PNP Si TO 3 S 1 00

2N6056 NPN Si TO-3 D.nlimiton S 1.70 2N5086 PNP Si TO-92 . . . . 4/S 1.00 2N4898 PNP TO 66 . . ... S 60

2N404 PNP GE TO-5 . . ... 5/S 1.00 2N3919 NPN Si TO-3 RF ... S 1.50

MPSA 13 NPN Si TO-92 3/S 1.00

2N37G7 NPN Si TO 66 . S .70

2N2222 NPN Si TO 18 5/S 100

2N30S5 NPN Si TO 3 S .70

2N3904 NPN Si TO-92 . 5/S 1.00

2N39D6 PNP Si TO-92 5/S 1.00

2N5296 NPN Si TO-220 S .50

2N6109 PNP Si TO-220 S .55

2N3G38 PNP Si TO 5 5/S 1.00

2N65I / NPN TO 92 Si 3/S t .00

C/MOS (DIODE CLAMPED)

74C10 .22 4012- .22 4023- .22 4042

74C193-1.50 4013- .40 4024- .75 4046-2.25

4001- .22 4015- .95 4025- .22 4049- 40

4002- .22 4016- .40 4027- .40 4050- .40

4006 -1.20 4017-1.05 4028- .88, 4055-1.50

4007 - .22 4018-1.00 4029-1.10 4066- .80

4009- .42 4019- .25 4030- .22 4071- .27

4010- .42 4020-1.05 4033- 1.50 4076-1.05 4011 .22 -1022- .95 4035-1.10

MCA-S1 OPTICA! LIMI l SWH CH Si 50

LED READOUTS

FND 359 C.C. 4" S .50 HP 7740-.3" C.C. $ FND70C C. .4" $ .55 MAN-7-.3" C.A. S

FND510C.A. 5" S 85 DL 747 C.A. .6" S

PRINTED CIRCUIT BOARD

4-1/2" x-6-1/2" SINGLE SIDED EPOXY BOARD 1/16" 111 irk. uilPttftecl

TANTULUM CAPACITORS

Full Wave Bridges

7WATTLD-65 LASER DIODE IR $R95

2N 3820 P FET $ 45

2N 54 57 N FET $ .45

2N2646 . S .45

ER 900 TRIGGER DIODES 4/ SI 00

2N 6028 PROG UJT S 65

8 PIN DIP SOCKETS S 24

1 4 PIN DIP SOCKETS S 25

16 PIN DIP SOCKETS S 28

18 PIN DIP SOCKETS S 30

24 PIN DIP SOCKETS S 40

28 PIN DIP SOCKETS S .50

40 PIN DIP SOCKETS S .60

VERIPAX PC BOARD This board is a 1/16" simile sided pa par epoxy board, 4'//'x6V DRILLED and ETCHED which will hold up io 21 single 14 pm IC's or 8, 16. ur LSI DIP IC's with busses fOi

power supply connector S4.0U

MV 5691 YELLOW-GREE N

BIPOLAR LED S .90

FP 1 00 PHOTO TRANS S .50

RED, YELLOW, GREEN or AMBER

LARGE LED's 6/S1.00

1L-5 (MCT-2) S .75

MOLEX PINS 100/S1.00

1000/S8 00 10 WATT ZENERS 3.9, 4.7, 5.6, 8.2,

12,15,18,22,100.150 oi 200V . ea. S .60 1 WATT ZENERS 4.7, 5.6.10, 12 15

18 oi 22V ea. S .25

MC6860 MODEM CHIP S9.95

Pf7^W^^3A^^12/^^ScH^^^5^^

100. ~0~6~ _JA .30 " .80 " ' 3.70

200 "07" ,20 _ _J35, _fjb ~_j.25

400 .09 "25 .50 ' 1.40 "6.50

600 .11 _ .30^ _J0 _ VSO 8.50

800 15_ ~ .35_ '_ .90 _ 2.30 10.50

1000 .20 .45" 1.10 2.75 12.50

22UF 35V 5. S 1 00 47UF 35V 5 S1.00 68UF 35V 5 SI 00 1UF 35V 5 SI 00

2 2UF ^0V5 SI 00

3 3UF 35V 4 S 1 00

4 7UF 15V 5/S1.00 6 8uF 35V 4 SI 00

10UF 20V 22UF 25V 15UF 35V

30UF 5V

33U

:j5v

3/S 1.00 5/S1.00

47UF : 68 UF 15V

M7001 ALARM CLOCK CHIP

NATIONAL MOS DEVICES

MM 1402

1.75

MM5057

2.25

MM1403

1.75

MIV15058

2.75

MM 1404

1.75

:vlM50G0

2.75

MM 5013

2 50

MM 5061

2.50

MM501G

2.50

MM5555

4.75

MM501 7

2 70

MM5556

4.75

MM 50 5 5

2.25

MM5210

.1.95

MM5056

2.25

MM5260

1,75

TTL IC SERIES

600 1.20 1.75 4 00

SANKEN AUDIO POWER AMPS

1 1010 G 10 WATTS.

1 1020 G 20 WATTS S15-95

1 1050 G 50 WATTS S27.95

#24. EIGHT CONDUCTOR

SPECTRA FLAT CABLE 10751.50 1O0VS 13.50

DIP SOCKETS

8 PIN - .22 24 PIN 14 PIN - .25 28 PIN 16 PIN - .28 40 PIN 18 PIN - 30

f 30 WIRE WRAP WIRE SINGLE STRAND 100*/$ 1.40

SILICON SOLAR CELLS

2V diameter .4 V at 500 ma. $4.00 / 2V at 200 mils $2.00

7400

14

7445

74151

.60

7401

.14

7446

.65

74153

.60

7402

.14

7447

.65

74 154

.95

7403

.14

7448

.65

74155

.70

7404

.18

7450

15

74 157

.58

7405

,18

7472

29

74161

.85

7406

.25

7473

.29

74163

.80

7407

25

74 74

.29

74164

.95

7408

18

74 75

.45

74165

.95

7409

.17

7476

.30

74173

1.20

7410

.14

7480

.35

74174

.95

741 1

.20

7483

.62

741 75

.82

7412

.20

7485

.87

74176

.75

7413

.39

7486

.30

741 77

.75

7414

.63

7489

85

74180

.65

7416

25

7490

42

74181

1.90

74 17

.25

7491

58

74190

1.00

7420

.14

7492

.43

74191

1.00

7425

25

7493

.45

74192

.83

7426

.22

7494

.70

74 193

.83

7427

.25

7495

.65

74 194

.85

7430

v14

7496

.65

74195

.52

7432

.25

74107

.28

74196

.86

7437

.21

74121

.33

74257

1.25

74 38

74123

65

74279

.87

7440

14

74125■

40

75324

1.75

7441

.70

74126

.40

75491

05

7442

.40

74150

,90

75492

65

309K .. 723

LM 376 320K-5 0

REGULATORS

. . S .95 340K-E . . S .50 or :

MINIATURE DIP SWITCHFS CIS 206-4 Four SPST switches

in one minidip package . . S1.75 CTS-206-8 Eight SPST switches in a 16

pin DIP package SI,95

5-HV SPST M11 open, 330 Ohn

■nd, 1

■ S 75, 3 S2V00

/H Lb

SERIES

74 LSI 25'

65

LINEAR

?4i_soo

23

7JLS126

65

CIRCUITS

70LS02

- 22

74LSI32

.80

LM 101

75

MLS03

- 23

74LS136

39

LM 301

748 31

ML 5 04

- 2B

74LS13B

72

LM307

- 30

7JLS0S

28

74LS139

72

LM 308

95

74LS08

- 23

74 LSI 51

98

LM 311

.95

74LS09

- 33

74LS153

.93

LM 318

1 35

741. SI 0

23

74LS-55

1.40

LM 319

- 95

74LS11

- .23

74LS'56

95

LM 324

- 1 05

74LSI 3

GO

74LS157

.98

LM 339

1 10

74LS15

74LS160

02

LM 358

74LS20

- 23

74LS161

02

LM 377

- 2 SO

74LS21

23

74LS162

02

LM 3B0

95

JJLS22

23

74I.S163

.02

LM 381

■ ) 25

74LS26

- .33

74LS168

.10

LM 382

1 25

74LS27

- 2 7

74LS169

10

LM 53 7

2 50

74L530

23

74LS170

72

LM 553

-2 SO

74LS32

- 33

74LS173

.39

LM 555

.44

74LS37

- 37

74LS174

□ 5

LM556

85

74LS3S

- 37

74LS175

22

560

2 00

74LS40

27

74LS279

75

565

1 10

741 S51

.23

74LS190

5C

566

- 1 60

74LS54

23

74LS191

.50

567

1 50

74LS74

49

74LS192

75

703

90

74LS90

95

74LS1S3

75

'09

25

74LS42

74LS195

.25

M0

35

74LS73

- 40

74LSI96

99

7 1 1

- 35

74LS74

ao

74LS197

99

741C or

74LS76

- .40

74LS221

25

7 47

65

74LS90

- 89

74LS257

.35

LM 1310 - 2 50

74LS92

85

74LS258

□8

1456

74LS93

85

74LS365

.66

1458

50

74LS109

50

74LS366

66

CA3046

75

74LS112

43

74LS367 74LB368

66 65

CA3047

95

PRV

1 A

OA 25A

1 5/

6A

35A

100

.40 _

.70 1.30

.40

.50

1 20

200

.60

.70

1.60

WE SHIP OVER 95% OF OUR ORDERS THE

■

Circle 463 on inquiry card.

SOLID STATE SALES

P.O. BOX 74B

SOMERVILLE. MASS. 02143 TEL. (617) 547-4005

A New Printed Circuit Board for the Experimenter

Acoustic Coupler

Midgard Electronics Inc, 26 Walnut St, Watertown MA 02172, has announced the UMB, an expoxy glass board with 1380 plated through holes in a twosided foil pattern. There are four power distributions, and pad spacing is 0.1 inch (0.254 cm).

All four power distributions are bused to each integrated circuit position to provide short interconnection distances. A reverse foil pattern minimizes characteristic impedances.

The UMB will accomodate all dual in line integrated circuit packages as well as discrete components. Exterior connection is provided by a 22 pin edge connector compatible with the Amphcnol type 225-2221-101 connector. The price is $1 7.15 in quantities of one to six.

Circle 593 on inquiry card.

Anderson Jacobson announces the new A 242A acoustic coupler which operates at data rates up to 450 bps in the send mode.

A New Business Software and Hardware Package

Computer Mart of New Jersey Inc, 501 Rt 27, Iselin NJ 08830,has announced a new business oriented small computer system. It stores information on floppy disks for random access, and features both video display and hard copy printing of business reports. A custom software package allows the user to communicate in simple English phrases. Contact the Computer Mart for further details."

Circle 595 on inquiry card.

The A 242A features:

• Flush mounted acoustic cups to lock in handset.

• A vibration isolation technique utilizing direct microphone handset coupling.

• Quartz crystal control of both transmitter and receiver.

• A carrier detector designed to sense valid data regardless of the carrier level.

• RS-232 and 20 mA interfaces provided.

• A rubber foot design for vibration isolation.

The A 242A is priced at $365 in single quantities. Contact Anderson Jacobson Inc, 521 Charcot Av, San Jose CA 95131, (408) 263-8520. ■

Circle 594 on inquiry card.

A Lower Case Character Kit

Northern Valley Systems announces the LC01, an ADM-3 lower case option kit. This kit will allow Lear Siegler's ADM-3 and ADM-3A video display terminals to display lower case characters with no modifications to the PC board. The kit includes refresh memory chips as well as a custom programmed character generator. It can be installed in approximately ten minutes. The price is $27.50; dealer and group purchase discounts are available.

The LC01 is available from Northern Valley Systems, POB 687, Englewood, NJ 07631.■

Circle 596 on inquiry card.

100% GUARANTEE!!

guarantee the products we sell. ' refund or replacement for any acTory product returned with> days of purchase. Our magnetic media is certified 100% error-free, and shipped fresh from refrigerated storage, and our ICs work properly!

Free catalogue of ICs, Components, Word Processing Supplies, Useful Devices, and Equipment sent in response to each inquiry and order. Call for quantity and special group discount programs.

LS 7031 8 decade counter & 7seg. driver all on one 40 pin chip. Uses +5 only 15.95 {includes schematic and app. note) MAN6640 dual .6" orange hi-intensity 2.95 Gould 2 AMP-HOUR "C* size NICADS 3.95 MM74C926N 4decade counter/driver 5 95 MM5058N/2533V 1 024 Static S'.R'. 10/9.95

~ Electrolabs ~

POB 6721, Stanford, CA94305

415-321-5601

LINEAR

LM323K

5

95 99

CPUs, Support, & PROMs

LM 309K

0

Z-80

39.00

LM31 7 K

2

95

8080A

11.95

LM375N Xtal Osc. Ckt.

2

75

8X300I

55.00

MEMORY

8228

7.29

MCM6810L-1

2

95

8215

2.39

2 1 L02-1

1

25

AY5 1013

4.95

934 1 1 DC

1

00

8223 PRO

M SPEC

A L

10/9.95

C3107B

1

00

UPD371D

Cassette

Cnt

rl. 49.00

c 21 1 4 19 uPD411D4 135nS. 3

00

95

UPD372D Floppy Cntr 82S2708 70nS. Pin for

. 52.00 P. 29.95

TANTALUM CAPACITOR SPECIAL: 22uFd/35VDC 10/3.99

These are CSR13 type and offer excellent bypass, filter and coupling performance out to GHz. frequencies. Perfect for memory and digital.

TRICK OR TREAT!!

For each C2716, or TMS2716 purchased before 1, Jan. 1978 we will donate $2.00 to UNICEF in your name, and issue you an equal amount in credit towards your 1978 purchases.

UVEPROMS

C2716

5V Only •

59.00

TMS2716

3 Supplies

49.00

C2708

Indus. Std.

18.95

C2708

(650nSec.)

14.95

C1702A

2K

4.95

C1702

2.25

MM5203Q

2K

2.95

MM5204Q

4K

9.95

•w f i . a Removable Magnetic

VGrostimslora9e Media

54" VIDEO TAPE By m

Memorex . Absolutely gu; clogging nor excessive wear, play on Sony, G!E!, Panasot

jor US Manufacturer, but NOT 12.99 an teed to cause neither head in/110 oc 2400 ft.X'/i inch for one hour ■u/ ■ I ic and all other Monochrome and color

EIA J standard machines. Call for prices on sizes to fit Sony Portapack, and for other lengths. Our bulk purchase makes this offer possible. Splice-Free, and shipped in an attractive permanent black plastic storage box. Vi" format is the highest performance per dollar. Normally $22.95.

APL Programming language selectric printer balls 29.00

VADIC Modem Cards. Complete, requiring only + 12V, +5V, and 22 pin connectors .for Bell 103 Orig./Answer service: 79.95

SMOKE DETECTORS Save your life, your lab, your computer. Mfg. by BRK. We think that this is the most reliable unit on the market. Same as the one demonstrated on TV for Pittway by William Conrad. In addition, this unit will function for more than a year on an OQ Q

inexpensive 9V cell, in contrast to many others requiring a 5- ZjSj 7 dollar battery. Nationally advertised at $39.95. Specify battery or 1 10V.

MilliDiskS 5 Per Box. Ea. Box:

MD525-1 (Soft Sector) 29.95 MD525-10 (Hard Sector: 10 Holes) 29.95 MD525-16 (Hard Sector: 16 Holes) 29.95

Flexible Disks 2 Per Pkg.

FD341000 (Soft Sector IBM Std.) 11.95 FD32 1000 (Hard Sector, Inner) 12.49 FD65 1000 (Hard Sector, Outer) 12.49

manufactured by Information Terminals Corp.

10 Boxes, Ea: 50 Boxes, Ea:

26.95 26.95 26.95

10.49 11.29 11.29

Flippy Disks 10 Per Box:

FD34 2000 (Soft, IBM) 89.30 80.30

FD32 2000 (Hard, Inner) 93.80 84.40

FD65 2000 (Hard, Outer) 93.80 84.40

Digital Cassettes 2 Per Pkg.

1-150 For all "Kansas City" and other digital recording with au

8.90 8.50

Ft 300 Digital Direct 11.99 10.99

24.25 24.95 24.95

9.49

10.19

10.19

72.30 75.90 75.90

io decks. 7.49 9.99

Circle 464 on inquiry card.

206

NEW 8080 and 8085 RGFGRGNCG GUIDG

A TOTALLY NEW CONCEPT!

SAVES TIME AND MONEY!

MAKES YOUR JOB EASIER!

A powerful new tool for every serious 8080 user — professional and novice alike. Priceless timesaver for engineers, technicians, and programmers. Saves time and money in the lab, on the production line, or in the field.

Convenient pocket size — 3% by 7% inches — gives quick and easy access to all vital reference data. No more searching here and there for codes, instructions, or definitions. It's all there — at your finger tips — everything you need to successfully use the 8080A and — Intel's new 8085 microprocessor.

Features cross listing, for rapid assembly and disassembly, of MACHINE CODES and MNEMONICS • Concise description of 8080 and 8085 OPERATIONS, SIGNALS, PINOUTS, and INSTRUCTIONS • Convenient cross conversion of OCTAL, HEXIDECIMAL, DECIMAL, ASCII, and EBCDIC codes • Easy-to-read tables of powers of two, eight, and sixteen ... and much more ... Sturdy • Handsome • Easy-to-use • Data Packed Your timesaver will give many years of professional service.

$12.95 each (plus postage & California sales tax) — 25% discount for 4 or more. MoneyBack Guarantee: You must be fully satisfied or simply return the guide within 15 days forf ull and prompt refund.

URBAN INSTRUMENTS • 4014 cody road • department ci •

SHERMAN OAKS • CALIFORNIA 91403

BANKAMERICARD

PLEASE SEND.

NAME

STREET

CITY

STATE

.8080 timesavers to:

CHECK/M.O. ENCLOSED □ BANKAMERICARD □ MASTER CHARGE □

CARD NUMBER

GOODTHRU 4 DIGITS ABOVE NAME

.ZIP SIGNATURE

(MASTER CHARGE)

^] cyberccm boards

MB-1 MK-8 Computer RAM. (not S-100). 4KX8. uses 2102

type RAMs, PCBD only $22

MB-3 1702A EROMj3oard. 4KX8. S-100, switchable address and wait cycles, kit less PROMS $65

MB-4 Basic 4KX8 ram, uses 2102 type rams, may be expanded to 8KX8 with piggybacking, S-100 buss. PC

board $30

MB-6 Basic 8KX8 ram uses 2102 type rams, memory protect in 256 to 8K switchable S-100 buss. PCBD $35

MB-8 2 708 EROM board. S-100. 8KX8 or 16KX8 kit without

PROMS $85

IO-2 S-100.8 bit parallel l/Oport, %of board is lor kludgmg.

Kit $55 PCBD $30

VB-1 64X 16 video board, upper lower case Greek, composite and parallel video with software, S-100.

Kit . . $189.00 PCBD $35

SP-1 Music synthesizer board, S-100, computer controller wave (orms. 9 octaves, 1V rms Vz% distortion, includes

software kit $250

Altair Compatible Mother Board. 11 x 11'/2 x Vs".

Board only... $45 With 15 connectors $105

Extender Board full size. Board only $9

With connector $13.50

Solid state music Cybercom boards are high quality glass board with gold finger contacts. All boards are check for shorts Kits only have solder mask .90 day guarantee on Cybercom kits.

inc. WAMECO INC.

MEM-1 8KX8 fully buffered. S-100. uses 2102 type rams.

PCBC .$30

Mother Board 12 slot, terminated, S-100. board only$35 10% discount on 10 or more of WAMECO PCBD in any combination.

NEW! All IC's. sockets & hardware lor WAMECO MEM-1 includes prime 2102AL-4's $144 Order PCBD separately below.

Special 2102AL-4 1K x 1 ram '/a less power than 21L02 type rams, with power down, prime from NEC. Ea. 2.00; 32 ea. 1.80; 64 ea. 1.70; 128 ea. 1 60; 256 ea. 1.50.

9080A AMD 8080A (Prime) 8212/74S412 Prime 8214 Prime 8216 Prime 8224 Prime 8228 Prime 8251 Prime 8255 Prime

1702A-6 AMD 4702A Prime TMS-601' UART Prime 2513 Char Gen Upper Prime 2513 Char Gen Lower Prime 1702A Intel Not Prime

419 Portofino Drive San Carlos, California 94070

Please send for IC, Xistor and Computer parts list

20.00 4.00 8.30 4.95 5.00 8.90 14.50 14.50 6.00 6.95 11.00 11.00 4.00

8T10

2.00

8T97

2.00

80L97

1.50

8T13

2.50

8T110

2.00

81L22

1 50

8T16

2.00

5309

8.00

82L23

1 90

8T20

2.50

5312

4.00

85L51

2.50

8T24

2.50

5313

4.00

85L52

2.50

8T26

2.50

5320

5.95

85L63

1.25

8T34

2.50

5554

1.90

86L70

1.50

8T37

2.50

5556

2.50

86L75

1 90

8T38

2.50

5055

1.60

86L99

3.50

8T80

2.50

MC4044

2.25

88L12

.80

74L00

.25

74LS00

.40

1101

1.25

74L01

.25

74LS01

.50

1103

1.25

74L02

.25

74LS02

.40

2101

4.50

74L03

.25

74LS03

.40

2111-1

3.75

74L04

.30

74LS04

.45

2112

4 50

74L05

.40

74LS05

.45

2602

1.60

74L06

30

74LS08

.40

4002-1

7.50

74L08

.40

74LS10

.40

4002-2

7.50

74L09

.40

74LS12

.55

MM5262

1.00

74L10

.30

74LS20

.40

7489

2.00

74L20

.35

74LS22

.45

74200

4.95

74L26

.40

74LS27

.45

74C89

3.00

74L30

.40

74LS30

.40

82S06

2.00

74L32

.45

74LS37

.60

82S07

2.00

74L42

1.50

74LS38

.60

82S17

2.00

74L51

.35

74LS42

1.50

8223

2.50

74L54

.45

74LS51

.40

82S23

3.00

74L55

.35

74LS54

.45

82S123

3.00

74L71

.30

74LS55

.40

82S126

3.50

74L73

.55

74LS73

.65

82S129

3.50

74L74

.55

74LS74

.65

82S130

3.95

74L75

1.20

74LS76

.65

82S131

3.95

74L78

.90

74LS151

1 55

IM5600

2.50

74L85

1.40

74LS174

2.20

IM5610

2.50

74L86

.75

74LS175

1 95

IM5603

3.00

74L89

3.50

74LS192

2.85

IM5604

3.50

74L90

1.50

2501B

1.25

IM5623

3.00

74L91

1.50

2502B

3.00

IM5624

3.50

74L93

1.70

2507V

1.25

MMI6330

2.50

74L95

1 70

251 OA

2.00

DM8573

4.50

74L98

2.80

2517V

1.25

DM8574

5.50

74L123

1 50

2519B

2.80

DM8575

4.50

74L164

2.50

2532B

2.80

DM8576

4.50

74L165

2.50

2533V

2.80

DM8577

3.50

74L192

1.25

DM8131

2.50

DM8578

4.00

74L193

1.20

N8263

3.50

2.4576 MHZ

MH0026

2.95

MC1489

1.50

XTAL

720

MC1488

1.50

DM8837

1.50

Check or money order only. If you are not a regular customer and your order is large please send either a cashier's check or a postal money order, otherwise there will be a delay ot two weeks for the check to clear. All items post paid in the U.S. Calif, residents add 6% tax. Money back 30 day guarantee. We cannot accept returned IC's thai have been soldered to. Prices subject to change without notice. $10 minimum order. $1.00 service charge on orders less than $10.

Reader Service

To get further information on the products advertised In B YTE, 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

Service Page Number Number

441 AAA Chicago Computer Center p. 185

382 Alpha Digital p. 82

454 Ancrona pp. 188, 189

391 Anderson Jacobson p. 107 357 Apple pp. 14, 15, 16

378 Artec Electronics p. 73 446 AVTAR Systems p. 187

383 BITS pp. 83, 144, 151, 175, 176

392 BPIp. 109

409 Byte Shop East p. 155

451 Byte Shop of Miami p. 187 * BYTE Subscription p. 93

374 Canada Systems p. 59

388 CMC Marketing Corp p. 101

398 Compumart Inc p. 123

363 Computal ker p. 36

433 Computer Age p. 185

444 Computer Corner p. 186

452 Computer Creations p. 187

449 Computer Depot p. 187 400 Computer Enterprises p. 127 356 Computerland pp. 12, 13

431 Computer Mart of NH p. 184

442 Computer Playground p. 186 415 Computer Room p. 171

437 Computer Systems Store p. 185 353 Cromemco pp. 1, 2

379 Databyte p. 75 423 Data Search p. 179 396 Digital Group p. 119

410 Digital Micro Systems p. 155

438 Disc 3 p. 185

455 DRCp. 191 351 ECD Cover III

450 Economy Terminals p. 187 386 E & L Instruments p. 97

432 EDP Professionals p. 184 436 Electravalue p. 185

464 Electrolabs p. 206

425 Electronic Control Technology p. 180

440 Electronic Discount Sales p. 185

f V It V [Ibiftinf Mt .lifir- H\

ARTICLE

NUMBER ARTICLE

1

2

3

4

5

6

7

8

9 10 11 12 13

Reader

Service Page Number Number

360 Extensys p. 31

419 Floto, Charles p. 177

456 Godbout p. 193

* Hayden Books p. 135

394 Heath pp. 112, 113

389 Heuristics p. 103

372 Information Terminals p. 51

371 Integral Data Systems p. 49

439 Intelligent Business Machines p. 185

417 International Data Systems p. 172 435 lORp. 185

416 Ithaca Audio p. 171

458 Jade p. 195

352 James Electronics Cover IV

459 James Electronics pp. 196, 197

395 John Fluke Mfg p. 11 7 453 JVR Computer Store p. 1 87

407 Kent-Moore p. 145

460 Meshnap. 199 380 MicroAids p. 80 414 Micronics p. 167

397 Micro Peripherals p. 33

390 Micropolis p. 105

369 Microware Systems Corp p. 47

443 Microtex Inc p. 186

465 Mikosp. 207

408 MiniTerm p. 149

461 Morrow's Micro Stuff p. 201 421 mpip. 178

411 MSI p. 157

412 Mullen Electronic Boards p. 159

413 National Multiplex p. 161

359 North Star Computer pp. 21, 77

384 Objective Design p. 85

365 Ohio Scientific pp. 38, 39, 40, 41

457 Oliver Audio Electronics p. 194 399 Osborne & Associates p. 125 434 Outer Products p. 185

428 PAIA Engineering p. 182

418 Parasitic Engineering pp. 174, 181

* Per Com Data pp. 11, 173

Reader

Service Page Number Number

354 PERCOMP 78 p. 5

387 Peripheral Vision p. 99 420 Perri-White Assoc p. 178

361 Per-Sci p. 69

* Personal Computing Expo pp. 162-165

* PolyMorphic Systems p. 7

355 Processor Tech pp. 8, 9, 10, 52, 53 368 Quantronics p. 45

* Radio Shack of Fort Worth p. 43 406 RHS Marketing p. 139

430 Rotundra Cybernetics p. 184

377 Scelbi Computer Consulting p. 121

* Scientific Research pp. 44, 63

462 S D Sales p. 203

376 Seals Electronics p. 67

381 Smoke Signal Broadcasting p. 81

427 Software Exchange p. 182

375 Software Records p. 61

447 The Software Store p. 187 364 Solid State Music p. 37

463 Solid State Sales p. 205

445 Sunny Computer Store p. 187

350 SWTPCCoverll

429 Sybexp. 183

401 Synchro Sound pp. 128, 129

448 Szerlip Enterprises p. 187 426 Tarbell Electronics p. 181 373 Technical Design Labs p. 57

403 Technical System Consultants p. 133

402 Technico Inc p. 131

388 TElp. 101

362 Texas Instruments pp. 34, 35 358 TLFp. 17

466 Urban Instruments p. 207

393 Vector Electronics p. 111

385 Vector Graphic p. 85

422 Vectron p. 179

424 Worldwide p. 180

405 Ximedia p. 137

370 Xybekp. 47

'Reader service inquiries not solicited. Correspond directly with company.

Jenkins: How to Write an Application Program Borrmann: Relocatability and the Long Branch Duda: Othello, A New Ancient Game Wimble: An APL Interpreter for Microcomputers, Part 3 Chung: An 8080 Simulator Kruglinski: How to Implement Space War Smith: Fundamentals of Sequential File Processing Madden: C: A Language for Microprocessors? Schneider: Simple Approaches to Computer Music Synthesis Higgins: Structured Program Design Holladay: Computer Information Arrangement

Bauerschnub: Analyze Your Car's Gas Economy with Your Computer Milligan: Mastermind

PAGE NUMBER

18 26 60 64 70 86 114 130 140 146 156 166 168

July BOMBworks

The results of the July 1977 BOMB voting found the winner to be James R Boddie's "Speech Recognition for a Personal Computer System," page 64. James' article placed first in the voting by BYTE readers, at a distance of 1.75 standard deviations above the mean vote for 14 articles in the July voting. Second place was a tie between W Douglas Maurer's "How to Pick Up a Dropped Bit," page 72, and Robert Grappel's "Give Your Micro a Megabyte," page 78. Bonus checks of $100, $50 and $50 were sent to authors Boddie, Maurer and Grappel respectively."

208

WE'RE OUT OF OUR MINDS!

OUR MICROMIND COMPUTOR HAS MET WITH SUCH CONSUMER ENTHUSIASM THAT WE'RE BUSY FARING DOWN A SIX MONTH PILE OF ORDERS....

PLEASE BE PATIENT... IT'LL BE WORTH IT!

FOR INFORMATION ON MICROMIND CALL (617)661-4400

CCD

ECD CORP

196 BROADWAY, CAMBRIDGE MASS. 02/39

■ /

INNOVATIONS IN ELECTRONICS

Circle 351 on inquiry card.

ATTENTION DEALERS:

Announcing

One-Stop Component Center

♦Over 200 quality items including integrated circuits, resistors, diodes, transistors, capacitors, connectors, switches, sockets, LEDs and Data Books covering all JIM-PAK® items.

* Immediate delivery on all orders

* Store able

display racks avail

* Stock rotation and return policy

* Direct mail program available from list of active electronic buyers in dealers' area.

* National advertising campaign in leading electronics magazines to include list of qualifying dealers

* Nationally known manufacturers' prod ucts at prices every dealer can afford

* Guaranteed products

* Standard industry part numbers

A component line of proven sellers developed for the independent dealer. Ideal for computer shops, school stores, electronic dealers, hobby shops, or any location where there is a potential market for electronic sales.

A product line which supplies most of your needs from one distributor with a reputation for fast and efficient service. Attractive and compact display racks make initial installation of the JIM-PAK® line easy..

Your customers deserve the best. Now you can profitably retail name brand components at competitive prices. Be the first in your area to announce and sell the JIMPAK® line. Write or call today.

[impak

1 FOR MORE INFORMATION AND PRICING SCHEDULE CONTACT:

, a division of James Electronics, 1021 Howard Avenue, San Carlos, California 94070, (415) 592-8097

Circle 352 on inquiry card.