Sie sind auf Seite 1von 100

WHY SETTLE FOR LESS-

THAN A COMPLETE 6800 SYSTEM

MEMORY- INTERFACE-
All static memory with selected 2102 IC's al- Serial control interface connects to any RS-232, or
lows processor to run at its maximum 20 Ma. TTY control terminal. Connectors pro-
speed at all times. No refresh system is vided for expansion of up to eight interfaces .
needed and no time is lost in me- Unique programmable Interface circuits
mory refresh cycles. Each board \ allow you to match the Interface to al-
holds 4,096 words of this most any possible comb ination of
proven reliable and trouble polarity and control signal ar-
free memory. Cost- rangements . Baud rate selec-
only $125.00 for tion can be made on each
each full 4K individual interface. All
memory. this at a sensible cost
of only $35.00 for
either serial, or
parallel type

"Motorola" M6800 processor


with Mikbug® ROM operating POWER
system. Automatic reset and load-
ing, plus full compatability with SUPPLY-
Motol'Ola evaluation set software . Crystal Heavy duty 10.0 Amp power
controlled oscillator provides the clock signal supply capable of powering a
for the processor and is divided down by the fully expanded system of memory
MC 14411 to provide the val'i ous Baud rate outputs and interface boards. Note 25 Amp
for the interface circuits. Full buffering on all data rectifier bridge and 91,000 mfd computer
and address busses insures "glitch" free opel'ation with gl'ade filter capacitor.
full expansion of memory and intedaces.

Mikbug® is a registered trademark of


DOCUMENTATION- Motorola Inc.
Probably the most extensive and complete set of data available for any
microprocessor system is supplied with our 6800 computel'. This includes
the Motorola programming manual, our own very complete assembly in- Computer System
struct ions, plus a notebook full of infol'mation that we have compiled on
with serial interface and 2,048 words
the system hardware and programming, This includes diagnostic programs,
sample programs and even a Tic Tac Toe listing, of memory . . . . . . . . . . . . . .$395.00

r-------------------------------
o Enclosed is $395 for my SwTPC Computer Kit o Send Data
o orBAC __________________________ # _________________
o or MC _________________________ Ex Date _____________

NAME

ADDRESS

CITY STATE ZIP

Southwest Technical Products Corp., Box 32040, San Antonio, Texas 78284
In I:he Queue ~~11 #7
MARCH 1976

Foregruund MAGNETIC RE CORDING

~\
THE COMPLEAT TAPE CASSETTE INTERFACE . ... .... 10
Systems- Hemenway
BUILD THE BIT BOFFER .. . ... . . .30
Hardware- Lancas ter
DIGITAL DATA ON CASSETTE RECORDERS ... .. .... .40
Hardware-Mauch
ASSEMBLING PROGRAMS BY HAND ... 52
Software-Helmers
POT POSITION DIGITIZING IDEA . .. . .79
Hardware-Schulein

Bac kground

MAGNETIC RECORDING FOR COMPUTERS. . . . 18


Hardware-Manlv
MICROPROCESSOR UPDATE: CP1600 . .. .. . , .... . ... .46
Hardware- Baker
PROCESSING ALGEBRAIC EXPRESSIONS, PART 2 .62
Software - Maurer
WHAT'S IN A VIDEO DISPLAY TERMINAL " .. . .. .. . . . . 78
Svs tems- Walters
p.30

Nucleus

In This BYTE .. . . ... 2


Magnetic Recording T echnology .... . ... . . . . ... . . 6
p.40
Technology Update ......... . . . . . .. . . .29
Letters .. . ... . ..... .68
Clubs, Newsletters . . ... ... . 74
Space Ace, Numbers Answer . . .... . ....... 77
BYTE magazine is published What's New .. . . . . .. .. . .. 71,80,82,84,88
monthly by BYTE Publica- BYTE's Bits . . . . . . . . . . . . • . . . . . . .86, 90
tions, Inc., 70 Main St, Peter-
borough, New Hampshire Classified Ads ". . . . . . . . . . . . . . • . . . . .. . .... . . . .86
03458. Subscription rates are
$12 for one year worldwide. BYTE 's Bugs .... . .. . ....... . ...... .. . . . .... 88
Two years, $22. Three years,
$30. Second class postage ap- Book Reviews .. .. .. . . . ..... ...... ... . . . ..... 92
plication pending at Peterbor- p.52
ough New Hampshire 03458 BOMB .. . . . .... . ....... . . ... . . .. 96
and at additional mailing of-
fices. Phone 603-924-7217. Read er's Service . ................. . .. . .96
Entire contents copyright
1976 BYTE Publications, Inc,
Peterborough NH 03458. Ad-
dress editorial correspondence
to Editor, BYTE, 70 Main St,
Peterborough NH 03458. New BYTE phone: 603-924-7217
One result of the BYTE Audio Cassette Symposium last
November was a provisional standard for audio recording,
essentially identical to that described by Don Lancaster in
issue No. 1 of BYTE last September. In this issue, Don
presents an updated design and describes how to Build The
Bit Boffer. Then, to show that there's more than one way to
spin a tape, Harold Mauch gives some details of a second
system compati ble with the standard in his article Digital
Data on Cassette Recorders.

Jack Hemenway uses Don Lancaster's Bit Boffer desi gn to

In
wire up The COMPLEAT Tape Cassette Interface using an
ACIA attached to his 6800. But completeness requires more
than hardware, so Jack provides software of six subroutines
for the control and transfer of data with this interface.

Creating programs can be done with a variety of tools. The


best way is to use an interactive terminal with "mass storage
available and a good high level language. But, when you move
up country or have other reasons to be away from

This convenient access to monster machines, at first things have to


be done the hard way using a new home brew machine. This
makes the techniques of Assembling Programs by Hand
invaluable for your bag of tricks.

In the previous issue, information on joysticks and slide


pots was presented. In this issu e, John Schulein supplies a
short note on another Pot Position Digitizing Idea.

It is one thing to tell how to do something, but why it


works is often a separate topic. William A Manly provides
answers to a lot of the "whys" of magnetic mass storage in
h is article on the physics of Magnetic Recording for
Computers.

One of the newer microprocessor designs is the General


Instrument CP1600. In his Microprocessor Update, Bob
Bake r summarizes th e technical information about this chip
design.

Last month, Prof W Douglas Maurer described some salient


points about processing algebraic ex pressions. In this issue,
he continues the discussion with Part 2 of Processing
Algebraic Expressions. This includes a simplified explanation
of what it means to generate code as in a compiler.

Peek inside a video display terminal with Don Walters'


quick summary of What's in a Video Display Terminal.

And to round out the theme of magnetic recording


technology, the cover shows a typical Philips style audio
cartridge.

2
Join now
Since 1947, ACM has served as the educational and
----------------
I 1133
Association for Computing Machinery
Avenue of the Americas, New York, N. Y. 10036
I.
scientific society for computing profess ionals-30,OOO
strong and growing.
I I would like to consider joining ACM. I
I Please send more information. I
Write today I ==----------------------- I
~~
~---~- I
For regular and student membership information
send the attached coupon to ACM headquarters. With I ~Po~s~itl~on~
_ _ __ _ _ _ _ ~
____

~Ad~d~re~ss~__________________________~_____ I
Special Interest Groups covering every major computing
I
discipline and local Chapters in most metropolitan areas,
I State I
----------------
City Zip
ACM 'is probably the organization you're looking for. , B
Announcing!! The world's most advanced,
low cost, computer system available today!!
The MICRO·SPHERE 200

SPECIAL FEATURES:

S860
Completely Assembled and Tested (Ready to use; not a kit.)
• 4k RAM (EXPANDABLE TO 8k)
• CASSETTE LOADER
• Sphere Cassette Operating System (SCOS)
supports file handling and Advanced Program
Development, System, an aid for developing your
programs.
• 16 Line by 21 Character Alpha Numeric Character
Generator (128 by 128 B & W Dot Matrix Graphic System
• Monte Carlo Games Package
• Operators Manual
• Attractive Mar-Resistant Plastic Case
The Mi cro-Sph ere 200 Seri es computer is th e mos t The Micro-S phere is suppli ed with a built - in
ADVANCED, low-cost computer SYS TE M avai lab le loading program from cassette, whi ch is in one
today. Toge th er w ith a TV and up to th ree cassette of the several standa rd or optional Read Onl y
record ers you can have bi g computer perfo rma nce a t Me mory (R O M) In tegrated Circuits (IC).
a rock bottom pri ce . ROM Ie' s are pre -programmed with specific non-
eroseab le informa t ion . Thi s featu re greatl y redu ces
The sys tem features a 6800 type micro- compu ter program load in g t ime and inconvenience , ROM's al so
with 4000 chara cte rs (4 K Bytes) of in tern al Random save val uab le RAM storage . RAM' s lose all stored
Access Memory (RAM) Stora ge . The memory is eas il y mema ry whenever th e cam puter power is turn ed aff,
ex pandabl e to 8000 total c haracters with the add ition whi Ie ROMs re tai n all programs ind e finit e ly .
o f on optional second 4 K of RAM, wi th even more The Micro- Sphere is unique in that 16 , 384 differe nt
memory to be made availabl e shortl y. Th e 4 K bytes of dots on yaur TV screen can form an y number of pictures
memory is equi val e nt to 6-8 page s of close t ypewritte n or des igns whi c h you have instructed you r camputer to
mat er ial. display . These images can be c han ged by the computer
Access into the Micro- Sph ere is ac hi eved by the program a t a rate t hat appears as rea l-li fe maveme nt ,
keyboard or from cassette record ers . Th e computer su c h as a ircraft flight simulatian, "walk-through"
can display informati on on a standard TV screen (option - inspecti on of archite ctual mock-ups, tim e -lapse stack
all y su ppl ied ) or stare information on a cassett e record er . marke t gra phic anal ys is, or eve n computer generated
The keyboard uses hi ghl y re li,abl e ke ysw itches to art fa rms, or spa ce fli ght simulat ian where yau can guid e
insure user sati sfa ction . It is full alpha-num eri c your space cra ft to the moan, planets or the universe.
i ncludi ng an integrated numeri c key pad . The cassette You can experi e nce the thrill of roll s, di ves, laops,
interface uses the " Kansas City " standard whi c h means nea r-ca ll is ions and other types of a erial maneuvers ta
that you can use even the least expe nsive cassette out wit the Red Baron in yaur Sapwith Came l and then
recorders with your system sati sfa ctori ly though we the excite me nt of a v ictorious landing a s you crash at
suggest that you do use hi gh qua lity ta pes with your the e nd of the a pproa c hin g runway.
syste m. th e end a f th e approa c hin g runwa y .
You ma y use your own TV wit hout mod ific ati on Th is same 128 row by 128 co lumn dot ma tri x can
as the syste m di spl ay dev ice , or you may purchase on e form an a lpha-numer ic dis play of up to 16 lin es by
from Sphe re. 21 c haracters . An aptianal graphi cs input dev ic e
(Mouse ) di gitizes hand mave ments whe n moved abaut
Th e power requ ire me nt is a sin gle 110 vo lt AC
o utl et. The unit uses less power than a n ord ina ry on a fla t surface. The "Mouse" has a window and
100 watt li ght bulb . All fu ses, jocks , sw itc hes, a nd cross hai rs, sa it may be used for th e ac curate entry
inte rface signals are prov ided on on easy -access of maps or other graph i c da ta.
pa ne l at the rea r of th e ca bi net. The mouse may a lso be used in the pla ce of a joy st ick
fo r fli ght sim ulati on or ta enter ha nd movemen t s fa r
pin g- pong or a th er games of skill .
,
i
No. Descri pti on Price/ Each Total

200 MICRO-SPHERE 200 - SYSTEM PRICE INCLUDES "A" ITEMS BE LOW $ 860.00 $ 860.00

6800 type Micro-Processor unit

I
4K of Memory (RAM)
Cossette Loading System (ROM)
Sphere Cossette Operating System (SCOS) Cossette 1 time license fee@ $137.50 -
Includes Floating Point and Trig Package Cossette copy @ 12.50 $150.00 Incl.
"A" ITEMS Monte Carlo Gomes Package (Cossette) $10.00 Incl.
First Cossette Interface

L 128 by 128 B&W Dot Matrix Graphics Display


Alpha-Numeric Keyboard
Attractive Mar-Resistant Plastic Case
Operators Manual

OPTIONS AVAILABLE THROUGH FACTORY INSTALLATION.


* To install options after purchase is $35.00 per shipment to our plant.
"B" IT~ Second 4K of memor.y (RAM) $180.00 $180.00
"-- Character Generator (ROM) $25.00 $25.00

I Second Cossette Interface


Extended Business Basi c (ROM)
$50.00
$400.00
$50.00
$400.00
"C" ITEMS Includes Business Basi c Manual
Floating point & Trig package (ROM) $130.00 $130.00

L Third Cossette Interface $50.00 $50.00

OPTIONS FOR PURCHASE NOT NEEDING FACTORY INSTALLATION.


Extended Business Basic on Cossette (Requires 2nd 4K of RAM OIid $100 .00 $100.00
Character Generator in ROM.) Includes Business Basic Manual;
Floating Point & Trig Package
9" TV for use with Micro-Sphere 20::J $150.00 $150.00
"Mouse" Graphics Input Device (Available in May 1976) 2 eo. $150.00 $150.00
Operators Manual (SCOS) $10.00 $10.00
Business Basic Manual $10.00 $10.00
Maintenance Manual $40.00 $40.00
Empty Cossette Topes 3 for $10.00 $10.00

20::JA INCLUDES MICRO- SPHERE 200 PLUS ALL OF "A" ITEMS ABOVE
REGULAR $860.00 - $860.00 $860 . 00

20::JB INCLUDES MICRO-SPHERE 200 PLUS ALL OF "A" & "B" ITEMS ABOVE
REGULAR $1215.00 $1215 . 00 $1215.00

20::JC INCLUDES MICRO-SPHERE 200, PLUS ALL OF "A" & "B" & "C" ITEMS ABOVE
REGULAR $1645.00 - $1645 . 00 $1645.00
EVERYTHING IS IN ROM!!
ALL UNITS ARE COMPLETELY ASSEMBLED AND READY TO USE!!

SPECIAL INTROJUCTORY OR DE R FORM


Item Descri pti on Quantity Price/ Each Total

1 1
I

2
I
3
._-- ._------_..._ ---------_. -... - -.".. __
. . ... .. _ ------- - ----_.,-- ---.....-------- .. _- - _. - -.. -
4 i
i
A. Item Purchase Toto I i
NAME -
please pnnt clearl y B. Utah Residents add 4.75% tax I
STREET C. Postage, handling, shipping II
and insuranc~ ggg 2% of A
STATE D. Fu II Warranty = 10% of A.
,
:
CITY: E. Order Total
STATE ZIP I
PHONE NO.
F. Down Payment = 25% of E. I
I

G. COD Balance
BANK CARD NO. I
SPHERE generally oHers 60·90 day delivery on its pro-
ducts, however, parts availability may delay delivery beyond
that time,
SIGNATURE -------------------
Orders may be cancelled after 120 days without penalty,
Spheres only obligation is to deliver the product. Introductory
SPHERE CORP. 791 South 500 West, Bountiful, Utah 84010 Tel. (801) 292-8466 offer valid in U,S,A, only,
Magnetic Recording
Il~TI Technology
staff Editorial by Carl Helmers

PUBLISHERS No computer system is complete without intention or accident? Data in the se mi co n-


Virginia Peschke mass storage of some form. Mass storage is a ducto r memori es used in most kits typically
Manfred Pesch ke nice subject to talk abo ut, but just what is it will not survive the loss of power.
EDITOR and how can it be impl emented 7 Wh at are How do you save programs agai nst the
Carl T Helmers, Jr the factors which affect the ability of your possibility of powe r failure or in ord er to
GENERAL MANAGER
computer to dump and recover data in all ow use of different software from time to
Manfred Pesch ke
PRODUCTION MANAGER
machine readable form? What are the tech- time? Th e techno logy of off line mass
Judith Havey nologies ava ilable at prices low enough to be storage was created to answer this questio n.
PRODUCTION ASSISTANT affordable by many individuals? How is a Use of off Iin e storage is a requ irement of
Elizabeth Alpaugh tape interface controlled 7 virtuall y any programm abl e computer sys-
CIRCULATION Much of this issu e of BYTE is devote d to tem. You see it in the smallest HP-65 and
Deborah R Luhrs articles on the problem of mass storage and SR-52 hand calculators, and in the largest of
PUBLISHERS ASSISTANTS practical but inex pensive syste ms. In particu- large sca le systems presently in ex istence.
Cheryl Hurd lar the theme is using Philips style audio One definition of mass storage is si mply,
Deena Zealy
ADVERTISING
recording cassettes as an inexpensive but a method of sto ring larger amounts of data
Virginia Pesch ke readily ava il able magnetic recording tech- (in total) than co uld fit in to the main
TYPOGRAPHY nology. Whil e no claim ca n be made for memory of a given processor at one time. On
Custom Marketing Resources, Inc . complete coverage of every topic in the area large sca le systems, this is usu all y done using
Goodway Graphics of magnetic reco rding for small scale com- disk drives and drum memor ies as well as
PHOTOGRAPHY puting systems, readers should find a high other high speed high capacity random
Ed Crabtree concentration of personall y useful inform a- access 10 devi ces. The typ ical medium
Custom Marketing Resources, Inc . tion in this issu e: two articl e". on specific priced minicomputer syste m uses a hard
DRAFTING hardware means of impl ementing the BYTE surface magnetic di sk drive as its mass
Bill Morello
Audio Cassette Symposium's provisional storage dev ice; a removabl e cartr id ge for at
PRINTING
standard, one articl e on software interfaces least one spindle all ows off line copies of
Custom Marketing Resources , Inc .
The George Banta Company
for control of a typical interface, and an data to be retained. The low priced mini-
ASSOCIATES article on the physics of magnet ic recording computers and high priced microcomputer
Hal Chamberlin technology. Then there are of course severa l systems typically use floppy di sk technology
Dan Fylstra short subjects on the same theme. at the present time. And of course the
Don Lancaster programma bl e calculators use mlillature
Chris Ryland Mass Storage - What Is It? magnetic card 10 devices to store many
Wh en you purchase a machine with (for more progra ms than could possibly fit in the
example) 4096 bytes of memory, yo u have calculator at one time.
the ability to sto re a tota l data co ntent of So what does th is leave open to the low
4096 bytes, no more. The particul ar number priced computer amateur's general purpose
of bytes in yo ur system is arbitrary - the system? The answer of cou rse is the use of
fact that yo ur ran dom access mem ory is audio tape tec hno logy as described by
limited is always present. If this were all the several of the arti cles in this issue. It is used
memory you had, the systems and pro- to accomplish th e mass sto rage function of
gramming you could acco mplish would the larger systems in an engin eer ing tradeoff
sooner or later be limited. At any given of access time agai nst total cost. The resu lt is
point in time you might want to run a low speed but inexpensive off line storage
programs req uiring less t han the 4096 byte method.
limit; but it is quite likely that you'll want
to have more than one such program as you What Do You Use Mass Storage For?
build up your softwa re repertoire. Th e basic reason fo r off lin e mass storage
Similarly, if all yo u have is main memory, was o utlin ed in th e previous sect ion: making
what happens when th e power goes off by up for the limitatio ns of a finite main

6
THE SOLDERING IRON
VS. ®
THE PROTO-BOARD.
(IT'S NO CONTEST.)

The Soldering Iron The Proto-Board


If you're still designing and testing breadboard With the CSC Proto-Board breadboarding
circuits the conventional way, you're doing a system, connecting components is as simple
lot of extra work, and getting a lot of grief in as pushing a lead into a hole . Rugged 5-point
return. You 've got to think as much about contacts insure low-resistance connections ,
manual labor as you do about the circuit. Maybe and where jumpers are needed, components
even more. are interconnected with standard #22 AWG
Every time you add a component, there are 2 solid wire .
or more connections to make ... over a dozen That's all there is to it.
with most IC's, while watching out for overheat- You can choose Proto-Boards with anywhere
ing components and cold solder joints. And from 630 to 3060 solderless tie-points.
that's only half the problem. Proto-Boards with or without regulated pOlM3r
The other half is when you want to change supplies . Even assemble your own, with the
components or connections. Even with good same solderless aT sockets and Bus Strips,*

=5=
desoldering equipment, you can still have a for smaller (or larger) capacity. However you
hassle on your hands. (Ever try to desolder a do it, you'll save time .. . money ... aggravation
temperature-sensitive 14-pin 01 P on a com- ... on every circuit.
ponent-filled board?) CONTINENTAL SPECIALTIES CORPORATION For more information , see your
Solder. Oesolder. Resolder. CSCdealerordistributor ... or
Oesolder: Now there 's a better contact us for our catalog and
way .. . distributor list.
Continental Specialties CorP .. 44 Kendall Street. Box 1942. New Haven . CT. 06509.203-624-3103 TWX: 710-465:1227
West Coast Office : Box 7809. San Francisco. CA . 94119.415-421-8872 TWX : 910-372-7992
Canada : Len Finkler Ltd .. 25 Taro Rd .. Downsview. Ontario. 416-630-9103
\C 1975 Con tin en tal Specialties Corp . ·U .s . Pat . No. D 235.554

7
memory in any particular computer's tioned is a relocatable binary format. In this
implementation. The uses of the mass format, the actual image of the program in
storage are basically similar to the uses of machine code is copied as in the simpier
memory within the computer: mass storage method . However, the process of creating
contains program and data information. The the mass storage tape also creates various
problems of using and coordinating the use dictionaries of information about the pro-
of the mass storage facility are independent gram which allow a relocating loader to
of the information content of particular move the position of the program in address
files. (A "file" is understood to mean a space. (The simpler memory image method
collection of related data found in the mass assumes that the program will always be
storage medium .) reloaded at exactly the same place from
which it was copied.) This relocatable for-
Program Storage mat is common as the output of compilers
Program storage off line is a most useful and assemblers, but it typically requires
application of the mass storage facility. painstaking detail work to create a relo-
Programs can be stored in many ways, catable program by hand.
including memory images, relocatable pro- When your system has been expanded to
grams and source programs. In this utili za- the point where an interpretive language
tion the programs and subroutines become (i.e., BASIC), a self compiler or a self
part of a software library maintained in mass assembler can be run, then program storage
storage until you need the m. can also be done in the form of ASCII
A memory image is one of the simplest character representations prepared using a
forms of program storage. In an inexpensive text editor. This is called a "source" pro-
computer system, the procedure for develop- gram representation and is directly readable
ing software will start out with some form of by humans who know the particular com-
system monitor and debugging program puter language involved. (The binary or
which is resident in memory. This is used to machine language form of a program which
load and test a hand assembled or machine is its memory image is not so easily read by
assembled application program. Finally, humans.) With such ASCII text representa-
when the program has been debugged satis- tions of programs, some form of language
factorily, a "snapshot" of main memory can processing program must be used to convert
be taken using the audio tape. The routine the data into machine language before the
which performs this function simply copies program is executed . In practice, such source
each byte of memory onto the tape in a program representations are typically used
fixed sequence starting at a particular for programming and debugging, with the
address. Th is process freezes a magnetic machine language images reserved for use
picture of the memory on the cassette tape, after the program seems to be working
a picture which can be later recovered by a acceptably. With source program files as
suitable loader program. In the simplest with memory image and relocatable pro-
versions of such a facility, a binary image is grams, naming is often convenient so that
recorded on tape; and manual positioning, automatic methods can be used to search the
possibly aided by a tape position counter, is tape(s) for the proper file when editing or
used to locate separate places on a cassette. compiling the program.
In more complex versions of the software,
facilities can be implemented to specify Data Storage
names for the images written on the tape, so Using off line storage for data is a
that the loader can search the tape auto- generalization of its use to store programs.
matically for a selected program when it The codes used to represent programs are
comes time to use the results of your efforts. functionally identical to arbitrary data when
A second program storage format men- 10 interfaces are considered . The formats
used to store data are similar to the formats
used for programs inmost cases: Data files
which are intended to be printed or dis-
Editorial Contributions played at some point in time contain ASCII
text; data files which have other uses in your
BYTE is looking for articles on contemporary personal computing system contain arbitrarily encoded bit pat-
hardware and software technology. Authors should send drafts, along terns which depend upon the application of
with a self-addressed stamped envelope, to Editor, BYTE Magazine, 70 the data.
Main St, Peterborough NH 03458. It is highly recommended that name The source files of programs mentioned
and address information be rec'orded redundantly, and that the author's previously are simply character text data
name be noted on all copy.

Continued on page 95

8
HERE'S THE FIRST BOOK
OF COMPUTER GAMES
FOR THE
"/"8080"

(I
"SCELBI'S FIRST BOOK
OF COMPUTER GAMES
FOR THE '8008'/'8080'"
Can you beat your computer at its own game? Now
you can find out. Here, in one action-packed volume,
is the first machine language computer manual that
programs special games for you and your computer to
play. Includes total programs, flow charts, illustrations
and fun extras to put your computer to challenging
competitive use. Order yours today! Only $14.95 ppd .

1(llml (01'1I>If1 1 II
(0~llJl.I~6 I~(. Pricing. s pec ificati ons. avai l abil i ty subj ect to c h ange w it hout
not ice . Prices for U.S. and Ca nad ian del ive ry at book m ail ing
1322 Rear Boston Post Road ra t e. Add $2.50 fo r eac h publi ca ti on if Priorit y Air Se rvice
(U .S.) d es ired. Overseas i nc l ude $5. 00 fo r eac h publicat ion fo r
Milford , CT 06460 203/874-1573 Airm ai l Se rvice.
The COMPLEAT
Tape Cassette Interface

Jack Hemenway Mass storage is one of the most important What Is an ACIA?
151 Tremont St, 8P functions in the sma ll co mputer system
Boston MA 02111 design . Mass storage can typically be used as The Motorol a MC6850 asy nchronous
the medium of a text editor, as the input communications interface adapter is a
and output of a full fledged language trans- specialized version of the familiar universal
lator pr ogram, and as a means of sav ing asynchronous receiver transmitter (UART).
working a nd debugged software you've The ACIA is designed specifically to inter-
created. One of the least ex pensive ways to face the Motorol a 6800 central processor;
accomplish mass storage is the audio cassette however, its use is by no means limited to
storage method. the 6800. An ACIA can be used con-
Wh at is involved in the use of audio veniently in any computer system with data
cassettes for mass storage 7 Here's an answer pa ths 8 bi ts or more in width.
which works quite well in my Motorola The ACIA differs from the conventiona l
6800 m icr oco mpu ter system. The UART in the way it is controlled. All
COMPLEAT Tape Cassette Interface co nsists control, status and data transfers are made
of tap e input a nd output software, the over a single 8 bi t bi-directional bus. The
Lancaster speed ind epen dent audio in terface integrate d circuit contains a control register
(see BYTE, September 1975), a Motorola which may be set by the microprocessor; it
The software of a tape asynchronous communications interface is a location in memory address space. The
cassette interface provides adapter (ACIA), a transmit clock, and the AC IA contains a status register which may
open, data transfer and circuitry needed to sta rt and stop the tape be tested by looking at the same location.
close operations for both recorder's motor und er program control. Th e AC IA also contains transmitter an d
input and output. The hardware of the in te rface is shown in receiver data registers which are treated as a
block di agram form in f igure 1. Th e softwa re memory location via the bus structure and
consists of an open, data transfer and close se lect ion logic. In contrast to the UART
subroutine for each direction of transfer, with its separate input and output data
input and output. The hardware and soft- buses, hardwired option selections and 40
ware described in this article can be used as pin package, the ACIA design fits into a 24
the steppin g sto ne to a more complete pin package with severa l pins left over ·for
cassette tape inform ation management use as address selection and modem control
system, or it can be used alone whenever a functions.
progra m req ui res cassette input or out put Th e AC IA options are normally selected
functi ons. by storing a bit string into the control

10
register when the computer system is first DATA TO
initi alized (at power on time) or later wh en TO BE TRANSMITTED "AUX" INPUT
RECEIVE CLOCK OF CASSETTE
th e rese t operation is performed manuall y. ACIA LAN CAS - RECORDER
INTERFACE RECEIVE DATA TER
However, since the AC IA has th e control WITH THE TRANSMIT CLOCK INTER ·
MICROPROCESSOR FROM
I·eg ister, these options can be cha nged at any FACE
" EAR" OUTPUT
RTS
t im e by a program which runs the interface. OF CASSETTE
RECORDER
Thi s capab ility is used to advantage in the CTS DCD
COMPLEAT Tape Cassette Interface: Th e
tape cassette motion is controlled through
th e RTS lin e of th e AC IA (pin 5, IC1) by
setting an appropri ate two bit code into the
transm itter contro l bits of th e control
I·eg ister (bits 5 and 6); whenever th e tape
motion is changed (on to oFf, or off to on), TO
th ese bits of th e contro l register are "R EMOTE " INPUT
OF CASSETTE
redefined. RECORDER
Th e AC IA is interface d to the system
TAPE CASSETTE
data bus eith er di rec tl y, o r by mea ns of an
appropriate 8 bit bus buffe r. Th e interface is
contro ll ed by mea ns of the read write lin e
(RW) and addres s se lec ti on logic. In the
hardware 01' th is articl e, a fu II address
decode is avo id ed by wiring the ch ip se lect
lines to appr opria te system address bits and
using the low order address bit as th e register
se lect line (RS, IC1 pin 11). The AC IA has
four registers, but on ly two mem ory addre ss Figure 7: Block diagram of the COMPLEA T Tape Cassette Interface. This
space locations are requ ired. Th e apparent illustrates the major elemen ts of the interface; see Don Lancaster's BIT
inc onsistency is reso lved by th e read write BOFFE R article in this issue for details of the hardware of the cassette
Iin e of the system in terface. Two of th e modem.
inter na l registers are read only registers
(rece iver data a nd status reg isters), and two
of the intef"llal registers are write on ly with one start bit, o ne stop bit, odd parity
registers (transm itter data and contro l and a di vis ion ra tio of 16 for th e clocks used
registers) . Table 1 shows the system with the AC IA.
addresses and register access used by th e On th e periphera l sid e of th e AC IA th ere
interface of figure 2. (N ote that any pa ir of are three lines whi ch a re used to contro l and
neighb orin g loca ti o ns in memory address test th e tape reco rd er interface. An output
space ca n be used conve ni ently with lin e ca ll ed req uest to send (RTS, pin 5 of An ACIA is Motorola 's
appropriate decoding.) le i) is used for tape motion contro l. An version of a UART.
Th e enabl e lin e (E, pin "14 o f le i) is used input lin e ca ll ed clea r to send (CTS, pin 24
to sy nchl"Oni ze th e AC IA sta tu s and contro l of le i ) is used for a tape output delay timer,
changes to th e processor, and to condition and an input line ca ll ed data carrier detect
th e ACIA' s intern a l interrupt c ircuitry . Th e (DCD, pin 23 of le i) is used for a tape input
interrupt I·eq ues t lin e (IRQ, pin 7 of le i) is delay timer. Serial data generated by the
used in systems wh ich empl oy interrupts to AC IA is sent to th e Lancaster tape interface
coo rdinate 10 opera ti o ns. If used, it signals modem over the transmit data line
the microprocesso r whenever the AC IA is (TXDATA, pin 6 01' IC1), and ser ial data
I·equesting a n interrupt. In the simpl e inter· received from th e Lancas ter tape in terface
face prese n ted here, in ten·up ts are igno l·ed
and th e softwa re is coor din ate d usin g th e
status register flags of th e AC IA. Table 7: Ac/A ae/dresses. This table shows how the four A CIA registers are
For- a fu ll desc ripti o n of th e AC IA con- referenced, using two memolY loca tions. Th e secret is that two of the
tro l and sta tu s registe rs, th e spec ificat ions of registers are input only, and two or the registers are outpUI only. Thus at each
th e Motoro la MC6850 AC IA in tegrated cir- address, the regisler reFerenced in the Ac/A depends upon whether the CPU
cuit should be co nsulted. See a lso pages 3·22 is reading data from thai address or writing data to that address.
to 3-25 of the Motoro la M6800 Micro-
processor Applications Manual. Th e so ftware Address Operat ion Symbol ACIA Register Typical Code
show n in thi s arti cle makes use 01' the status
8010 read ACIACTRL statu s LOA A ACIACTRL
register bits for tim ing and error detect ion, 8010 write ACIACTRL contro l STAA ACIACTRL
and se ts up th e ca n tro I register for a 8 011 read AC IAOATA receiver da ta LOAA ACIAOATA
sta ndard 8 bit asy nchron ous data Format 8011 write ACIAOATA transmitter data STAA ACIAOATA

11
modem is prese nted to the receive data line that with appropr iate clock frequencies, any
(RXDATA, pin 2 of IC1). During trans- modem circuit cou ld be used which accepts
mission, the data rate is set by the trans- the asynchronous data format and clock
mitter clock, generated by IC 3 an d IC4, and information. (See Don Lancaster's article
during input operations the recei ver clock "Build the BIT BOFFER" in this issue, and
(RXCLK, pin 3 of IC1) is recovered from "BYTE's Audio Cassette Standards Sympo-
the tape data by the Lancaster interface, sium," page 72 in the February 1976
locking the ACIA to the actual tape speed. BYTE.) The modem interface ,consists of
four signa ls:
Hardware Software Interfaces
TXDAT A: This signa l is the output data
The ACIA is contro ll ed by the micro- generated by the AC IA at a baud rate
processor software wh ich views it as the two equa l to the TXCLK frequency divided
adjacent memory locations shown in tab le 1. by the AC IA divide ratio. In this article,
The interfaces between hardware and soft- division by 16 is used, as set in software
In this interface, software ware can be contro ll ed by one of two by the control codes to the ACIA. This
is synchronized to hard- different methods . Th E! interrupt meth od of line is shown wired directly from the
ware, using the technique 10 synchroniza tion relies upon the AC IA to AC IA, so it can drive the eq u iva lent of
of testing status bits in generate an interrupt in the processor one TTL load.
through th e IRQ Iin e of the sys tem. Because
wait loops. TXCLK: This signa l is the output data
the central processor is interrupted (and its
state is saved) on ly when 10 service is clock, which is fed to the ACI A and to
required, th e processor can be busy wi th the tape interface. The Lancaster inter-
some other task whil e waiting for th e slow face modem uses th is signa l to synchro-
10 device to comp lete its operation. nously generate the two data frequencies
In contrast, the program med transfer which are recorded on the tape according
method emp loys a wait loop in a program to to TXDATA.
monitor ACIA status registel· bits which
indicate the progress of th e data transfer RXCLK: This signal is the input data
operations. When the status bits indicate clock, wh ich is recovered from data by
that th e AC IA is ready fOl" a transfer to or the tape interface. Since this signal is
from the data locati on, the interface pro- derived from the tape input data, it is
gram can then proceed to ca rry out the locked to any variations in tape speed.
transfer. The programmed transfer method is Thus the AC IA 's input circuitry will not
employed in the software of the make errors due to differences betwee n
COMPLEAT Tape Cassette In terface illu s- the transmitter clock frequency and the
A flip flop toggled by a trated here, primaril y because of its variations in tape speed which are called
simplicity. "wow and flutter" in audio tape recorder
clock produces an ou tput
Reading is accomp lished by testing the spec ifica tions.
clock which is a perfect
square wave at one half status register repea tedly until the rece iver RXDATA: This signa l is the input seria l
the input frequency. da ta ready fl ag (bit 0 of the status reg ister) is data recovered from the Lancaster audio
high, indicati ng the presence of data. Wh en interface modem . Since RXDATA is
the data is available, the program loads the locked to RXCLK, speed variations of
AC IA data location into an accumulator, an data rel at ive to clock cannot occ ur.
operation which resets the status flag; for
input the status register is also tested for th e Transmit Clock
three kinds of errOl" conditions, and a con-
The transmit clock is provided by a 555
dition code is return ed from the input
osc ill ator (IC3) follow ed by a f lip flop
routine in the other accumul ato r. Similarly,
(7473, IC4) which divides th e oscillator
writing is accomp lished by testing the status
frequency by 2. The 555 is wired with
register repeatedly until the transmitter
components selected for a frequency of
buffer empty flag (bit 1 of the status
96 00 Hz. When the in terface is constructed,
register) is high, indi cating an empty buffer
the potentiometer R 1 shou Id be adjusted so
which can receive th e output character. The
that the frequency is 9600 Hz, using a
output program then stores a character into frequency counter or an oscilloscope to
the AC IA da ta location causing the ACIA to make the measurement. For those using
begin an output operation and rese tting the oscilloscopes, 9600 Hz is a peri od of 104.2
flag sta tus bit. !l S, or a 5.21 cm trace on a scope set for a 20
!ls/cm horizontal time base.
Software timing loops and Hardware for COMPLEAT ness The division by 2 wh ich fo ll ows the
hardware oneshots can The cir cuit of th e interface is shown in oscillator is provided by a) K f li p flop set up
accomplish the same goal: figure 2, including all details except the to toggle. This means that both the) and the
delaying execution. Lancaster tape cassette modem circuit. Note K inputs are connected to logical one (IC4

12
TO I FROM
LANCASTER SPEED INDEPENDENT 1- RECEIVE DATA FROM INTERFACE
CASSETTE INTERFACE 2-RECEIVE CLOCK FROM INTERFACE
3-TRANSMIT CLOCK TO INTERFACE
2 3 4
4 - TRANSMIT DATA TO INTERFACE

CPU PERIPHERAL +12


SIDE ICI SIDE
MC6850 RLYI

' - 24 CTS Lr VSS I~ N.O. RELAY


1200n lOrnA 12VDC
' - - 2 3 - DCDLr RXDATA 2-----' RADIO SHACK 275-003
5
0 0 - - 2 2 - DO RXCLK 3-----~ TO TAPE CAS-
SETTE REMOTE
0 1 - - 2 1 - 01 TXCLK 4 - - - - -......--'
RT S CONTROL
02--20 P2 I f RTS I- 5 ------t---, +5
DATA 0 3 - - 1 9 - 03 T X DATA 6 ------t--+-
8US
04--18 04 -V- IRQ 1-7 - - - - - - ,
0 5 - - 1 7 - 05 JL CSO 1-8 -----H-,
06--16 06 -U- CS 2 1-9 - - - - - ,
0 7 - - 1 5 - 07 JLCSI 1 - 1 0 - - - - , IC50 IC5b

</>2--14 E RSrll=:;!
R / W--13- R / W VDDt-12~
ADDRESS
AND
CO NTROL
AO==~===~~
A5
8US AI3-=================~~==;=========~
IRQ -
VMA---'-r
6
2
AI5----i -, RTS
IC20 IC2 b +5
+5
L -...._.:..141 3
R5
39K
II
"1...J"lJ"l...J
C3
TRAN S MIT CLOCK
16 * F 4800 Hz 50I"F
FOR 300 BAUD

R2
IK

Figure 2: Motorola 6800 ACtA and control circuitry for the COMPLEA T Tape Cassette Interface.

pins 14 and 3). The purpose of the division 5.0 second s foll o wing tape mo tor turn o n.
stage is to produce a perfec t squ are wave Th e lo ng de lay is used pri o r to output
clock signal, which is a requirement for th e operati o ns so that a long leader at th e mark
Lancaster cassette interface. frequ ency will be recorded. Th e short de lay
Tape Motion Control is used dUI'in g re ad opera ti o ns so th at
reading will sta rt 2.5 seco nd s prior to the
Th e request to send line (RTS) is used to first ac tu al data byte. Sin ce th e asynchro-
control the tap e record er' s motor, as men- nous da ta form at is used, th e solid mark
tioned earlier. Whenever the ACIA is set up tone fo r about 2.5 second s will no t cause
with a control register code for a low value any da ta to be input; it provides to lerance
of RTS, the signal presented to th e 7407 for manu al tape positi o nin g to se lected
(IC8) section used as a relay driver is lo w blocks using a tape posi tion cou nter wh ich is
(after two inv ersions in IC5). This signal is built into many casse tte rec ord ers.
buffered by the driver, producing a low sta te The sys tem as de signed a nd illu strated in
at its output (IC8, pin 6) which places '12 thi s art icl e uses hardwal"e to generate the
volts across th e rel ay coil, closing th e con- tim e de la ys of 2. 5 and 5.0 seconds a fter
tacts and turning on the motO!". When RTS is motor start. I t should be noted, however, Always program with com-
set high, using a different ACIA contro l that th e tim ers IC6 and IC7 could be mentary - if you want to
code, the input to IC8 is high , so the relay omitted and repl aced by so ftware. To ma ke communicate what you
coil has zero vo lts acro ss it and th e re lay such a change, th e input and output initi ali- mean to yourself (five
contacts are open. Note thJt diode D1 is za tion routin es would have to be altered to
placed across the rel ay coil to guard against years from now) or to
use softwa re timing loo ps to crea te the your neighbor.
inductive back EMF which can blowout required de lay. Exa mpl es of such timing
integrated circuit drivers such as IC8. loops hav e app ea red in pl'evi ous issu es of
BYTE (see " Acid A Klu ge Hal"p to Yo ur
Tape Motor Start Delays Co mputer, " Octo ber 1975, page '14, and
Two oneshots are provided in this design "Can Your Computer Tell Time? ", Decem-
in order to give hardware dela ys of 2.5 and ber 1975, page 82). Thi s is an exampl e of a

13
hardw are software tradeoff: If you find it is to decide to send the block length as an
easier to program tim ing loops and you 8 (or 16) bit number which is always
don't mind having an id Ie compu ter wasting recorded as the first byte (or first two
time in such loops, then omit th e hardware bytes) of the block. These are by no
timers and use software; if you pl an to use means the on Iy software data formats
interrupts, with the central processol" turning possible.
to other tasks while waiting for 10 opera- Closing a file. When the software which
tions, then the hardware timers wou ld be requires an 10 interface completes
preferab Ie. sending all the data required for one
block on the tape, the last step of the 10
Software COMPLEAT ness operat ion is to close the fi le. In this
simple cassette interface, the file closing
No tape cassette interface is co mpl ete operation consists of turning off the
without software to I"un it. The softwa re of motor. (In the case of output, the last
the COMPLEAT Tape Cassette Interface character transmissi on must be completed
The larger a block of data gives facilities to perform several operati ons" so the close routine also includes a wait
on a cassette, the less tape In order to understand the use of the loop.) In the more general case of an
is wasted in "inter record software provided, the three operations o f information management system, closing
gaps" as the motor starts opening, transferring data and closin g a fi le a file might include other operations such
and stops. At 300 baud, a shou ld be defin ed: as recm ding check sums fo r error detec-
40% byte block can be Opening a file. The first operation in a tion . The output file closing routine is
recorded in 150 seconds, data transfer to a device such as the TIOSTP, and the inpu t file closing
so the 5 to 10 seconds of COM PLEA T Tape Cassette Interface is routine is T1ISTP.
inter record gap waste less opening the file. Thi s operat ion is mini -
mal for the simpl e system discussed here: The Listings
than 7% of the available
The tap e moti on is started and a wait Listing 1 sta rts a detailed presentation of
tape on a cassette. loop is entered unti l th e motor start de lay the software in the absolute machine lan-
is complete. For output, the subl"o utin e guage and the sy mbolic asse mbly language of
IIOTZ performs this operation. For the Motmola 6800 microprocessor. (While
input, the subroutine T11NZ performs the in terface is shown oriented toward my
this operation. In a more sop hi st ica ted 6800 syste m, the li sti ngs are given with
software system, ope ning a fi le ca n have a ample commentary to docum ent function
much more genera l meaning and effect. and faci litate conversion to other micro-
For th e COMPLEAT Tape Cassette In ter- processors.) Listing 1 contains three state-
face, th e tape recorder mu st be se t up ments which set up information used by the
manually for playback (read ope l"a tion) assemblel". Lines "I and 2 use th e EQU
or rec ord (write operation) and the tape pseudo operation to set the addresses of the
should be positioned at the beginning or label s AC IACTRL and ACIADAT A which
a t a loca t ion spec ified by th e loca tion are used to reference the two memory
counter of the recorder prior to opening address space locations associated with the
the file. COMPLEAT Tape Cassette Interface hard-
Data Transfer. Once the file is ope ned, ware. Line 3 is an ORG statement which is
the motor is on; and data transfer can used to set the location counter of the
occur for as lo ng as softwa re des ires. A asse mbler to hexa decimal 1000 which will
data transfer operat ion is the input m become the starting point of the first
outpu t of one character from the com- routine. While th e listings of the COM-
puter. Th e softwMe of th e intNface PLEAT Tap e Interface routines in this
provides an in put routin e ca ll ed T I GET article show a he xa decimal starting address
which reads th e next character into of 1000, the subroutines can in fact be
accu mul atol" A with an elTor co nditi o n relocated to any starting address without
code in accumu lator B. The software of changing th e absolute machin e code. If you
the in terface prov ide s an ou tpu t rou tine do choose to relocate the code, however,
ca ll ed II PUT which takes a character you should figure out the relocated
from accumu la tor A an d stores it in the ad dresses of the subroutine entry points so
ACIA for conversion and output to the that th ey can be referenced by software
cassette modem. Note that the pwgram which uses these routines.
which call s th e da ta transfer wut ines Listin g 2 describe s the output initializa-
must keep track of how many bytes to tion rou tine T1 OTZ which is used to prepare
transfer. One convenient way to do this is ror an ou tpu t operation" When T10TZ is
to arbitrari ly decide to always outp ut a given co ntrol , an assumption is mad e tha t
fixe d number of bytes, such as 256. the cassette recorder has been manually
Another way to keep track of bl oc k size prepared for reco rding but with motor

14
power removed. The AC IA is f ir st reset using Listing 7: Global symbol equates and origin of the COMPLEA T Tape Cassette
the control register code of hexade.cima l 5F Interface software. This listing sets up the symbolic addresses A CIA DA TA
(lines 6 and 7). Then the AC IA contro l code and A ClACTRL, and sets the location counter to start at hexadecimal 7000.
for normal operation, hexadecimal 1 D, is set Note that a common statement number sequence is used for all the tape
up by execution of lines 8 and 9. This turns cassette interface software in listings 7 through 8, and that symbols with up
on the tape recorder motor and triggers the to 8 characters (Motoro la allows 6) are used in these listings.
oneshots of IC6 and IC7 in the interface.
1 0000 80 10 AC I AC TRL EOU $8010 set up address o f AC I A contro l
The ou tpu t of oneshot IC6 is mon itored as 2 0000 80 11 AC I AOATA EOU $8011 and then ACI A data;
bit 4 of the control register (the CTS line 3 1000 10 00 ORG S1000 star! program a t 1000 hexadeC imal ;

into pin 24 of IC1). The initia lization


ro utine fa ll s into a loop at lines 10 to 12
Listing 2: Output initialization routine TJOTZ. Th is subroutine is called after
unti l this time de lay signa l ends and bit 4 of the tape recorder has been readied manually for a write operation. TJ 0 TZ
the contro l register becomes zero. T10TZ resets the A CIA and turns on the tape recorder moto/~ then waits for the end
has no parameters and uses the stack to of the output initialization delay. The de lay is ended when CTS is found to
preserve the contents of accumu lato r B, so be zero five seconds after the motor turned 017.
that upon retu rn none of the interna l
registers of the processor have been altered. 4 1000 10 00 TlOTZ EOU · ttli s routine Initiali zes and s tarts output;
5 1000 37 PSHB push 8 InlO stack to save It;
Listing 3 describes the output data trans- 6 1001 C6 5F LOAB ~$5 F AC I ACTR L : = control code for
fer rout ine T1 PUT. The purpose of this 7 1003 F7 80 10 STAB ACIACTRL master reset. R T S high;
8 1006 C6 10 LOAB ,,$10 AC I ACTRL := control code for
routine is to put the contents of acc umu la- 9 1008 F7 80 10 STAB ACIACTRL RTS low, normal operatIOn ;
tor A into the output data stream. T1 PUT 10 100B F6 80 10 TlOTZW LOAB ACIACTRL 8 : = AC I A Slatus register;
11 lODE C5 08 BI TB " S08 test status of CTS (bit 4) ;
fil-st tests the transmitter buffer empty f lag 12 1010 26 F9 BNE TlOTZW if nOI ready th en ke ep loopIng ;
of the status reg ister (bit 1) in a wait loop at 13 101 2 33 PULB else pull 8 from stack to
lines 17 to 19. Then it simply stores the 14 1013 39 RTS res t o r e If, th en r eturn;

output character of acc umu lator A into the


AC IA data location, wh ich automatica lly Listing 3: Character PUT routine TJ PUT. This subroutine is called whenever
init ial izes an output operation for th a t it is desired to write a character on tape. After waiting for a go ahead from
character. T1 PUT has one parameter, a the transmitter buffer empty status bit, the routine transfers the contents of
character code passed in accumulator A. It accumulator A to the A CIA transmitter buffer register.
preserves the co ntent of accumu lator B in
the stack. 15 1014 10 14 Tl PUT EOU · IlllS routine Wlltr!S orl!! charLlcter of ou tput.
16 1014 37 PSHB pu s h 8 IIlIO Slack 10 save It ;
Listing 4 gives the code for the output 17 1015 F6 80 10 TI PUTW L[) AB AC I ACTRL B : AC t A SlalU S r egis t er ;
close routin e, T10STP . Th is routine uses a 18 101 8 C5 02 BITB " S02 l es t s tatus of transmitt e r Ibn 1);
19 l Ol A 27 F9 BEO TlPUTW If nO t rl !ady th en keep loop in g:
wait loop at lines 24 to 26 in order to ensure 20 101 C B7 80 11 ST AA ACIAOATA 1!lst.' ' ' '.111511111 d uyte fron"! A;
comp letion of th e last AC IA output con- <1 101F 33 PULB p u ll B from slack · l o r es t ore II .
version. Fo ll ow ing comp let ion of the last 22 1020 39 RTS r e ldrll 10 the ca ll er;

character, T10STP loads the AC IA control


register with the hexadecimal control code
5D in order to turn off the tape recorder Listing 4: Output close routine TJ OSTP. This subroutine is called following
motor. It then returns to th e ca ller. T10STP output of a series of characters (a "blocl?"). nOSTP waits for the
has no parameters. As shown, T10STP uses completion of the last output operation, then shuts down the tape recorder
accumu lator B as a temporary data storage motor and returns.
area but does not preserve its va lue in the
23 1021 10 21 Tl OSTP EOU · Ihls routine s tops tape a ft er wrltmg a block;
stack; add ition of PSHB and PULB opera- 24 102 1 F6 80 10 LOAB ACIACTRL 8 ;- ACtA s ta tus register;
tions (after li ne 23 and before line 29 25 1024 C5 02 BITB " S02 1$ transmitter data register c"., pty ?

respectively) could be done to preserve these 26 1026 27 F9 BEO Tl OSTP If not keep waiting for e mpty .
27 W28 C6 50 LOAB " S50 else ACIACTRL :0 control coele for
reg isters if I-eq u ired. 28 102A F7 80 10 STAB AC I ACTRL RTS high, motor off ;
Listing 5 gives the code of the input open 29 1020 39 RTS relLlrll 10 ca ll er;

routine, T1ITZ. Thi s routine is identical to


T10TZ in all areas except one: It tests the
Listing 5: Input initialization routine TJ INZ. 7his subroutine is called after
DCD status Iine (bit 2 of the contro l
the tape recorder has been readied manually for a read operation. TJ INZ
register) instead of the CTS sta tus line. Thu s
resets the A CIA and turns on the tape recorder motor, then waits for the end
the in put initia lization rout ine waits fo r the
of th e inpu t initialization delay. The delay is ended when DCD is found to be
2.5 second delay produced by oneshot IC7_
zero 2.5 seconds after the motor is turned on.
Listing 6 shows the input data tra nsfer 30 102E 10 2E TlIN Z EOU · th, s routine In iti al i Zes and s tarts In pu t ;
31 102E 36 PSHA push A Int o Sl ack 10 save It,
routine, 1'1 GET. Th is routine is ca ll ed once 32 102F 86 5F LOAA " S5F ACIACTRL := contr ol code f or
for each character of input expected by the 33 1031 B7 80 10 STAA AC I ACTRL master reset, RTS hi gh;
program which uses the tape cassette in ter- 34 1034 86 10 LOAA "S 10 AC I ACTRL := con trol code lor
35 1036 B7 80 10 STAA ACIACTRL RTS low, normal op eratton ;
face. Its fir st action is to enter a loop (lines 36 1039 B6 80 10 T 11 NZW LOAA ACIACTRL 8 ; - ACtA stat u s register;
41 to 44) waiting for the receiver da ta 37 103C 85 04 BI TA " S04 IS OCOlbl 1 2) low'
38 103E 26 F9 BNE T11NZW If nOI then keep waiting;
avai lable flag in the status reg iste r to become 39 1040 32 PULA elSf~ pull Afr om stack to
high. When a character is ready and ind i- 40 1041 39 RTS restore It , then return ;

15
Listing 6: Character GET routine Tl GET. This subroutine is called wheneller cated by the flag, Tl GET transfers the input
it is desired to read a character from tape. A fter waiting for a go ahead from data from the AC IA rece iver data register to
the receiller data allailable status bit, the routine transfers the input data to the accumulator A at line 48, after verifying
the accumulator A before returning. If errors occur, the error status bits are that there are no errors in a test at lines 45
returned in accumulator B. Note that once the tape is started for input, the to 46. A premature return with the error
processing performed between TlGET calls must on the allerage be code in bits 4 to 6 of accumu lator B occurs
completed before the next character is ready, if an oller run error is to be at line 47 if a parity, over run or framing
alloided. For a 300 baud transmission rate, this gilles 33.33 milliseconds, or error was detected. The program using the
33,000 Motorola 6800 instruction cycles at 7 MHz, assuming that the output cassette interface is responsib le for checking
routine was called at an /0 limited rate. any errors and possibly taking some form of
corrective action. If the data had no
41 1042 10 42 TlGET EOU · thi s routin e rea d s one cha racter o f Input ;
42 1042 F6 80 10 LDAB ACIACTRL B := ACIA status regis ter; detected errors, the normal return at line 50
43 1045 C5 01 BITB =$01 is rece iver d a t a read y ( b it O) ? is taken after clearing the error indication
44 1047 27 F9 BEO TlGET If nOt th en k ee p lo o pi ng;
45 1049 C5 70 BITB =$70 are ther e any errors (bit s 4 ·617
code in accumulator B at line 49. T1GET
46 104B 27 01 BEO TlGETR if not th en go read char ac ter ; has two parameters which are returned in
47 104D 39 RTS el ;e return w ith conditIOn B:
In
the CPU accumu lators. Accumulator A con-
48 104E B6 80 11 TlGETR LDAA ACIADATA A := ACIA data regist er ;
49 1051 5F CLRB B := 0 lel ear co ndItion code in BI . tains the character which was received (or
50 1052 39 RTS re turn w ith chara c te r in A ; undefined garbage if in error) . Accumulator
B contains 0 if there were no errors, and an
error condition code in bits 4 to 6 if an error
Listing 7: Input close routine Tl ISTP. This subroutine is called following the occurred :
last inpu t of a series of characters (a "block "). Tl ISTP immediately turns off
the motor, since the Tl GET rou tine is assumed to halle been executed for the • bit 4 is 1 if there was a framing error;
last character prior to Tl ISTP. Note that the determination of the length of a • bit 5 is 1 if there was an over run
bloc/? is intentionally omitted from the software of this package. error;
• bit 6 is 1 if there was a parity error.
51 1053 10 53 TllSTP EOU · Ihl s ro utin e stop s tape aft e r rea ding a bl oc k :
52 1053 36 PSHA pu sh A Into s tack to save It ;
53 1054 86 5F LDAA =$5F
Listing 7 comp letes the tape uti lity
ACIACTRL =: control code fo r
54 1056 B7 80 10 STAA AC I ACTRL RT S hIgh and m otor o ff ; routines with the input close routine T1STP.
55 1059 32 PULA pull A fro m Slac k 10 res tore It ; Since input operations do not have to wait
56 105A 39 RTS re turn t o ca ll er ;
for completion of the last character, simp ly
turning off the cassette motor suffices to
Listing 8: Test Routines. The programs READ and WRITE are shown in this comp lete the input operation. The motor is
listing. WR ITE should be called first to output 256 bytes of arbitrGlY data turned off by storing the hexadecimal code
located at hexadecimal addresses 400 to 4FF in memory. Once the block 5 F in the ACI A contro l register.
is dumped to tape, the tape cassette can be rewound and set up for a playback
operation. Then READ can be called to transfer the data back into the A Test and Example
computer where the terminal monitor program (for example, Motorola In order to illustrate typical use of the
MIKBUG) can be used to examine the data to lIerify that the interface COM PLEA T Tape Cassette Interface, a
restored it properly. demonstration program was wr itten and is
S0100 s tar t p rog ra mmin g a t loca ti on 0100 ;
shown in listing 8. This demonstration pro-
57 0100 01 00 ORG
58 0100 10 00 T l 0TZ EOU $1000 here is a set of gram has two routines: The routine named
59 0100 10 14 TlPUT EOU $1014 equ ates used to WRITE at hexadecimal location 100 should
60 0100 10 21 Tl0STP EOU 51021 tell th e asse mbl e r
61 0100 10 2E TllNZ EOU $102E wh ere th e COMPLE A T be called from your terminal monitor pro-
62 0100 10 42 TlGET EOU $1042 Tape Casse tte Int e rface gram (such as Motorola MIKBUG) to copy
63 0100 10 53 TllSTP EOU $105 3 I S loca ted ;
the contents of hexadecimal memory loca-
64 0100 01 00 WR I TE EOU · he re begin S th e output tes t rou t ine; tions 400 to 4FF onto tape as a single block
65 0100 BD 10 00 JSR Tl0TZ ca ll th e output open ro utine ;
of characters. (Remember to set up th e tape
66 0103 CE 04 00 LD X =$400 X := starting address 0 1 bl ock ;
67 0106 A6 00 WRITELP LDAA O.X A :" memo ry IXI ; recorder before calling WRITE.) Then the
68 0108 BD 10 14 JSR T1PUT o utput ;= A le all th e put routin e ) ; routine named READ at hexadecima l loca-
69 010B 08 INX X := X + 1;
70 OlOC 8C 05 00 CPX :=$ 500 IS X = las t addr ess p lu s o ne?
tion 115 can be called to read the informa-
71 010F 26 F5 BNE WRITELP If no t th en reit era te; tion back in from tape starting at location
72 0111 BD 00 21 JSR T10 STP ca ll th e o utpu t c lose rou tlll e;
73 0114 39 RT S re turn t o mo nito r ;
400. (Be sure to rewind the tape and set it
up for a playback operation first.)-
74 0115 01 15 RE A D EOU • h ere begi ns th e Input tes t r o uti ne ;
75 0115 BD 10 2E JSR TllTZ ca ll Ih :? In p ut ope n routin e;
76 0118 CE 04 00 LDX =$400 X ": startin g address of blo ck ; REFERENC ES
77 011B BD 10 42 READLP JSR T1 G ET A := Input leall get routlnel ;
78 011 E Cl 00 CMPB ::() are the re er ro rs? 1. Motoro la Corporation: M6800 Systems
79 0120 26 08 BNE ENDREAD If so then sto p p rematur ely ; Reference and D ata Sheets, M6800 Micro-
80 0122 A7 00 STAA O.X memorylXI := A ;
processor Applications Manual, M6800 Micro-
81 01 24 08 INX X :" X • 1 ;
82 01 25 8C 05 00 cP X := $500 IS X ::: las t addr ess p lus one?
processor Programming Man ual, all 1975.
83 0128 26 F1 BNE READLP If n o t th e n re it e rat e;
84 012A BD 10 53 ENDREAD JSR Tll STP ca ll th e Input cl ose ro utin e; 2 . Lancaster, Don: "Seria l Interface," BYTE,
8 5 01 2 D 39 RTS re turn to mo nll o r ; September 1975, pp 29-32.

16
Dear Friends,

You are invited to attend the first annual WORLD ALTAIR


COMPUTER CONVENTION. This exciting event will be held
at the new MITS factory on Saturday and Sunday, March
27-28, in Albuquerque, New Mexico.

Hobby clubs and individual Altair owners have been


asked to bring their Altairs to Albuquerque to
set up demonstrations. Thousands of dollars
worth of Altair equipment will be awarded
to the users with the most innovative
demonstrations.

Seminars will be conducted by MITS


engineers, MITS software writers,
and by some of the leading figures
in the home computer field.

Since the new MITS factory is


located close to the Albuquerque
Airport, it will be very Attendence to the
convenient for out-of-town convention will be
guests to attend the free (not counting
convention. The entire travel and hotel costs)
Albuquerque Airport and MITS will provide
Marina Hotel has been door prizes and at least
reserved for this one free luncheon.
occasion. This
hotel is across Call or write for hotel and
the street from convention reservations. Or
the terminal for more information:
building and
just a short WACC/MITS
walk away 2450 Alamo SE
from MITS. Albuquerque, NM 87106
phone 505-265-77553 or 262-1951

With the help of the thousands of Altair


Users and friends of Altair, it is hoped
that this convention will be one of the most
exciting computer events in the industry.

Thanks from

"C rea tive El ec tronics "

*Altair is a registered trademark of MITS, Inc.


Magnetic Recording for Computers

William A Manly Why Magnetic Recording? point), then letting it coo l in the recording
Cobaloy Co
Anyone serious ly involved with com- field un til it aga in beco mes magnetic. Due to
626 Great Southwest Pkwy the inc onvenience of the te mperature
puters, whether he likes it or not, will also
Arlington TX 76011 cycli ng, this last method is not important for
be ser iously in vo lved with magnetic record·
ing. After one begi ns working with com- di gita l record in g. The fi rst method will be
puters, it doesn' t take very long to discover cove red in the greatest detail, as most
the shock ing fact that memory for a com- recorders designed for digital use em pl oy it.
puter is going to cost a lot more than the Many of the co nclu sions drawn wi ll also
computer itse lf. A comp uter requi res lots of app ly to the seco nd method.
memory, an d professional or amateur, the Some other names and subd ivis ions also
computer user wants to minimiz e the cost of appl y to the main divisions given above. If
his computer setup . A look at figure 1 will we call the first type hysteres is recording,
imm edi ate ly tell you why magnetic record- there are two main subdi visio ns. One is very
ing is so important to computer memori es: much like FM radio br oadc asti ng, and is also
Noth in g can come anywhere near it for low ca ll ed frequency modulation record ing
cost per unit of stored information. Figure -I (sometimes ca ll ed phase modulation). A
also shows why magne tic recordin g cann ot single-freq uency carrier is recorded on the
be use d for all types of computer memories: medium, an d its frequency changed accord-
It is the slowest of the memor ies, which ing to the in fo rm a tion to be stored . Another
means that it is emp loyed mostly for long subdivision is the type used for most digital
term, low usage storage (usually ca ll ed bul k wo rk . It is ca ll ed saturat ion record in g.
storage ). Idea lly, the sa turation recorded medium has
only two states: satur ated (magneti zed to
All Kinds of Recorders - maxi mum strength) in one direction, or
saturated in the other direction. Th e in fo r-
Nothing can come any- Mag ne ti c recorders come in many forms:
mat ion is contai ned in the transitions, where
where near magnetic re- tape, di sk, drum, card, sheet, stripe, roll,
the direction of sa turation is changed. (O ne
cording for low cost per cassette, reel, ... etc. Most of these fo rm s
older method also used a third state; that of
have bee n used for co mputer memor ies in
unit of stored information . erasure, or zero magnet izatio n.) The second
the past, and many are sti II in use. type of recording (anh ysteretic magnetiza-
ti on) is also ca lled bi ase d recordin g. It
And Recording Methods involves the use of a large ampl itude hi gh
There are seve ral ways of pl ac in g mag- freq uency bi as, to wh ich the signal is added _
netic signals on mag net ic medi a. Among The signal does not modul ate (change) the
these are those which use the hysteresis loop bias in any way. The bi as does not r-etur n
or the initi al magnetization cur ve, th ose during the signal playback process.
which use a variation of anh ysteretic mag- Alth ough the profession als norma ll y use
neti zation, and some methods which use onl y saturatio n record ing for di gital use,
Curie po int magnetization. I will go through com puter hobbyists have appr op ri ated re-
the first tw o in detail. The last one inv olves corder s intended for oth er uses, and thus use
heating th e medium until it is so hot that it severa l types of recording. One is eve n a type
is no longer mag netic (it ceases being mag- of FM recording usin g bi as to record th e
netic at a temp eratu re call ed th e Curie car rier. Magn etic recording can also be

18
classified accordi ng to the type of informa- A Plan of Attack
tion being recorded, and there is a corre la- It isn't very likely that you are interested
tion between th e type of information and in becom ing an expert on magnetic record-
the type of recording : ing. All that you want is to under stand it
Type Of Information Type Of Recording well enough so you can exercise enough care
Digital professional Saturation (some- to prevent its becoming a problem. Knowing
times FM carrier) th is, I' ll just present enough of wha t is call ed
Audio Biased the theory of recordi ng to give you a feel for
Instru mentation Biased, biased FM how it works, then I'll talk a bit of practi-
carrier, FM carrier calities with suggestions for smooth opera-
Video FM carrier tion and maintenance. Magnetic recording
Digital hobbyist Biased FM carr ier, theory is divided into two parts: Magnetics
saturatio n an d geometry. Let's first look at the
All of the foregoi ng see ms rather in- magnetics.
volved, but just remember that the know l-
edge of a few basics wi II enab le you to sort Blame It All on the Electron!
out alm ost any recording situat ion. For Almost everyone knows that the electron
instance, all the syste ms we will discuss is a fu ndamental partic le of electricity. It
involve on ly a magnetic surface moving with also possesses a magnetic field (e lectrons
respect to a set of magnetic heads, one of always have sp in ; this sp in constitutes an
wh ich writes on the surface, and another electric current going around in a circle; and
which reads the information previously anytim e an electric current is f lowi ng, it
written there (if you are an au dio enthusiast, generates a magnetic field). Most materials
forget about the record, playback, and erase have their electrons placed in such a way
heads - those terms are rarely used in digita l that th e magnetic fields all balance out to
recording). You are not likely to have an zero, but there are a few mater ials which
erase head in your system unless you use an don't. With electron spins paired so that one
au di o recorder. Some systems are espec iall y is spinn ing clockw ise and one counter-
simple, having on ly one head which both clockwi se, the ne t field is zero. Of the
reads and writes. Sometimes the surface materia ls with unpaired electron spins, some
moves and the heads are fi xe d; sometimes are pu t together in such a fas hion that the
the heads move and the surface is fixed; electrons are coup led together. When this
sometimes they both move; but the impor- happens, if you manage to turn one spin
tant thing is the relative head to surface ax is, YO Li have to turn its neighbors as well
movement. {the magnet ic f ields point along the spin
10r----=~----_r----~----~------r_----._----~----_,------r_----._----_,

-I
10

!:::
m
n:
l1J
Q.
VI -2
f- lO
z
l1J
U
~ RECORDING
f-
VI
0 -3
u 10

-4
10
CASSETTES--~r-----~

10

Figure 7: Digital computer memory hierarchy: cost as a function of access time.

19
ax is) . Depen din g on the mater ial, somewhere fie ld direction, half are still pointed in the
betwee n a fe w hun dred and a few milli on of o th er direction; and the resul t is zero. At
these li ttle fe ll ows will stay coupl ed together thi s poin t, th e ap plied field is called the
and pointed in th e same way all th e time. coercive fi e ld (som etim es ca ll ed coercivity or
Thi s coll ec tio n of coupl ed elec tron spin s is coercive fo rce) of the material, and is indi-
ca ll ed a dom ain , and the mate rials with th is cated by Hc . If the applied field is increased
type of struc ture are ca ll ed fe rromagnetic to th e fo rm er high leve l, the mater ial again
materi als. becomes saturated, bu t in the opp osite
If a large number o f atom s Me co ll ec ted direction. This cycle can be conti nu ed in-
together, there will be two or more domain s, defini te ly, but the material never returns to
whose magnetic fi e lds will n.o t necessar il y be its e rased condition (zero magnetization in
pointin g in the same direction (th ough they the material with zero applied fie ld ). If the
might). Materi als for mag netic record in g first di rection is chosen to be pos itive (and
co nsist either of domain sized pal"t icles the opposite direct ion negative), we ca n
separated by non-m agnet ic mate rial, 01" th ey show a graph of th e whole business by
are made of plated material with enough plo tti ng magnetiza tion on the Y ax is, posi-
impurities to sect ion th e pla ting into domain tive direction up ; a nd th e strength of the
sized uni ts. Sepal"ati ng the domain s this way applied fie ld on the X ax is, positive direction
all ows th em to opera te nearly ind ependently to th e right. Thi s plot is known as a
- a necessity for keeping the in form at ion in hysteresis loop, and is shown in figure 2;
storage. Such materi als are kn own as "h ard" along with the ini tial magnetizat ion curve,
mag netic ma terials. which is not properly part of th e hysteresis
loop.
Hysteresis, Not Hy steria
A hard ferr omagnet ic materi al is charac- Erasure
terize d by its hysteres is loop. I have a libr ary If we could limit the discussion to satura-
full of books on hys teres is loops, which have tion recOl"d ing, I wou ld have bee n through
been confusing students fo r years; but le t me with the magnetics ri ght now, but the use of
see if I ca n spare you so me of the confu sion. audio recorde rs has compl icated th in gs, so
Supp ose we have a mate r-ial co nta inin g a there's a bit more. Suppose we are cyc ling
large numbe r- of dom ain s whose fi elds are all arou nd the maj o r hys teresis loop we have
pointi ng in different dir·ections. Th e fie ld s all just described, but start reduci ng th e maxi-
cance l ou t, and the ma terial is said to be mum fie ld a bit eac h time around. Each time
demagne ti ze d (note th a t a sin gle domain the max imum field is reduced, the loop
cann o t be demagnet ized). If a very small shrin ks in the hori zonta l direction, and in
magn et ic f ie ld is app li ed to the material, th e vertica l direction as well. Th ese sma ll er
nothin g happe ns. As the strength of the f ie ld loops are hysteresis loops too, bu t they are
is increased, a few of the doma ins sw ing cal led "minor loops." If we continu e to
the ir elec tron spin axes to fo ll ow th e app li ed cyc le, but red uce th e max imum field
f ield. As the f ie ld strength cont inu es to ri se, gradua ll y (i.e., go around 10 to 100 t im es )
more and more dom ains foll ow th e f ie ld to zero, the remanenc e (the magne tization
until f ina ll y the last domain respo nd s. Afte r when the field is zero) goes to zero as well.
that, no matter- how mu ch more fi e ld is Now we have reduced the magnetic mate rial
appli ed, noth ing more can happ en. The to th e erased condition. It wou ld be we ll to
materi al is now saturated, and it now has und ersta nd this before goi ng on to the next
acqu ired its max imum mag net iza tion, des- part, since this cyc l ing and reduction proce-
ignated Mnl" Th is process is known as the dure is t he basis fo r bi ased record in g.
in iti al magn e tizat io n of th e mate rial. If we
now let th e applied fi eld go to zero, a few of Som e Recorders Are Biased
the domain s deci de to dese rt the pack, but Now let' s go back to the saturated con di-
most stay point ing in th e same direc tion. tion. This time we wi ll appl y two fie lds
Thi s is know n as th e remanent co ndi tion , ad ded togethe r. One is th e sam e large cyc lic
with the r-e manent magn etiza tio n des ignated fi eld we appli ed in th e las t paragraph, but
Mr. Mag ne ti za tion is given in several units, the other is a sma ll er f ield . Th e sma ll er f ield
all of wh ich are measures of how many is app lied and he ld constant. Th e large fie ld
unp aired e lectron sp in s there are per unit is taken to satura tion, the n cyc led and
vol ume o r unit we ight of mag ne tic material. redu ced to ze ro as in the erasure process.
Now let 's r'eve rse the direction of the Th e n the sma ll field is also redu ced to zero.
fie ld (d enoted, for some reaso n, by the letter Now, th e reman ent magnetiza ti on is not
"H") and slow ly increase th e stren gth from zero. I n fact, it is larger th an one might
zero. A t some point, exact ly half of the expect fro m the applic at ion of that small
dom ain s have decided to fo ll ow the new fie ld. Th is remanence is call ed anh ys teretic

20
Figure 2: Initial magnetization curve and major hysteresis loop of a hard ferromagnetic
material. See text for explanation of abbreviations.
MAGNETIZATION
+ POSITIVE DIRECTION

INITIAL
MAGNETIZATION
_CURVE

MAGNETIC FIELD
NEGATIVE DIRECTION

-H -He He +

MAGNETIC FIELD
POSITIVE DIRECTION

-t-----I-:::::-MAJoR HYSTERESIS LOOP

+ M DIRECTION

-----;:;~----
__ - - ~7

/-- ~~-----
/ //
_ MAGNETIZATION
NEGATIVE DIRECTION
I
/
/

1
//I
I '--_--1-/-- AN HYSTERETIC
MAGNETIZATION
I 1/ I CURVE
I
I 1 I
I /---I-INITIAL MAGNETIZATION CURVE
I / I
-H DIRECTION I ,// I + H DIRECTION

I I
I I
/ I
/ ---- -I----/~MAJOR ~YSTERESIS LOOP
I I
/ 1
/ ////
-----7'-
--"/
_-..-.r-.-::""--- ---- ----
- M DIRECTION

Figure 3: Anhysteretic magnetization curve of a hard ferromagnetic material, compared to the


initial magnetization curve and a major hysteresis loop.

remanence. Figure 3 shows a plot of the curve looks like the so lid line in figur e 4.
anhysteretic remanence (solid line) plotted Compare it to th e linear anh ysteretic mag-
against the small applied field, with the netization curve, which is th e dashed curve
major hysteresis loop shown with dashed in figure 4. Its nonlinear-ity prevents it from
lines. This is a transfer curve, which is being used fo r aud io and other typ es of
measured point-by-point, and is not con- recor ding requ iring a lin ea r tr ansfer cu rve.
tinuous like the hysteresis loop. Note how Note parti cularl y that there is very littl e
linear this curve is, and that it is nearly remanenc e until the ma ximum field is at
parallel to the sides of the major hysteresis least as large as Hc. This cu rve is also a
loop. This an hysteretic process is simil ar to point-by-poi nt curve like the an hysteretic
how biased recording works. The large cyclic magne tiza tion curve.
field is called the bias, and the sma ll DC fie ld
is called the "signal." An Assist From Euclid
If a field is applied to an erased medium
and then removed, there is some remanent We've covered about all the magnet ics
magnetization. If we plot this remanence you're going to need, so we'll ge t right into
versus various values of appl ied field, the the geometry of the situation. Magnetic

21
+M~

I
/"
".,- ---- -----

I
I
I
I REMANENCE VS. APPLIED FIELD :
MEDIUM INITIALLY ERASED
I
-He

+He
I
I
I
I AN HYSTERETIC MAGNETIZATION CURVE
I
I

----
/
".,/

---- -M.

Figure 4: Remanence as a function of applied field for an initially erased hard ferromagnetic
medium, as compared to the anhysteretic magnetization curve.

The principal methods of recording is, fortunately, a two-dimensional have floppies as yet; but by using a thick
magnetic recording are process. This means that we can understand medium as an example, we can include
hysteretic and anhysteretic most of what we need to know by using characteristics of thin medi a as a special
magnetization. only a two-dimensional picture, and the case. Another reason for picking the floppy
third dimension is thrown in as an after- is that it uses a type of record ing si mpler
thought. One of the two important dimen- than cassettes use; but, by analyzi ng it, we
sions lies along the recording surface in the can cover all the major principles.
direction of head-to-surface movement. The
other important dimension is perpendicular Heads Up!
to the recording surface, and measures the
thickness of the magnetic medium and the A ring type head is shown in figure Sa.
head-ta-surface spac in g. The afterthought There are many other types of heads, but
dimension measures the magnetic track th is one is well known and widely used, and
width. It has to be considered, but it's not the principles are analogous for most of the
nearly so important as the other two. others. Note that this head is balanced:
The particular geometry we'l l consider is There are simi lar coi ls on both sides, and
that of a thick coating. This is the situation similar gaps on both the top and the bottom.
with floppy disks, and we'll use them as our A balanced head has a great resistance to
primary example. (IBM , who invented the pickup of stray fields, and is used where
floppies, ca ll s them diskettes. Another term hum pickup might be a probl em. A lot of
is flexible disks.) The Philips-type cassette is digital heads are not balanced, and have only
also usually a thick coating (we'll use coating one coil, as in figure 5b. Read and write
and medium interch angeably) situation, heads usu all y differ only in detail (gap a nd
while rigid disks, drums, and most ree l-to- track dimensions), or the same head can be
reel and cartridge situations are thin media. used for both functions. Floppy disk drives
Thick and thin refer to the ratio of the usually have only one dual purpose head.
medium thickness to the write gap length, In figure 6, I have blown up the outer
not to any absolute value of th ickness. A edge of the top head gap, and show it
thick medium situation exists when that contacting the magnetic medium . The actual
ratio is greater than 0.5, and thin medium dimensions of most floppy disk head gap
situations exist when the ratio is smaller lengths and the coating thicknesses of most
than that. The exac t size of the ra tio f loppy disks are about the same: '100
dividi ng the two cases is a bi t arbi trary. millionths of an inch (100 microinches or
Probab ly not too many computer hobbyists 2.54 micrometers).

22
We're Always Blowing Bubbles
When we create a magnetic field in the
write head by passing an electri c current
through th e head co i Is, the f ield stays in si de
the core until it reac hes the gap, where it
ball oons out like a weak spot in an inner
tube. Since the head gap is small, the field
bubbl e is confined to a rather small volume.
Near the corn ers of the gap edge, the field
rises to a rather high value, even with only a
small f ield in the head corc. If the field in
the magnetic medium is much higher than
the coercivity of the med ium, the magnet iza-
Figure 5: (a) Magnetic ring head, with
ti on of the medium beg ins to fo ll ow the
balanced coils and gaps. (b) Magnetic head
field, and we say that it is bei ng switch ed.
with single coil and gap.
Subsequentl y, if we all ow the field to drop ·
below the coercivity, the magneti zatio n
stays pointed in the same direction as the B
last ap plied field, a nd is more or less
proport ional to the diffe l·e nce between the
highest app li ed field stre ngth and the
coerciv ity (up to the poin t where the highest
applied field strength saturates the mater ial) .
Now refe r back to th e curve " Remanence
versus applied field," infigure4. If we set the
write current at a moderate level, some part
of the medium is ex perie nci ng f ields from •
above saturation (Hm) down to nea rl y zero. SIGNAL
CURRENT
In region A (f igure 6) the fields are grea ter
than Hm. In region B the f ield s are le ss than
Hc and there is littl e magnetization. The part reg ion, where some of the material is follow-
of the medium in the recording zo ne (fi gure ing the field, and some is not. For mo st
6) will exper ience a sub stantia l amoun t of materi als, th e boundaries are not shar p as
remanence after the field goes to zero (th e shown, but are actuall y rather fuzzy .
part of the curve in f igure 4 betwee n Hc and As the medium moves away from the
Hm) . The part of f igure 6 label ed "Record- hea d gap, the part of it which has been in
ing Zone - Low Drive" is a transition the recordin g zo ne has a signa l impressed

Figure 6: Write head near gap, in contact with magnetic recording medium. Total field near
recording zones shown for low drive and maximum output drive.
SUBSTRATE

RECORDING ZONE
MAXIMUM DRIVE - - - - - ' ' ' ' ' "

REGION B

RECORDING ZONE
LOW DRIVE

HEAD
.... - -- HEAD · .
', . .. .. ..
' . . . .. ...
. ...... , ' , ..
l - - - - - - - - HEAD GAP-------l

23
upon it, while the part farthest away from
the head has not seen a field high enough to
leave a signal. We can record through the
N N S S N N whole coating by increasing the drive
through the head coils. With a high er drive
current, the transition region is labe led
"Recording Zone - Maximum Drive" (fi\!,ure
6). Note how the width of the trc7nsitiol7
GAP
region has increased; this is a fundamental
...... limitation of the medium and the head .

Things Are in a State of Flux


A
Figure 7 shows a series of diagrams of the
magnetic flux (lines of force) patterns for a
reading/writing situation similar to the

MEDIUM
- floppy disk geometry. The flux intensity
bounds determining the transition zones are
also shown for the writing situation.
Figure 7a shows the head reading, and
figures 7b through 7d show the head during
a writing sequence. To simplify thin gs in 7a,
the ideal recorded flux pattern (which
resem bles bar magn ets laid end- to-end) is
GAP shown. Actual flu x patterns are similar, but
more complicated. Observe that the flu x
from all the magneti zed segments is shorted
B
out by the head, except for the segment
across the gap. In that case, the fl ux threads
itself all the way around the hea d. Wh en the
next magneti zed region moves into pl ace,
the flux will go in the opposite direction.
The head coils have an output voltage only
when the flu x changes from one direction to
the other; and the faster it changes, the
higher the output voltage will be.

Floppies Are for Real


Now let's look at a re al recording situa-
. ,'.- .. ': . GAP
tion. The simplest coding is no t used by
floppy disk machines; but it illustrates all
c the principles, and is easiest to understand.
It is called NRZl (Non-Return to Zero,
change at 1) recording. The track is divided
into small segments all the same length . If
the recording is at a bit packing density of
THIS PART NOT RECORDED 800 bpi (bits per inch), the segments are
1/800 inches long, or 0.00125 inch es (32
microm ete rs). The read electronics are gated
so that th ey only read signals which come
shortly before, to shortly after, the dividing
line between segments. During this period, if
there is a flux transition from saturation in
one sense to saturation in the other sense, a
pulse will appear in the gate. The prese nce of
o a pulse is a one, and the absence of a pu Ise is
a zero. More complicated coding than this is
Figure 7: (a) Read head near gap, in contact with ideally magnetized used for floppy disks. One type is called
recording medium. (b) Write head near gap, showing two maximum output phase modulation. It uses flux transitions
flux transitions. (c) Same as (b), but with flux transitions extremely crowded. between ga tes so th at a posi tiv e pu Ise is a
(d) Same as (c), except that write drive has been reduced to relieve crowding one and a negative pulse is a zero. There are
effects. Arrows show magnetization direction. N: North-seeking poles; S: dozens of other coding schemes for digital
South-seeking poles; TZ: Transition Zone. recording.

24
Fi gure 7b shows a head which has just medium is a waste. It's even worse than that.
written two maximum drive flux changes on The transition zo ne is parti ally recorded, and
the medium, which is moving from left to the part farthest away from the head is
I'ight. Several things are of note: (1) the making a negative contribution to th e read
magnetization directions, shown by the signal out put. We find that if we decrease
arrows, are vertical in some places and the med ium thickness so that we get rid of
horizontal in others; (2) there is a fairly wide the con tinuous part of th e transi tion zone
transition zo ne between saturated segments; (away from the head), we get some increase
and (3) the transition zone is spread along in output. Decreasing it too much will
the length of the medium. Comp are this to dimini sh the output again, so th ere is an
the ideal situ at ion shown in figure 7a, which optimum medium thickness for any digital
has: (a) all th e magnetization in the longitu- recording·situation. Because of the rapid loss
dinal direction; (b) a zero-width transition of outpu t as the transitions are crowded
zone between segments; and (c) the transi- closer together, transitions are never placed
tion zo ne lying only in the vert ical direction. as close together in digital work as in other
Each of these discrepancies from the id ea l types of recordin g. If this , crowding is
case loses some of the signal. Th ere is an overdone just a tiny amou nt, some transi-
optimum value of drive c urrent to get tions give such a low output that bits are
ma xi mum output for any given distance lost : an intol erab le situati on.
between flu x transitions. If the opt imum
situatio n is shown in figure 7b, increasing The Cassette Connection
the drive current would make the transition There is a lot in comm on between digital Magnetic recording theory
zones more vertica l, but the width of the recording on floppy disks and digital record- is divided into two parts:
zones would increase so much that the ing on cassettes, cartridges, or other tape
output wou ld go down. If the drive current Magnetics and geometry.
medi a; but there are some differences, too.
is decreased, the part of the coating away One difference is that we have bee n dis-
from the head doesn't get record ed, and this cussing a medium which is isotropic; that is
also reduces the output even though the to say, its magnetic character istic s are the
transition zone width decreases. same in all directions. Thi s is not true of
tapes, as their particles have been orie nted
Long Bars Are Better Than Short Bars during the manufac turi ng process, so that
Now look at figure 7c. Either the they record more easil y in the direction of
medium-to-head speed has been slowed, or head-to-tape motion, and poorly in the other
the frequency of flu x cha nges in creased; so two directions. Thi s means that th e longitu-
that the f lu x changes come much closer dinal compo nent of the field is mu ch more
together. We know that the maximum read effect ive in record ing than the vertica l com-
output would come from what looked lik e ponent is. The corres pond in g f igures for
long bar magnets laid end-to-end (as in figure or iented med ia (to 7b, 7c, an d 7d) would
7a, but with the magnets even lon ger). Th e always have the transition zone going to a
shorter the bar magnets, the less f lu x goes point wh ich would be f ixed near the trailing
through th e I-ead head and the more goes edge of the head gap (see f igure 7d), a nd the
through the bar magnet itself (this is known zone would slant to the left fo r low write
as demagnetization). In figure 7c, there is currents and to the righ t for high write
alm ost as m,uch transition zone as magnet; currents; Even with these differences, the
the magnets are very short and not at all like conclusions we have already drawn would
bars; and the sat urat ion magnetization does hold to a large ex ten t. There is some
not go all the way through the coating. The indication that the vertical part of the write
read ou tput wi II drop off so much tha t head field ca uses a type of partial erasure of
reducing the drive current, as show n in the recording on the surface nea r the head,
figu re 7d, will actual ly increase the output when an or iented medium is emp loyed.
aga inl In figure 7d, the magnets look more Another difference may be that bi ased
like bars, and the transition zo nes are not recording is used, instead of sa turation re-
such a large percentage of the magnetized cordin g. The situation of orie nted medi a
part. The recorded vo lum es do not go all the used with biased recordin g is full y di sc ussed
way thro ugh the coat ing, but the record ed in reference 1. Other types of recording,
pan far fro m the head in figure 7c was out includin g frequency or ph ase modul ated
of phase wi th the reco rd ed part nea r the carriers, may be used, Telety pe signals trans-
head. It was really subtracti ng fro m the mitted over telephone lin es or via radio use a
signal, so loss of that part actua ll y in creases frequency sh ift type of modulation, where
the read output. one audi o frequency is a one and another is
One th in g is very app arent in 7c : Half the a zero. This type signal can be sent directly
medium is not being used. For short dis- to an audi o tape recorder with good results,
tances between flux transitions, th en, a thick except tha tit tends to be slow. ,

25
Keep It Clean, Fella! shear ing and cleaning are done with care,
Looking back on what we have learned normal usage will not generate very much
about reading and writing digital signals on more dust and dirt to cause problems. If
magnetic media, one thing stands out: The manufacturing is done carelessly or the
distances involved are very small. The period lacquer is poorly formulated or 'unstable,
at the end of this sentence is about 0.02 usage will cause shed (dust), or worse, a
inches (510 micrometers) in diameter. This gummy build up on the heads. Both these
is huge, compared to these important dimen- things tend to push the head away from the
sions in recording systems: recorded surface, with a serious loss of
output. Even the best of coatings wi ll
eventually cause some build up on the heads,
Item Dimension In: Inches Micrometers and heads shou Id be regularly inspected and
Coating Floppy disk 0.0001 2.5 cleaned.
thicknesses: Cassette tape 0.0002 5.1 Cleaning methods vary, and several ways
Head gap Floppy disk 0.0001 2.5 are effective. If your machine operator's
lengths: Cassette playback 0.00005 1.3 manual makes any recommendations, follow
them. There are some special tapes and disks
which are run in the machine for cleaning.
On a floppy disk, a magnetized volume of Several companies have head cleaning
material on the surface of the coating away materials and so lution s on the market. My
from the head is only about 15% as effective favorite concoction is half toluene and half
as an equally magnetized volume of the isopropyl alcohol; but it has to be used with
coating next to the head; and this is due care, since the toluene dissolves some
only to the increased distance from the plastics and media coating lacquers. Straight
head. And as we have seen, it's harder for a isopropyl alcohol does a fair job, and is
write head to magnetize the far part of the available in any drugstore. Apply the cleaner
coating, making th ings even worse. It follows to the heads (and guides of a tape machine)
that a piece of dust, just large enough to see, with cotton tipped sticks. The ones made
between the medium and the head can cause especially for cleaning heads are best, since
a very large loss of ou tpu t signal. Someth ing their sticks are stiff, but you can also use the
on Iy half as large as that period wou Id cause ones made for cleaning and oi ling babies.
the complete loss of several bytes of infor- Clean until the coating color is removed, or
mation. In a factory making precision tapes until the cotton swab comes away clean.
or disks, no smoking is allowed in manu- Professional install ations sometimes have
facturing areas; hair is kept covered; and special machines to clean and recheck their
special cloth ing is worn so as not to get media, but this is not usually within the
anything on the recording surfaces. Even the budget of the individual. Cleaning of tapes is
smoke from cigarettes, pipes, or cigars will often accomplished by running them across
build up on heads and recording surfaces and a woven, lightly oiled, soft paper wipe which
cause eventua l signal loss. Ashes cause is moved slowl y away from the point of
instant dropouts (total loss of signal) . Dust contact. Tapes and disks can also be cleaned
fro m any source is to be avo ided like the in an ultrasonic bath with an air squeegee.
plague. All methods require re latively complicated
There 's also dust and dirt which comes machinery, making cleaning impractical
from the medium itself, or its substrate. except for the largest installations. There are
Floppy disks and tapes are both made out of some companies which make 'a business of
a long polyester plastic sheet (called a web) cleaning and re-certifying media. I recom-
which is coated with a special lacquer mend retiring from digital use any dirty
containing the magnetic material as its pig- media, and substituting new.
ment. The origina l web may be from 12 When buying tapes and cassettes, get the
inches (30.5 cm) to 48 inches (122 cm) wide best quality you can buy. This is no place to
for floppies, or 6 inches (15.24 cm) to 48 save money, as it is a lways at the expense of
inches (122 cm) for tapes. After coating and lost bits. Tapes especially made for digital
drying, the web is usually calendered use are a good buy (floppies are always made
(pressed between heavy rolls). This smooths for digital use). If you can't get these, use
the surface to a mirrorlike finish, though it the top line of a well known brand of audio
was fairly smooth to start with. Tapes are tape. Even this is second choice, since audio
slit out of the web by sheari ng. Floppies are tapes, even good ones, may have some
cut out with a die which also shears the bumps on the surface which cause dropouts.
edges. Tapes and floppies are then cleaned The loss of five cycles of that high vio lin in
by variou s methods, since the shearing "Scheherazade" will cause only a tiny gap
process leaves some debris beh indo If the which you won't hear, and you can lose a
lacquer is formulated properly, and the whole percent or so of "Rites of Spring" and

26
never know it; but the loss of just a bit or your bits for easy retriev al. Once these
two of a digital sequence can cause nothing principles becom e second nature to you,
but garbage to issue from your computer. your large-scal e storage problems should
, fade into the woodwork, and you can then
Making Your Media Comfortable apply your troubleshooting talents else-
About 15 years ago, some people at where.-
Southwest Research Institute, with grant
money from the Rockefeller Foundation,
made a monumental study for the Library of BIBLIOGRAPHY
Congress on storage of sou nd recordi ngs
(refer ence 2). Part of their study was con- 1 . "A Primer on Choosing Tape," William A.
cerned with magnetic tape. Not very much Manly , Audio, Volume 58, Number 9, Septem-
can be added to their findings today. Boiled ber 1974, pages 34-46.
down, we can almost put their findings into
2. "Preservation and Storage of Sound Re-
one sentence: If people are comfortable in cordings," A .G . Pickett and M.M . Lemcoe,
an environment, tapes can be safely stored Library of Congress, Washington: 1959. Super-
there for long periods of time wi th littl e intendent of Documents, Washington DC.
degradation. I say almost, because there are
a couple of things to add to this. One is that,
other than the earth's field, no other mag- GLOSSARY OF
netic fields should be present if inform ation MAGNETIC RECORDING TERMS
is contained on the media. Perm anent
Anhysteretic magnetization: Th e magnetization
magnets, wiring carrying heavy currents, remaining in a ferromagnetic material after apply-
power transformers, and magnetic erasers or ing a constant field Hfi xed' superimposing on it a
degaussers should be kept away from the fi eld varying cont inually ' from + Hcyc led to
media. For most of these things, three feet -Hcycled (which is initially larg e enough in ampli-
tude to cause practical sat uration in each dir ec tion,
(one meter) is a good rul e of thumb for then reducing th e ampl itude of Hcycled to zero as
distance. Don't get carried away and worry the cycling continues) .
about such things as shielding from the
earth's field, protecting from lightning or Biased recording: Magnetic recordi ng done by
adding the signal field to be recorded, a high
static electricity, guarding against radiation
frequency, large amplitude field called the bias.
from radio transmitters or radar sets, The purpose of the bias is to linearize the recording
or storing a hundred feet away from any process.
electric wIring. Trouble from magnetic
Bulk storage: Supplemental storage of large volume
fields, though it can occ ur, is rare. The other
capacity. Also called external storage, secondary
added condition is that all media should be storage or mass storage.
stored under low mechanical stress. Tapes
and cassettes should be wound properly Coercive field : The app lied magnetic field in a
from a regular run, not a fast wind. Fl oppies given direction, necessary to reduce the remanent
magnetization of a f erromagnetic material to zero,
should be stored flat, with no weight piled after th e app licat ion of a saturating fi eld in the
on top. If supported so that they don't opposite direction.
buckle, they can be stored on edge. Never
remove them from the envelope if you want Curie point magnetization: Magnet ization of a
to use them again. Avoid large temperature ferromagnetic material, acquired by applying a
field, heating the m agnet ic materia l until its ferro-
or humidity changes. magnetism disappears (the "Curi e point"), then
cooling the material while still in the field.
Summary
Demagnetized : Th e condition of a ferromagnetic
What I have tri ed to do is give you first an materi al when the directions of magnetizatio n of
overview of digital magn et ic recording so all its domain s have been randomized, so that there
that mai ntenance and setup instructions for is no externa l field coming from the material.
your machine will make sense to you. I
Domain: A smal l volume of a ferromagnetic
have n't given specific directions for main- material in which the atoms are always mag-
tenance or setup, because eac h machine is a neticallv align ed in the same direction. Th e mag-
little different. Knowing how the informa- netic direction of a domain may be changed, but it
tion is contained on the medium is also of may not be demagneti zed so long as the material is
ferromagnetic.
importance to understanding why cleanliness
and good storage conditions are so impor- Electron: A non-nuclear part of an atom; the
tant to safe storage. Lastly, I collected sma lle st particle of (negative) electr icity . An elec-
together several gu ide Iines for cI ean Iiness tron is regarded bv physicists as a fuzzy ball of
and storage which you probably won't find negative electricity which has a "spin"
characteristic.
in the instruction manual for your mach ine.
I hope that all this helps you to pack away

27
Erasure : The process by which a bulk magnetized
ferromagnetic material is placed in a bul k demag-
net ized condition.

Ferromagnetic : A ferromagnetic material is spon-


taneously magnetiz ed into an assemblage of tiny
permanent magnets called domains. A ferro -
magn et ic material can be demagn etized only in a
bulk se nse, and only when it is of a large enough
physical size to contain many domain s.

Frequency modulation: The changing of a carrier


wave's frequency in acco rdance with th e signal
being transmitted.

Hysteresis loop: A closed curve obtained by


plott ing magnetization for ordinates ("y" direc-
tion ) an d appl ied magnetic field for abscissa (" x"
direction) as the material passes through a com-
plete cycle between definite limit s of appli ed
magnetic field .

Hysteretic magnetization (or hysteresis magnetiza-


tion): Magneti zat ion in a ferromagneti c material
acquired by the cyclic application of a si ngle
app li ed m agneti c field; magneti zatio n at some
poi nt on a hysteresis loop.

Initial magnetization curve : Th e plot of the mag-


netization for ordinates and the applied field for
abscissa of an initially bulk demagnetized ferro-
magnetic materi al, as the applied field has its
strength increased from zero to so me high value.

Isotropic: An isotro pic m aterial has so m e property


the same in all directions. Thi s word mu st be
modifi ed by so me adverb d escr ibing the property,
such as "magn eti ca lly i sotrop ic ."

Magnetic direction: A vector on a permanent


magnet pointing from the so uth -seeking pole to the
north-seeking pole; for a magnetic field, the vector
starts at the north-seeking pole of a magnet and
goes toward the so uth -seek ing po le.

Magnetization: The number of elemental m ag netic


dipoles per unit volume of magn etic mater ial. A
sing le, iso lated , spinni ng electron can be taken as
the elemental magnetic dipol e. All other units of
magnetizatio:1 are based on this.

Remanent magnetization : Th e particular value of


m agnetizat ion on a hystere sis loop when the
app li ed field is zero ; the bulk magnetization of a
order today ferromagnetic material when th ere is no applied
Use convenient coupon beloVII field .
or order direct from your
nearest A P Distributor. Saturation magnetization : The magnetization of a
r~y~O;~;;;R---
I 0 CASH: Acheck or money order is enclosed.
II APPRQDUCTsINc'""'
Bo x 110-G, Pain esville, Ohio 440771
fe rr omagnet ic material when the app lied field is so
large that all the domains have the ir magnetic
directions align ed with the applied field.
I 0 P.O.: (Attach coupon). F.O.B. factory; Netll. Order date: (Offer expires March 31,1976.)
I
I o ChargeB.A. ; ; OChargeM.C. • Quantity Part Number $ Each $ Total Spin : A representation of the rotation of an atomic
923269
W ITH FREE DIST. STRIP $8.50 I or sub-atomic part icl e. Spin is a vector pOinting
al ong the direction of the axis of rotation.
I ACCOUN T NUMB EH
923265
WITH FREE DIST. STRIP $10.00 I
I _________A_Uo_V_E_N,AM~E'~MT.C'm<--G-O-OO--TH-R-U----- 923261
WITH FREE DI ST. STRIP $12.50 I
Thick coating: A relative term referr ing to a
magnetic coating or laye r such that its thickness is

II _____________pSRo'G~N~A~TU~R~E-------------
PR'N T NAME
SHIPPING/ HANDLING
Up to $10.00 .... . $1.00
Merchandise Total I
greater than about half the length of the write head
gap .

A DDRESS
10.01 to 25.00 . . ... 1.SO
25.01 to SO.OO . .. .. 2.00
Sales Tax (OH & CAl
I Thin coating : A relative t erm referring to a

I ------'C~<T~y--------~ST~AfiTE,------"Z<DP---- SO.Ol to 100.00 .. . 2.SO .


100.0 1 to 200.00 . . 3.00
·Shipping (see chart)
I m agnetic coating or lay er such that its thickness is
less than about hal f the length of the write head

.... - - - - - - - - - - - - - - - - - "
• All orders subject to acceptance at factory Total Amount Enclosed I gap .
l3yrE THE LIlTEST
P/fE5£NTS
IN INTERCOMPIJTER
DRTR COMMlJNICRTIONS
METHODS.u
IDEA: R.N. ONYMOUS ART: ROBERT TINNEY

I
it-....--.
!! ;
If.·, d
I
I

29
Don Lancaster The BIT BOFFER is a low cost way to and play back on a second. Better yet, it lets
Synergetics store and retrieve digital data onto and off user groups or software sources provide
an ordinary cassette tape, using stock audio multiple copies of programs and data simply
tape recorders. You can also use it to and at very low cost.
exchange data, recording on one machine The BIT BOFFER is very much com-
and playing back on a second. The BIT patible with standard serial interface using
BOFFER is totally software independent, UARTs or microprocessor serial interface
meaning that it can be used with or without chips. It works with any serial interface that
a microprocessor system. All that's needed uses 16X clocks and has separate clocks for
to control it is a simple "data ready" receive and transmit.
command to send something on to the While the error rate of the BIT BOFFER
recorder; you also get a "data available" system is more than adequate for hobbyist
command wh en the recorder produces an quality use, software techniques can option-
output. The BIT BOFFER can be connected ally be added to the basic system to
The format of the BIT to any serial data port of a microprocessor "harden" the error rate for fully profes-
BOFFER is compatible or other system. sional, quality data storage and retrieval. The
with the provisional audio The BIT BOFFER is highly speed toler- format of the BIT BOFFER is compatible
cassette standard described ant, which lets you record on one machine with the provisional audio cassette standard
described on page 72 of BYTE's February
on page 72 of BYTE's
issue. Some characteristics of the BIT BOF-
February 1976 issue. Table 7: Advantages of the BIT BOFFER
system. FER system are summarized in table l.
You can use the BIT BOFFER with
*SPEED Up to ±25% speed varia· almost any cassette recorder, although a
TOLERANT tion without adjustment. medium quality unit with an auxiliary input
*SOFTWARE CPU or microprocessor not and an automatic level control is recom-
INDEPENDENT needed for operation. Run s mended for recording. Just about any
with simple "send" and
machine will play back a properly recorded
"ready" commands.
tape. You do have to use a reasonable
*IOCOMPATIBLE The BIT BOFFER modem
quality tape, free of dropouts and other
works directlv with
existing UART or ACIA. defects. You also should "certify" the tape
Coding compatible with for dropouts, but this is only a commom
TTY, 103 modems, TVTs sense precaution.
and RS232C . Cost of the system? Several vendors are
*NON CRITICAL One adjustment in system. now offering versions of this interface; the
No preamble or block version we'll show you here uses six (option-
limits. Adapt s to wide
range of baud rates.
ally seven) stock CMOS integrated circuits
with a typical cost of 50q each or so. The
*CHEAP AND Single sided compact PC
SIMPLE card circuit costs less than
circuit fits a small single sided PC board and
$6 in quantity. Can be uses very little current from a single 5 volt
redesigned even lower. supply.

30
How It Works
Most audio recorders are very fussy about
what they are willing to accept as input
signals. The cheaper the recorders, the AMPLITUDE
fussier they get.
SYSTEM
If the automatic level control of the NOISE
recorder is going to help us rather than fight LIMIT

us, we want to record a constant amplitude


signal of some sort.
FREOUENCY
What the recording head likes to work
with is even more restrictive. For instance,
Figure 7: The response cUlVe of an ideal audio recording head.
figure 1 shows us the response of an ideal
audio recording head. Over the useful
recording range, the sensitivity doubles with leading edge and one at the trailing edge of
each doubling of frequency. Go too low in the original square wave. There is no way to
frequency and the system noise leve l inter- get a square wave back for a squ·are wave in.
feres with recording. Go too high and a gap Now, the comp uter data recording people
resonance cancellation is caused when th e pull some tricks to simulate the recording of
physical length of the signal recorded on the square waves. They use special heads and
tape exactly eq uals the gap width. levels to saturate the tape in one direction or
Doubl ing response as you double another. On playback, they sense the flux
frequency is the same as mathematical d if- reversals with sense amp lifiers and the n use
ferentiation. You respond to the changes or the amplifi ed impulses to set and reset a flip
the slope of what you are trying to record, flop, thus regenerating a square wave. Thus,
and not to the value of the signal. Note that saturating the tape eliminates one of the
this slope taking process happens twice, once differentiations, and the set reset fl ip flop The BIT BOFFER's data
while recording and once while playing back . gives us an integrati on that cancels the format is a "self clocking"
So, let's take some derivatives. The first second differentiation. one in which the receiving
derivative of a sine function is a cosine But this is vastly different from an audio circuitry is locked to the
function, and the second derivative is a sine cassette he ad working with linear, non- actual data .
function, again of the ·same frequency. Put saturating tape signals. Th e audio cassette
in a continuous sine wave and after the people attempt to compensate for the
second derivative you get back a continuous recording slopes, both on record and play-
sine wave, along with a phase reversal or back, to make it more or less flat over the
two. But sine waves often require expensive audio spectrum. This compensation does n't
hardware . affect sine waves much, but with a square
Can we use square waves? Put in a square wave, it spreads out the harmonic energy
wave and you record an impulse on the and generally makes a mess of it. This is
leading and trailing edges. Play this back and called the group delay distorti on problem,
you get a double impulse, one pair at the and is caused by different response to the

31
harmonics of the square wave than to the to speed up or slow down the UART
fundamental frequency. Also, much of the receiver to match the data rate. Th e result is
com pensation is done by the least expensive called a "self clocking" recording method .
method and simply rings badly when driven Table 2 shows us some standards for a set
by a square wave. Wh ile it is possible to of signals that meet the specification of
record square waves on a quality machine, if constant amplitude si ne waves or half sine
you want reasonable performance for any waves that are zero crossing switchable and
The absolute optimum machine, the only signal you should consider still give us the ability to extract self
signal we can record on an using is a sine wave. clocking digital information off a single
unmodified low cost audio Furth er, if we turn Qur sine wave on or audio cassette track.
off at the wrong time, we introduce a To record a one, we record 16 half sine
cassette recorder is a con-
transient that's the same thing as the leading waves of a frequency that is eight times the
stant amplitude zero offset
edge of a square wave. This causes consider- data rate. For a zero, we record eight half
sine wave whose frequency ab le distortion for us. We can beat this by sine waves of a frequency that is four times
is changed only when the usi ng a transient of zero amplitude, which the data rate. Th e half sine waves are
sine wave goes through means that the onl y time you can change the sw itched just before their zero crossings and
zero. sin e wave is as it goes through zero. always are phased for a continuous wave-
From all this (pius a mountain of lost form through zero. Timing is contro ll ed by a
time and painful testing), we can co nclud e reference clock at 64 times th e data rate.
lhat the absolute optimum signal we can These are often already avai lab le in mini-
record on an unm od ified low cost audio compute r systems. Th e reference clock (64
cassette recorder is a constant amplitude, times data rate) is divided by four to run the
zero offset sine wave whose frequency is clock input of the UART's transmitter at 16
changed only when the sine wave goes times the data rate. It is selective ly divided
through zero. Better yet, as a refinement as needed to synthesize sine waves for
anticip ating the "coasting" effect of a record ing.
recorder' s group delay di stortion, we sho uld During playback, these signals are ampli-
change frequency co here ntl y but somewhat tude limited to minimize tape va ri ations and
before each zero crossing. interfere nce from bias, hum, and other
So much for making the recorder happy. no ise. One clock pulse is reconstructed from
We also have to make our seria l interface or each zero crossing. Th e di sta nce between
UART happy. A serial int.erface using a zero crossings is also measured by a retrig-
single clock gets very unhappy if the trans- gerab le monostabl e circuit. If the distance is
mitted and received speeds differ by more too great to be a one, a ze ro output is
than a percent or two. On reception it starts provided on the data line, and a new clock
outputting garbage since the bits at the end pulse is thrown in for the UART receiver
of the word get ahead of or behind the circuitry. With this design, you auto-
"ideal" positions. A high quality, lin e matically get 16 clock pulses out fo r each
operated recorder can usually hold its speed one an d 16 clock pulses for each ze ro. In the
variation to within a percent or two, but zero case, the clock pul se spacing varies
in expe nsive battery operated units can not. so mewhat as the BIT BOFFER tracks the
Thi s speed variation is en hanced if we are tape speed. But th is is what makes the
reco rd ing on one mach ine and playing back scheme work, since the UART receiver
on another. doesn't care and will stil l operate properly.
Th ere's a simpl e way out of thi s bind. Put Figure 2 shows the word and timing
a signal on the tape th at not on ly tells you formats for the BIT BOFFER system. A
ones and zeros but also how fast the tape is typical system might use ASCII characters
go ing. Use the recovered speed information se nt in the Universa l Asynchronous Data
format that consists of a start bit, the ASCII
Table 2: Tone standards for BIT BOFFER code starting with the least significant bit, a
system. parity bit, an d two stop bits. The width of
eac h bit is set by the data rate.
110 baud: If we're working with 8 bit bin ary data
1 = 16 half cvcles of 880 Hz
0= 8 half cycles of 440 H z
instead of ASCII characters, we send a start
bit, eight bits of data beginning with the
300 baud:
1 = 16 half cyc les of 2400 Hz
least significant bit, an optional parity bit,
o = 8 hal f cycles of 1200 Hz and then two sto p bits.
600 baud:
Using the asy nchronous format, words or
1 = 16 half cyc les o f 4800 Hz characters can go on the tape with any
0 = 8 half cycles of 2400 Hz spacing between them. For the most
*This is the provisional standard resulting from effici ent use of tape storage, large blocks are
the BYTE symposium. recommended. For exampl e, cycling once

32
through a typical television typewriter sys- END
OF
tem's memory while driving a UART output WORD --J
(or reading input) would provide 512 charac- I
ter blocks corresponding to the 32 x 16
character display. With a microcomputer STOP STOP M.IIRK
system, block sizes can be chosen arbitrari ly (A) Universal asynchronous data format.
as a software convention. However,' the
overhead of starting and stopping the tape
can be minimized with larger block sizes.
The only preamble or ending needed on the STOP STOP MARK
character blocks is some "mark time" or a (B)
">'-ring of digital ones, similar to the initial
and final rubouts on a paper tape system.
Figure 2c also shows the timing standards BASE RATE 110 BAUD 300 BAUD 600 BAUD
for recording and playback for the various
data rates. Transmit time "t" 9.09 msec 3.33 msec 1.67 msec
±1 % ±1 % ±1 %
One problem you may have to allow for
in your system is overspeeding. Overspeeding Receive time 9.09 msec 3.33 msec 1.67 msec
(without adjustment) ::!20% ±20% ±20%
is caused by recording on a slow machine
and playing back on a fast one. The BIT Word time 100 msec 36.67 msec 18.33 msec
BOFFER can easily take care of this, but the Recommended max 7 .5 chari 22 chari 44 chari
word rate (allows second second second
system which is ultimatel y doing the
for overplay)
receiving and using the data has to handle
the faster rate. For instance, on a TVT with (e) Timing standards.
a single frame update, 60 characters per
second is the upper limit on entry. With a Figure 2: Data format and time standards for several data rates. The BYTE
Teletype, 10 characters per second is usually provisional audio cassette standard utilizes the 300 baud data rate;
tops. To beat this problem when interfacing communication with a Teletype requires a 110 baud data rate.
fixed speed systems, you simply hold the
character rate down a little when recording,
say to 75 or 80 percent of capacity. This is
done by having the data source wait several
tens of milliseconds between characters. If
the BIT BOFFER happens to speed things ----------..,
EXISTING SERIAL INTERFACE
r---L=~
up a little, the maximum rate is still under
what your system can accept.
Note that the overspeeding problem only
exists for systems which assume a fixed
FROM
input data rate from the interface. In the COMPUTER
typical microcomputer system, use of the OUTPUT
BUS
interrupt structure or status bits from the INTERFACE TO
interface can synchronize a program to the ~~~~~ ~:JifTTE
INPUT
actual received data rate . Since the program
is then synchronized to the received data FROM
bits (which are in turn synchronized to the ~--4~~~ ~:;~~TTE
actual tape speed), the combined micro- L -_ _..,......:""-_-l OUTPUT
TO
computer and BIT BOFFER interface COMPUTER
INPUT
becomes speed independent within the BIT BUS
INTERFACE
BOFFER's range of ±25% variation from
nominal.
A related problem that's also easy for you
to fix is that some of your peripherals may
need absolutely constant data rates. This is ·OR EOUIVALENT ,.p
particularly true of a Teletype, and the SERIAL I/O CHIP

playback rate of the BIT BOFFER may be


out of tolerance. To get around this, you
simply connect your UART's parallel
receiver outputs back to its own parallel Figure 3: Block diagram of the BIT BOFFER. The integration of BIT
transmitter inputs and retransmit at the BOFFER into a microcomputer system requires a UART or other existing
correct rate. This is particularly easy to do serial 10 interface. This is shown at the left in the block diagram. The
with ACIA type microprocessor interface connections to the recorder are shown at right. The BIT BOFFER proper is
devices with bi-directional parallel 10 lines. enclosed in the box in the middle.

33
19,200 Hz TXDATA command out of the serial inter-
64 X REFERENCE
face. This selectively divided clock is routed
16X UART CLOCK to an eight ·Ievel sine wave synthesizer
consisting of a four stage walking ring
'--_ _ _ _S_P_A~CE:.."_O'--_ _ _ UA RT SE RIAL DATA
MARK" I counter and a three resistor summing net-
work. The synthesized sine wave at this
r ~
---+Ic=='--J---II----+I______ _+_----- SYNTHESIZER OUTPUT point has no harmonics till the seventh and
LJ"""" ~ L=1'--_----'r ninth, both of which are over 16 decibels
down. The synthesizer is followed b'{ a. third
~ILTER OUTPUT order Bessell active lowpass filter. This pro-
vides a low impedance, one volt peak to pea.k
HALF CYCLE
OF 2400 Hz
HALF CYCLE
OF 1200 Hz
sine wave at the recorder AUX input.
Note that the UART serial output is
16 FAST B SLOW inherently synchronized to the UART clock
- - H A L F C Y C L E S - ! - - - - . H A L F CYCLES-- - -- SE~UENCE
FOR EACH "I" FOR EACH "0" input so that we always switch sine waves
(A) TRANSMITTER just before the leading zero. Feedback from
this switching edge is also used to synchro-
nize the divide by four via a pulsed reset
" I" "0" " I" generated in the C3-R2 network. This makes
O(\()(I(\OOOf\!\!\!\ OOOOOOOO[ sure all signals are properly pha.sed with
INPUT
J V V0 V11 0 VVVVV \TWO 0 VVV V respect to each other.
LIMITER OUTPUT
On playback (see figure 6), an input RC
ZERO CROSSING filter minimizes the hum and bias inter-
1111111111111111 I I I I I I 111111111111111111 I DETECTOR ference. It then routes the EAR output
______~ r MONOSTABLE OUTPUT signal to a high gain limiter that outputs a 5
"0"
DATA OUTPUT volt square wave whose zero crossings cor-
"I" 1\1 · " I" (LOCKOUT LOW)
respond to the zero crossings recei~ed from
111111111111111111111111111111111111111111111111 CLOC K OUTPUT the recorder. The actual crossings are
detected with the Exclusive OR circuit (IC4c
16 CLOCK CYCLES
PER "I"
16 CLOCK CYCLES
PER "0"
*" TYPICAL UART
and IC4d) that follows. This Exclusive OR
SAMPLE POINT
circuit outputs one narrow positive going
(B) RECEIVER
pulse per zero crossing. These pulses are used
to continuously discharge a timi ng capacitor
Figure 4: Key timing diagrams of the interface. These diagrams show the set up as a retriggerable monostable.
relationship of several waveforms in the BIT BOFFER: (a) The transmitter Between zero crossings, the capacitor is
section and (b) the receiver. allowed to charge at a rate set by the BAUD
AD JUST control. The CMOS inverter stages
An earlier version of the BIT BOFFER that follow (IC3c to IC4b, IC3d to IC4a) act
system was described in BYTE, September as comparators. Circuit timing is adjusted so
1975 . Note that this improved version elimi- that the monostable produces an output at
nates any dependence on the clock duty 3/4th the low frequency period, and nothing
cycle, works directly at higher baud rates, for the high frequency period. These output
and has no need to WOITY about phase pulses are present only during digital zeros
reversals insid e the recorder. Th e 300 baud and are routed to an output flip flop that
The complete tape cassette version of BIT BOFFER is compatible with regenerates the one and zero data. A lockout
interface for a micro- the provision al BYTE cassette data inter- on this flip flop, via the RESET input,
computer consists of the change standard. prevents zeros from being output during
BIT BOFFER hardware leader time, and recorder start and stop
About the Circuit intervals . This prevents the UART receiver
plus software to drive it.
Turn to Jack Hemenway's The block diagram of the BIT BOFFER from reacting to random garbage.
article for an example of appears in figure 3 with key wave shapes Meanwhile, the recovered clock pulses are
shown in figure 4. Transmitter and receiver added to the new clock pulses that you get
some tape control soft-
schematics follow in figures 5 and 6. The PC from the leading edge of the monostable
ware for this interface. and component layo uts are shown in figures during zeros-as-data times. These clock and
7 and 8. data outputs are routed to the UART
Our transmitter (figure 5) starts with a receiver serial data (RXDAT A) and clock
64X frequency reference, or 19,200 Hertz in inputs (RXCLK) for recovery.
the case of a 300 baud syste m. This is The .01 MF timing capacitor is set up for
divided by four with two type D flip flops 300 baud . This can be doubled for 150 baud
set up as binary dividers. The clock is or halved for 600 baud operation. Alter-
divided by one or by two, as selected by the nately, a larger value pot can be used,
pair of NOR GATES (lC3a and b), using the perhaps a mUltiple tum one. Sine wave filter

34
+5 .!£ TYPE POWER GROUND
capacitors in the transmitter portion of the I 4018 16 8
RI
circuit must also be changed for different 47K 2 4013 14 7
3 4011 14 7
baud rates.
SYSTEM
Checkout and Operating Hints INTERFACE C2
'--_ _ _~ 4011
100pF
For your first time preliminary checkout GND~
and setup, it's handy to have a scope
XC
available; but once you're set up properly
with a known good recorder, the circuit TX CLK
essentially takes care of itself with only one
non-critical adjustment. TX DATA o---+--+--l
To make an initial test, connect up +5
and ground and connect the reference clock
to a source of 19,200 Hertz. This can come
from a 555 timer; or, if you're using an .-- -R4 33K
existing data rate generator,. as a "300 baud, R5
22K
64X clock" or a "1200 baud, 16X clock." R2
47K
C3
100pF ~~K
Temporarily break the serial data input to +5 TO
the BIT BOFFER so you can connect it to +5 ----<1..---.
0-0 +5
RECORDER
+5 for a one, to ground for a zero, or to the \
UART serial output for data. l' CI
0.1 (BYPASS) "AUX·

Set the data input to a one and check for f-@JI

a clean one volt peak to peak 2400 Hertz


C7
.47
rh
C4 R7 RB
sine wave at · test point A in figure 5. Now 6200 33K 33K
switch to a grounded (zero) input and check
for an identical sine wave of half frequency.
rP R6
4.7K
Next, jumper the BIT BOFFER trans-
mitter output to its own receiver input and
Figure 5: Schematic diagram of the BIT BOFFER transmitter section.
check for a clean square wave at test point
"c" (figure 6). Now, monitor test point TONE"6
VOLUME" 6
] FROM
C8 RECORDER
"E". With the data input grounded, adjust RI3 .047 [
DISCONNECT
"EAR"
47K "AUX" INPUT
the BAU D ADJUST control to get a wave-
form that is positive between 25 and 30
I ~J2
CI5 +5
percent of the time. If you have no scope, 1000
RI4
10K RI7
use a voltmeter to set the voltage at test lOOK
point D to a 1.2 to 1.6 volt range on a 5.0 BAUD
ADJUST
volt supply. Now, switch to an input one,
and verify that this voltage and its waveform RI2 CI2
47K
goes to zero. .01

The next thing to do is to write a ~~~


program for your computer wh ich tries " __'1.--+-1
RIO RII +5
sending data through the BIT BOFFER- 2 . 2K 3 .3K
UART combination , displaying the trans-
mitted data on a Teletype, a TVT, or other
output device. Note that if you can't get the
BIT BOFFER to talk to itself, there is no
way in which it will work when you add a
recorder to the middle of the loop. If you
have no scope, use the optional but recom-
mended tuning circuit shown in figure 9. SYSTEM INTERFACE
If the BIT BOFFER passes its self trans- R X CL K 0-----.
mission test, select a recorder and connect it.
RX DATA
If your recorder allows it, monitor the EAR
output on a scope while recording. If the
sine waves look wrong, try adjusting the POWER GROUND
!£ TYPE
input signal level going into the AUX input, 4 4070 14 7
or select a different recorder. If the signals 5 4013 14 7
6 3130 7 4
going onto the tape look bad, what you get
CR DO NOT SUBSTITUTE 4030 FOR IC4
back will be even worse. The BIT BOFFER
should properly "echo" the message during
recording, provided your recorder has out-
put to the Ei\R iack for record monitoring. Figure 6: Schematic diagram of the BIT BOFFER receiver section.

35
Photo 1: The assembled
BIT BOFFER built from
the board layout of figure
7. The parts can be identi-
fied using the placement
diagram of figure 8.

Now we're ready to record some data. on line operation. If yours does, unplug the
Use a high quality, audio cassette tape, and A UX input during playback. Check for
record a character sequence generated by a reasonable appearing sine waves at test point
TVT or a microprocessor program. [See Jack "B". Try various settings of the volume
Hemenway's article in this issue for an control and tone controls. Usually settings
example. Ed.] of "5" for volu me and "7" for tone are
During playback, monitor test point "B". optimum. .
Some recorders get unhappy if you connect Now, set up an oscilloscope and look at
both the AUX input and the EAR output at the eye diagram as shown in figure 10. You
the same time during playback, particularly should get this same pattern at test point
"C", with only a small amount of jitter. Set
your BAUD ADJUST control to sample in
the center of the right eye. If you can't get
the jitter down far enough that this sampling
is perfectly clean, stop and find out why.
Use the optional tuning circuit shown in
figure 9 if you have no oscilloscope.
If all this works, you should now be able
to reliably record and playback data of your
choice. Above all, get to know your recorder
and know what its limits are in the way of
input level, tone, jitter, and volume settings.
Note particularly that any second harmonic
distortion of the recorder must be held
down to something reasonable or alternate
zero crossings will jitter. Your eye diagram
tells all about the quality, jitter, and error
rate of your system. Learn to use it. (By the
way, don't make the mistake of using a dual
channel scope on alternate vertical inputs, as
Figure 7: Printed circuit layout of the BIT BOFFER modulator. A board this can mask any second harmonic jitter.
with this pattern is available from Southwest Technical Products Corporation, Use a single trace or else chop the display.)
219 W Rhapsody, San Antonio TX 78216. Also available is a kit of parts for Note that you can get continuous data for
the BIT BOFFER, a kit which contains a UART interface to mate with the debugging by connecting the receiver RDY
S WTPC 6800 system, and a kit of parts for the tuning indicator. output to the transmitter KP input. You

36
Table 3: Error rate hardening techniques for ~
premium systems.
BIT BOFFER
*CLOCK PLL
A phaselock loop on clock output can fill in
occasional missed clock pulses. Present sys-
tem only allows six mi sses per word.
*DATA INTEGRATION
Analog integration or speed·independent
majority logic voting takes average of
several seq uential half-cycles. Present syste m
depends only on UART sampled mid-bit word .
*ERROR FLAGS
Parity, overrun, and framing error flags already
in UART circuit can be used to stop loading if
error occu rs .
*FULL CR DECODE
Some TVTs interpret any machine command
as a carriage return. Limiting decoding to
proper command minimizes severity of display
errors.
*LOCKOUT Figure 8: Parts placement overlay for the BIT BOFFER circuit board.
Existing lockout circuit can be used to di sa ble
reception during tape start, leader, and stop
times.

may haye to momentarily short thjs line to Figure 9: Tuning circuit board, overlay and schematic.
ground to start the action. ADJUST BAUD RATE
Once you're confident of your BIT CONTROL TO CENTER
FROM OF LED "OFF" RANGE
BOFFER, you're ready to exchange data. If TEST POINT
"E"
you get an outside cassette, it should Vlork 10 R LED I'
13 330
without adjustment, if it was recorded prop- 5
0 Q +5
FROM
erly. If you get errors, simply use your RECEIVER C
DATA 3 2 II
tuning indicator and rotate the BAUD OUTPUT
Q
CD 4013 (CMOS)
AD JUST control to note the two limits (RD)
8 +~ -14
where serious errors start, and then set the GND-7

pot halfway between these limits. Better yet,


use your scope and the eye diagram to
proper ly set this control. In actual day to
day use, this pot is quite uncritical. Don't
forget to change capacitors or use wider
range control if you make wide changes in
the data rate.

Some Modifications
"Make it cheaper" and "make it better"
are usually the name of the game in any new
electronic system. What can we do to further
improve the BIT BOFFER? A TUNING INDICATOR
The error rate seems acceptable for most
hobbyist interch ange uses as is, but there are If you don't have an oscillo- low, you'll get one too many
scope for your initial testing or or one too few clock pulses
many things you can do to "harden" the don't want to tie one up for for each string of zeros. The
error rate for a fully professional and reliable eye diagram testing of incom- tuning indicator works by
system. ing tapes, you can use this checking for an odd or even
Some hardening techniques are listed in simple tuning indicator in- number of monostable pulses
table 3. Careful adjustment of the baud rate stead. When the light emitting during zero times. It then
diode is out, your data rate stores th is odd-even informa-
control, using the tuning indicator on a control is properly set. Adjust tion between zero strings.
scope eye diagram, is a first and foremost the data rate control to th e Very nicely, the tuning indica-
line of defense against errors. You can add CENTER of the off portion of tor will often indicate trouble
an output phaselock divider loop to recon- the display. The light emitting BEFORE it causes errors,
diode should stay off while thanks to the UART being
struct and more evenly space the UART able to withstand a few extra
good data is being received.
clock pulses. This fills in for an occasional If your data rate control is or a few missing clock pulses
miss. The present system allows up to six or set slightly too high or too per word without error.

37
OPTIMUM INPUT CHARACTER STRING
SETTING
SYNC SCOPE ON ' 0 "

(,-----,I____ i - - ![
EYE DIAGRA M ON 'c"

-------------r---j DATA RATE ON ' E "

(A) IDEAL EYE DIAGRAM


64X
CLOCK
EXCESSIVE SECOND RECORDER VOLUME
II HARMONIC
DISTORTION
TOO HIGH - LIMITING UART
XMIT
DATA

16X TO
CLOCK RECORDER
TO 'AUX'

~\
NOISE OR HUM ·· TRY DISCON -

CKJ
_..J:1''->o.__''''
RECORDER VOLUME
TOO LOW OR POOR
TAPE QUALITY
\\IN Vii NECTING AUX INPUT DURING
PLAYBACK
UART

(A) TRANSMIT
INPUT

FROM
RECORDER
' EAR'
I III I TOO MUCH
DELAY GROUP
DISTORTION
'J ~ORMAL PATTERN OUTPUT
I
'--__-"-'-+-'-j~ EC HO MODE
I
16X
TOO LITTLE GROUP DELA Y CLOCK
(B) TROUBLESHOOTING INTENTIONALLY USED ; COMPENSATES
FOR PLAYBACK BY SWITCHING TO UART
BEFORE ZERO
DATA

Figure 10: The "eye" diagram is useful for initial set up and testing of the (6) RECEIVE
receiver of the BIT BOFFER interface. This diagram can be displayed on a
two-channel oscilloscope set up to trigger on test point "D" in the circuit.
The scope should be set for a "chopped" display, and the sampling edge can Figure 11: A possible future development of
be observed at test point "E" along with the data eye found on test point the system is a simplification of the circuit
"C". using only three integrated circuits.

so misses per word received . You can add coding but defaults to a carriage return if
data integratio n to "vote" on what consti- you don't do your decoding properly.
tutes a one or a zero. In the present system, If you're running your BIT BOFFER
only the middle bit is a ll the UART samples above 600 baud, you can try making the
for valid data. If this bit happens to be high f req uency sine wa ves bigger by pre-
wrong, you lose. Voting can be done with a emph as izing them. This is simply done using
RC network, or a shift register and a a CMOS 4066 analog switch to change the
majority logic gate. The analog method is load resistor on the sine wave synthesizer.
cheaper, but the shift register scheme is data Pre-emphasis can eliminate much of the
rate independent. recorder's differential gain to higher fre-
You can use your lockout to prevent data quency signals. Since most automatic leve l
entry during recorder leader, start, and stop controls are a fast attack, slow rele ase type
times. You can use your existing error flags of device, they won't excessive ly interfere
on the UART output to automatically stop with this particular type of amp litud e modu-
TVT data entry or playback if a parity, lat ion, so long as the normal or ma rk state
framing, or overru n error happens. As noted corresponds to the high er freq uenc y and th e
earlier, these flags can be used with your higher amplitude.
computer software. You can prob ab ly come up with some
If you have a TVT that uses any con trol other schemes for further error rate har-
signal as a carriage return, add a decoder to dening on your own.
detect only the valid CR signal as a return Can we make it cheaper and simpler?
and ignore all other mach ine commands. Figure 11 shows a three IC system that's still
This eliminates errors that tear up the whole under evalu ation . The receiver uses a quad
display. For instance, a single long tape automotive comparator to perform zero
dropout can be read as an ASCII null crossing detection (1 and 2), reset the timing
command. It gets ignored with a full de- capacitor (3), and sense the capaci to r voltage

38
(4). This is routed to a dual D flop that Photo 2: This is how the BIT BOFFER
detects ones and zeros with one side and mates with a Southwest Technical Products
combines the clocks with the other. A dual Corporation UART adapter board in a
four bit shift register is on e possible route to "piggy back" fashion. See the caption of
a simpler transmitter. The actual circuits are figure 7 for information on where to get the
still under test. interface parts.
Let us know your experiences with the
BIT BOFFE R system so that further
improvements can be made, particularly to
handle your particular uses for this simple,
speed tolerant, software independent cas-
sette interchange system.-

39
Digital Data on Cassette Recorders

(The Demise of an Overworked Carry-Corder)

Ha rold A Mauch Nearly everyo ne has a portable cassette Tops on the convenience list is a digital
Pronetics Corp recorder_ If you don't have one, chances are tape counter. Next to destroying a valuable
PO Box 28582 your kid does ("Hey, Mom, Dad sto le my recordi ng, nothing is more frustrating than
Dallas TX 75228 tape recorder !"). Th ese recorders range from not being ab le to find a desired program on a
the under $20 "bare bones" var iety to multi cassette with several programs. The tape
centibuck units with nearly every feature counter solves this probl em. Merel y reset the
imaginable. Fortunately it shoulg pe possible counter with the cassette fully rewound and
to use near ly any cassette recorder avail ab le write the cou nter reading of the start of each
if it is clean and in good working condition . program on the cassette label. Some of the
Pawnshops and similar outlets are good newer cassette recorde rs also have cue and
sources of used cassette recorders. Used review capability. Wh ile occassionally useful ,
recorders are often quite dirty and may need these featu res are not really necessary_
repair. Take alo ng a couple of test cassettes A recorder with an AC bias and erase
when you go shopping and check out the oscillator will produce the most reliable
units' operation before buying. performance and highest quality recordings.
Watch out for bent capstans and broken Unfortun ate ly most of the und er $100
cassette ho ld ers since these often are not cassette recorders now available erase and
repairable and indicate excessive ab use. bi as the tape with DC.
Some dictating and "pocket secretary" DC erased and biased recordings have
cassette recorders do not use a capstan drive more low frequency noise and residuals and
system . While these recorders are usabl e, it poorer high frequency response than AC bias
may not be possibl e to exchange programs record ings_ Cassette recorders des igned for
recorded on these machines with a fr iend . music recording usually have circuitry to
Stick with the capsta n driven recorders . erase and bi as the tape with a 50 to 100 kHz
While nearly any cassette recorder is signal. These same recorders usually have
usab le for storage of digital information, drive motors wh ich are speed controlled by
some units have features which improve th e power lin e frequency. Th e res ult is more
perform ance or co nvenience. precisely driven and recorded tape. Since
ICla +5
LSB 26 34
27 35
2B 36 +5
8 BIT 29 UART 37
PARALLEL TRANS - 10K
INPUT 30 MITTER 38
31 25
32 ICBc 3
33 1/6
4049
9
MSB 22 10 15
2
OK TO LOAD JSQ AUX (500mV
23 P-P)
LOAD '"V' 13 C
R2
40 10K
II
KR
MIKE" (50mV
12 P - P)
IC2 a R3
IK
4800 Hz

Figure I: Cassette digital modulator. This circuit converts 8 bit parallel data from a computer
into a series of 2400 Hz and 1200 Hz tones using a VA RT. Filtering provided by CI and R 1 is
used to' turn the square wave outputs of IC2b into a closer approximation of a sine wave (see
figure 2).

40
these are normally stereo recorders, be sure Getting the Digital Information
to bu Ik erase the cassette first to remove the onto the Cassette
residual signals between the stereo tracks. If There are many ways to record digital
you apply the signal to be recorded to both information on audio cassette tapes. Many
channels, the resulting recording will be of these techniques work quite well as iong
usable on any of the portabl e cassette as the data is played back on the same
pi ayers. machine as was used to make the initial
The cassette tape unit you select must recording. Rather than debate the merits and
have an auxiliary (AUX) or microphone deficiencies of the various techniques, the
input and a line or earplug output. Thi s is author has chosen to support the proposal
the only reasonable way to connect the suggested for evaluation by the BYTE spon-
cassette tape un it to the necessary sored symposium on audio digital cassette
modulator/demodulator circuitry. Acoustic recording. I feel th e proposal adequately
coupling through the microphone and accommodates the limitations imposed by
speaker is totally unsatisfac tory . conventionally available audio cassette tape
Pause controls are nice bu t not necessary. units.
Use the cassette tape unit available to Digital information from your computer
you, but remember you only get what you is generally available as 8 bits parallel from
pay for and these days eve n that costs more . an 10 port or data bus. The recording on
tape must be serial with start and stop
Choice of Cassette and Tape delimiting bits. The transmitter portion of
The choice of cassette cartridge and tape the UART is ideal for converting the parallel
has more effect on performance than a/l data to this ser ial format. Figure 1 is a
other factors combined. This is no place to circuit implementing such a converter or
save a penny or even a buck. Get the very modulator.
best tape you can buy. Do not even consider The ser ial output of the UART is said to
anything less than the super tapes. If your be NRZ (non return to zero). It means that a
recorder can record the chromium dioxide logic one bit is a high level and a logic zero
tapes, use them. Anything less than the best bit is a low level. A logic one causes the
will result in much frustration. Avoid using modulator to generate a 2400 hertz output
the C90 and C120 cassettes. The tape is too signal and a logic ze ro generates a i200 hertz
thin and fragile. C60 and shorter tapes are signal. Norm al output from the modulator is
much more rugged. a string of sq uare waves. The sharp edges of
If a cassette is not in use it should be the square wave signal do not usually record
stored in its container in a dust free location. well on recorders with DC recording bias.
Keep the cassette tape unit spotlessly clean The des igners of such recorders "ro II 0 ff"
and do not smoke in the room in which the the amplifier low frequency response and
cassette equipment is used or stored. boost high frequency response in an attempt
It is impossible to adequately stress the to diminish th e drawbacks of DC biased
importance of buying th e very best quality recording. This causes a square wave to be
tap e and then keeping it and the tape unit abnormally "peaked" on th e rising and
clean. Tape quality and cleanliness is much falling edges and th e flat portions to be
more important in digital applications than "tilted." Refe r to figure 2.
in the more conventional speech or music Such signals are more Iikely to cause
applications. errors during playback. Ideally the modu-

Figure 2: If a square wave


signal such as waveform A
B is recorded on a low cost
cassette recorder, the play-
bad? response may look
liI?e waveform B, which is
very difficult to demodu-
c late. If the square wave is
filtered with a low pass
filter before recording
(waveform C), the play-
back response will look
o like waveform D, which is
a usable signal.

41
lating signals shou ld be sine waves but If th e UART is not transmitting any data,
ge nerati ng and switch in g si ne wave signals its se ri al o utput line is high, causing the
digitally is so mewhat co mplicated . mod ul ator to generate the 2400 Hz signal.
"Rounding the squ are wave corners" with a
low pass filter (R 1 and C1 in fig ure 1) is not
totally effect ive but does provid e a usable Playback of the Recorded Data
waveform. Since the signal recorded on tape is
Th e AUX output is a 500 mV peak to bas icall y a standard FSK (freq'uency shift
peak signal. This signal leve l will ove rdrive a keyed) signal, it is possib le to recover the
micro ph o ne input and shou ld o nl y be con- di gita l sign al with a ph ase locked loo p (PLL)
nected to the reco rd er auxiliary input (50 or FM discriminator. In fact, users of the
kOhm o r greate r input imped ance). Th e Suding cassette syste m (wide shift audi o
MIKE output is 50 mV peak to peak and FSK) should be ab le to recove r th e N RZ
will drive most cassette mi crop hone inputs. data sign al by readjusting their demodula-
Th e 4800 Hz signa l shou Id be as precise tors. However, data recove ry by these means
as possibl e and capabl e of driving 2 TTL is not as preci se nor as insensitive to tape
loads. Id ea ll y it shou ld be obtain ed from a speed variations as digital recovery tech-
crysta l osci ll ator and divid er string or a niques which extract speed insensitive timing
phase locked lo op (PLL) locked to the pulses from the recorded signal and use these
power lin e frequency. If such stabl e sources pulses to ret ime the NRZ d ata.
are not ava il ab le the circuit show n in figure Figure 4 is a co mplete schematic of the
3 is sat isfacto l'y but it mu st be acc urately playback recovery cil'cuit o r demodul ator.
ad justed with a freq uency coun ter. Th e cassette earp lug o utput sig nal is
con dition ed by the ope rati ona l amp l ifier
Schmidt trigger IC3. IC4 is a ret riggerabl e
+5
ADJUST FOR
one shot with a period of 555 mi croseco nds.
5K 4800 Hz
OUTPUT +5
As long as th e 2400 Hz signal is being
rece ived , the o ne shot is co nstan tl y retrig-
Figure 3: Circuit of a 4800 8 .2K gered and does not time out. Thi s cau ses flip
Hz oscillator. This oscilla- 7 flop IC 5a to remain at th e high state
r---~ 4800 Hz
tor, using the 555 pre- interpreting th e data as a logic o ne. When
cision timer circuit, can be 10K the 1200 Hz sign al is received , its period is
used if a crystal controlled long enough to allow the o ne shot to tim e
or line frequency derived 2 out. Flip fl op IC5a is immedi ately reset. It
timing source is not wail- stays at the low state as long as th e 1200 Hz
able. 1. 01
signa l is being received, because the one shot
.01 is ti med out whenever the next trigger ing
l'MYLAR
edge occ urs. Wh en the 2400 Hz signa l
returns, the o ne shot o utput stays high,
thereby permitting the flip flop IC5 a output
If the avai lable digital info nnati o n to be to sw itch to its high state. Th e outp ut of flip
recorded is already in se ri al form with the flop IC5a is the recove red N RZ se ri al data.
necessary start and sto p bits (2 sto p bits arc Under id ea l circum stances, the recove red
req uired) and is being se nt at 300 baud, the data would be suffici ently stable to drive a
UART transm itter is no t necessa ry. How- 300 baud teleprinter o r TV typewriter
eve r, the 4800 Hz clock ing signal sho uld be directly. However, if the tape speed varies in
sy nch ro no us with the se ri al digital info rm a- excess of ap proxim ate ly ±6 perce n t (a co m-
tion ("16 clock pul ses per bit). If the in fo rm a- mon occu rrence), errors will resu lt. Since th e
tion is se ri al but at so me I'a te slowe r th an 1200 and 2400 Hz signals can-y ing the
300 baud, it will be necessa ry to usc a digital inform ation o n ta pe will vary in
UART rece ive r to fir st co nve rt th e info rm a- frequency directly with tape speed vari-
tio n to parall el form. It is th en loaded into ations, it is poss ibl e to Li se th ese signals to
th e UART transmitter as desu ib ed ea rlier . acc u ratel y reti me the recovered data. Flip
When th e UART tra nsm it te r is read y to fl ops IC6a and IC6b extract this timing
accept a parall el byte o f data, the OK TO infor mati on.
LOAD line will be high. Data on the eight Wh en the 1200 Hz signal is rece ived, IC6a
parall el input lines is loaded in to the UART is prese t with a pulse generated by C8 and
transmitter buffel's by pul sing the LOAD R15 eve ry time the one shot tim es out. The
lin e low for at least 1 microseco nd o r until effect is to cause IC6 to ac t as a di vision by
the OK TO LO AD lin e goes low. The two. Wh en th e 2400 Hz sign al is bei ng
transmitter will sta rt tran smittin g th e byte received, the one shot does not time out and
or character whe n the LOAD lin e is return ed IC 6 acts as a divide by fo ur . The result is a
to the high state. double clock rate at the o utput of IC6b .

42
C4
.005
(MYLAR) IC5a
1/2 4013
+5 -12

2 5 MSB
ICBa ICI b
1/6 4049 6
7
5 4 20
DATA B B BIT
RI2 9 PARALLEL
lOOK UART OUTPUT
10
RECEIVE R
II
12

19 LSB
DATA AVAIL .
6 17 16X 18 RESET DATA
+12 I -12 CLOCK
IC6a 4 AVAIL . V
II OUTPUT
C3 C - 12 ENABLE
.00 1 R 0
R6
10K 10

IC 3a
1/4 LM324

R5 R7
lOO K 470

R4
lOOK
Figure 4: Cassette data
C2
recovery circuit. This cir-

~,::,,", cuit shares the VA RT with


figure 7. The operation of
the recovery circuit is
described in text.

In stead of clock ing the data into a shift must remain at log ic ze ro for a minimum of
register, it may be more des irable to usc the o ne microsecond o r until DATA AVA IL -
receiver portion of a UART, since the UART ABLE drops to log ic ze ro .
receiver has built in circuitry to identify the
beg inn ing and end of each byte or character
automatica ll y. Furtherm ore, the UART Ci rcuit Adjustments
parall el data o utputs arc 3-state, whic h As already stated, the 4800 Hz signal
permits conve nient direct connection to used to dr ive the UART transm itter and
most 10 ports or data bu ses. (For a mo re mod u late the tape record er shou Id be
detai led discussion of th e UART, yo u may obta in ed from a very stable and accurate
wish to read "Seri al In terface" by Do n source for best results . No other adjustments
Lancaster in BYTE, September 1975) . are necessary on the record er modu lation
Howeve r, the UART require s a clock at ci rcu its.
16 times the data rate. Thi s problem is Th e data recover y one shot and the ph ase
so lved by phase lock ing an osc ill ato r at 4800 locked loop oscillator in the pl ayback data
Hz to 600 Hz (2X) o uput of IC6b. recovery circuits mu st be accura tely adj usted
The phase lock ed loop (PLL) osc ill ato r is for best results. The most crit ical ad justment
adjusted for 4800 Hz in the absence of any is the period of the data recove ry one shot.
input signal. ICSb and IC9 divide the PLL An easy way to adjust the per iod is to
osci ll ato r outp ut by eight and drive one of connect a we ll ca librate d audio osci ll ator to
th e PLL ph ase detector inputs. Th e o ther the earplug input of the data recovery circuit
phase detector input is driven by the 2400 and a high imped ance vo ltmeter to the NRZ
Hz clock output of IC6b. data outp ut (IC Sa pin 1) . Set the audi o
Wh en th e UART receiver recogni zes that osc ill ator for 1800 Hz and the output leve l
it has received a comp lete character, it raises for 1.S to 3.S volts RMS . Adjust R9 until
its DATA AVAILABLE output lin e to log ic the voltm eter read in g just changes (u sc the S
one (high leve l) . Sin ce the UART outputs to lS volt sca les). Get the adjustment as
are 3-state, it is necessary to drive the close to the poin t of cha nge as possib le.
RECEIVED DATA ENABLE input to log ic Th e PLL osc ill ator is adjusted for 4800
ze ro (low leve l) to read the para ll el ou tput Hz (R12) with no co nnecti o n to the earplug
data. After the parall el data has been read , it input. If a frequency counter is not ava il-
is necessary to pul se the RESET DATA able, compare the PLL osc ill ator .o utput
AVA ILABLE line to prepare the UART to (IC7 pin 4) to the 4800 Hz signa l used to
output the next byte or character. The pu lse drive the UART transmitter.

43
Operating Procedure des igners a starting point for ad ditional
The pl ayback data recovery circuit will experimentation and o ptimiz ation . Th e com-
ope rate best with an ea rplug output sign al of ments are somew hat technical and are
betwee n 4 to 10 volts peak to peak. Th is is intended for the advanced ex peri menter or
within th e range of most portab le cassette designer.
record ers. It may be necessary to put a low Modulator Waveform
gai n amplifier ahead of the data recovery
circu it if yo u are usin g a cassette tape deck The nonlin earity and skewed frequency
not capable of driving a speake r directly . It response of most low cost cassette record ers
may be necessary to tum down the playback impose serious limitati ons on th e waveform
tone co ntro l if the tape was reco rd ed on a of the record ed signal. In severe cases, the
DC biased reco rd er'. waveform recovered from a square wave
To comply with th e BYTE Sym pos ium input may be so seriously "tilted" and
Standard , the recorded bl ock of data on tape "peaked" and fill ed with overshoots th at
mu st have a minimum of five seco nd s of the data recovery is impossible. Obv iously a
2400 Hz tone befo re data is r·eco rd ed. Thi s is bette r modul ating signal would be a sine or
eas il y obtained by permitting the record er to tri angul ar waveform. On th e other hand ,
run in th e record mode for fivc seconds or "doctoring" the square wave with filters is
longe r befo re se ndin g data to thc UART attractive from an economic viewpoint . Such
transmitter. When thc UART is idl e the filter ing can onl y be carried so far before the
modul ator is generati ng 2400 Hz. resulting differenti al amplitude of the two
Du ring play back it is recomme nd ed that mod ul atin g frequencies produces "pumping"
yo u wait unt il th e pl ayback is one or' two of the record er automatic level control
seconds into the 2400 Hz "leader' " befo re circuits and begins to diminish the signal-to-
all ow ing the computer to accept the UART noise ratio and signal drop out margins of
rece iver output. Thi s is to avo id reading the higher of the two modul ating fre-
"trash" caused by turning the cassc tte tape qu enci es. Eco nomical generation of a better
unit on and off. modul ating waveform will go a long way
It is possibl e to turn the cassette tape uni t toward improving data recovery reliability
on and off with a r'e lay und er' compu te r' with simple recorders.
program co ntrol using the cassette tape unit
remote contro l input. However, th e cassette Modulator Signal Level
will reco rd and playb ack "t rash" during the The signal leve l applied to the recorder
sta r·tup and stop interva ls which may take as appears to be relativel y un critical. However,
long as 3 to 5 seco nd s. The 2400 Hz signal I feel the leve l should be standardized; but I
recorded o n tape before each block of data am not prepared to recommend a preferred
gives the co mputer a "trash frec" interval in leve l at th e prese nt time.
wh ich to pr'e pare itse lf for the data to
fo ll ow . Demodulator Signal Conditioning
Many expe rimenters have used simple
Circuit Design Considerations ze ro crossing comparators to condition the
It will be some tim e before enough pl ay bac k sign al. Whil e these circuits have
informat io n has bee n learn ed abou t the use tremendous immun ity to signal drop out,
of audi o cassette r'ccorde rs for storage of they are quite se nsitive to "drop in noise"
digital in fo rm at io n to pe rmi t tru ly op timum and tend to "chatter" at low signal levels or
designs of the nccessary modul ator/ in th e abse nce of an input signal. I prefer a
demodulator circuits. Thcrefo rc thc auth or circuit with suffic ie nt hysteresis to provide
would lik e to present hi s design co nsid cra- so me margin aga inst the drop in noi se and
tions to provide othcr exper imenters and residuals and to preve nt chatter. Th e idea l

j--
I
MARK
(LOGIC ONE)
I SPACE-j_MARK---j
I
(LOGIC ZERO) (LOGIC ONE) I
SIGNAL TO BE
RECORDED (AU X)
Figure 5: Cassette modula-
tor demodulator wave CONDITIONED PLAY -
forms. Th e signal pre- BACK S IGNAL (lC3a)

sented to the tape recorder RECOVERY


ONE SHOT (IC4)
is a filtered square wave,
shown at the top. The RE COV ERED
NRZ DATA (I C5a)
timing of data recovery is
shown relative to the con- IC6a

ditioned playbacl? signal in IC6b


the remaining five traces. ( 2X CLOCK)

44
trip points for such a circuit is pro bably in
the range of 20 to 30 percent of peak
signal. Th e trip points of the circuit
described in this article are approxim ate ly
±0.5 volt. Best perform ance will then be ", '".~<:,;,:';;r:)f!i,~~~
obtained from 3.5 to 5.0 volt peak to pea k
. UN BELl EVABLE!!!!!
~.,
' , ' ' . ' ' "
, '
input signals.
'> ', '
· The Intecolor®8001 Kit

I
.
Demodulator One Shot ·· :
'
A complete 8 COLOR Intelligent
CRT Terminal Kit
If the one shot is proper ly adju sted, the
data is recoverabl e with tape speed var iation
'f . "

$1,395
in excess of ±30 percent from nomin al
speed. I have found the speed di stributi o n of " ~
the portable cassette tape uni ts to be skewed
roughly 5 perce nt nega tive . If a tape is " Complete" Means
pl ayed on th e same unit as was used to make • 8080 CPU· 25 Line x 80 Character/ Line' 4Kx8 RAM / PROM Software
th e recording the probl em is neg ligibl e. If, • Sockets for UV Erasable PROM' 19" Shadow Mask Color CR Tube
however, the tape was prepared on precision • RS232 I/ O· Sockets for 64 Special Graphics' Selectable Baud Rates to
9600 Baud' Single Package' 8 Color Monitor· ASCII Set
tape recording equipment (such as may be • Keyboard· Bell' Manual
used for mass production of cassettes fo r And you also get the Intecolor®8001 9 Sector Convergence System for
widespread di stribution), then pl ayed o n a ease of set up (3-5 minutes) and stability.
consu mer quality tape pl aye r, the tolerance Additional Options Available:
• Roll' Additional RAM to 32K • 48 Line x 80 Characters/ Line' Light Pen
of the recovery circuit to a dec rease in tape • Limited Graphics Mode' Background Color· Special Graphics Characters
speed will be diminished. Thi s may prov id e • Games
some arg ument for increasing the period of ISC WILL MAKE A BELIEVER OUT OF YOU,
the one shot 5 percent. co Send me (no.) Intecolor® 8001 kits at $1,395 plus $15.00 ship-
"-
A characteristic of the data recovery N ping charges each.
W
circuit used is th at it causes an ap prox i· (L Encl osed is my D cashier's check, D money order, D personal check*
D $350 deposit/ kit for C.O. D. shipment for $ .
mate ly 6 percent marking bi as in the NAME ____________________________________________
recove red waveform. Thi s is no t too imp or· ADDRESS _________________________________________
tant if th e data is recove red by a shift
CITY___________________ STATE ________ ZI P____________
register or clocked into a UART receive r. A


puri st approach would delay the space to ' Allow 8 weeks clearance on personal checks

mark transition 6 percent of th e nomin al bit


cell duration. Intelligent Systems Corp 4376 Ridge Gate Drive, Duluth, Georgia 30136
Some exper imenters filter th e recove red .® Telephone (404) 449-5961
data waveform to provid e an additi o nal
immuni ty to error. I have not found it to be
necessary and have found it creates more
problem s th an it solves. Conclusion
The usc of hardware to modulate and
Demodulator Phase Locked Oscillator demodul ate the cassette tape simpli fies the
The PLO is o nl y necessa ry because the programmin g pro bl ems assoc iated with using
UART requires a clock at 16 times the data the cassette for program load ing and storage.
rate. Th e ph ase detector output is filtered In so me circum sta nces it may be poss ibl e to
with a lag-lead network . Th e filter was co nn ect the cassette hardware interface
des ign ed to permit capture of signals ±15 directly to yo ur pa nel switches and di sp lay
percent fro m nominal speed with a 0.707 drivers and "let it rip ." Other sy stems may
damping factor. Consequently, th e osci ll ato r require per iph eral interface adapte rs or other
will rem ain locked during ±15 percent ste~ similar circuitry to get the data o nto and off
changes of the input signal frequency. On ce th e co mputer data bu s.
locked, the oscillator will trac k the input Th e cassette interface descr ibed in this
signal over a ±70 percent range. Th e sum arti cle is manufact u red by Pro ne tics Cor-
freq uency component of the ph ase detector po ratio n. It is ava il abl e full y assemb led and
output does modul ate the oscillator slightl y tested o n a 4.5 x 6.5 in ch circuit card with
but was not considered to be a probl em. connections through a sta nd ard du al 22 pin
Thi s modulation ca n be dimini shed by gold plated card edge co nn ecto r. Price,
increasing the loop filtering; howeve r, this ava il abil ity, and ot her information may be
redu ces the capture range which is obta in ed by writing: Pronetics Corporation,
undesirabl e. PO Bo x 28582, Dall as TX 75228. ·

45
Microprocessor Update:
The CP1600 is a co mpl ete, 16 bi t, single PIN ASSIGNMENT
chip, MOS-LSI microprocessor avail abl e di- 40 PIN DUAL IN·L1NE PACKAGE
rectly from General In strum ent for $99 in
single quantity. It utili zes third ge nerati on EBCI ••
I 40 pelT"
mini compu te r architecture as show n in th e MSYNC* 2 39 GNO

bloc k di agram in fi gure 1. Figure 2 shows BCI 3 38 fill


BC2 4 37 02
th e actual pin assignments of th e 40 pin
BOIR 5 36 voo
dual-in-line package . Stand ard operating 015 6 35 vee
voltages required are: +'12 V, +5 V, and - 3 014 7 34 vcc
V DC. Th e simpl e bu s stru cture is TTL 013 8 33 BOROY
compati ble and all ows direct me mory access 012 9 32 STP5T"
011 10 31 BUSRQ"
(DMA) capabili ties fo r hi gh speed data
010 II 30 HALT
transfers. 09 12 29 BUSAK*
Robert Baker 08 13 28 INTR"
34 White Pine Dr Microprocessor DO 14 27 INTRM *
01 15 26 TCI
Littleton MA 01460 Th ere are eight high speed, ge nera l pur- 07 16 25 EBCAO
pose 16 bit registers avail abl e with R6 06 17 24 EBCAI
reserved as th e stack po inte r (SP) and R7 05 18 23 EBCA2
reserved as the program coun te r (PC). The 04 19 22 EBGA3
03 20 21 02
stack poin te r (R 6) indirectly ad dresses a
dynami c last in , fi rs t out storage area ca ll ed
a stack. It is used to hold interrupt and 'ACTIVE LOW LEVEL

nested subroutine return addresses as we ll as Figure 2: The pin connections of the


general data. Thi s prov id es unlimited stack CP7600 microcomputer. This 76 bit general
purpose computer is contained in a 40 pin
package with multiplexing of address and
data information.

"'~
v, <
v"
GNO
01
en
MS v NC
PROC ESSOR
CONTR O L EBCAO
EBCA I
ES e A ]
fB CA)

EB C I

I
STP ST
H A LT
pe lT
TC I
BDROY
INTA
INTRM
Bu SRQ
Bu S BU SAK
CONTR O L
RI
R]

BC I R)
BC] R4
BOIR R5
ISP I R6
[ PC I R1

Figure 7: Internal block diagram of the CP7600. This machine uses a general register
architecture with two of the eight available registers dedicated to the stack pointer and program
counter functions.

46
General Instrument CPI600
depth and self identifying nested interrupt No special input/output instructi ons are
or subroutine capabilities using external required since 10 data is manipul ated just
RAM memory . like memory data using any of the 87
A 5 MHz, 2 phase clock provides a avail able, general purpose instructions shown
microcycle time of only 400 nanoseconds. in Tabl e 1.
Thus, register to register operations take The basic instruction word format con-
only 3.6 microseconds while memory to sists of 10 bits located in the lower order bit
register and input/output operations require position s of a 16 bit processor word. The
only 4.8 microseconds . Full instruction high order six bits of every 16 bit word
execution times range from 1.6 to 4.8 supplied to the processor as an instruction
microseconds. word are ignored by the intern al micro-
Four addressing modes (immediate, control logic. Thus, a single 10 bit wide
direct, indirect, and rel ative) with a 16 bit ROM instead of dual 8 bit wide ROMs may
word length allow direct addressing of 64 K be used where ultim ate ROM bit efficiency
bytes or 32 K words of memory or periph- is desired.
eral devices. Since a single address bus Th e branch on external condition
structure is used, both memory and periph- (BEXT) in struction allows up to 16 external
eral devices reside in th e same address space. digital sign als to be sampled by th e program
Only the user defined system address all oca- with a program branch executed if the test is
tion differentiates memory from 10 devices. true. Continued on page 50

Voo v ee V aB
MSYNC '12V '5V 3V

EBCAI
EBCA2
CPI600
MPU
BCl
BC2
BOIR
BUSRO
BUSAK

8T26

ADDRESS
REGISTER

ADDRESS &
CONTROL BUS 74175
t
16·BIT BIDIRECTIONAL BUS

Figure 3: External block diagram of a CP7600 system. This illustrates how the CP7600 is
typically combined with other components to produce a computer system. An external address
register is required to demultiplex the address information, which is shared on the same 76 bit
bus with ordinary data transfers.

47
:ES
RANEW PRICE!

Want Details?
T he Processor Techno logy 4KRA-4 is the faste st, most Most important, our 4KRA-4 Static Memories work,
re liable and yet, least expensive read /wr ite memory mod · and keep on working! Processor Techno logy has four 8800
u le on the market today . The 4KRA-4 is the only co mputers , each using at least 32K Bytes of 4KRA-4
memory avai lable of any kind that can be powered by memory . We use these machines heavily for program
two "D" size batteries for up to tell (10) nours. (Ask for development and product testing. We have yet to l o~e a
our TB · l 0l technical bu ll etin on back ·up battery operation single bit in normal operation! Reports from our customers
of the 4KRA-4) . confirm our experience and indicate that we have one of
Don't be mislead by "undirected" statements on the the lowe st failure rates in the industry.
subject of memory power consumption. All RAM's used Frank ly, we have done everything we could to make the
in the 4KRA-4 consump. typically 1 /3 the power of 8101 best read /w rite memory around , because, after all, memory
or 2102 type memories. Under absolute worst case con· is the mo st important part of a ny computer.
d itions our RAM's require on ly 30% more powe r than th e
"typica l" consumption of any 4K dynamic memory. SPECIFICATIONS: 4KRA-4
Remember that dynamic memories use three power sup· Maximum capacity: 4096 eight bit bytes
plies, but static me mories only one. Ope ra ting mode: Static
It's time to clear the air of a ny confusion anyone Access tim e : 520 nano ·second s, worst case max imum
might have about memory speed. In any 8080 sys tem, Cycle time: 520 nano ·seconds maximum, read or write
all memories with access times between 50 and 520 nano · Bus Pin o ut: Plug · in compatible with Altair 8800 Bus
seconds are the same speed! Access time a lone is not a Edge con tac ts: Gold plated, 100 pins (dual 50) on . 125"
valid indicator of speed un less it is greater than 550 centers
nanoseconds, thereby requiring slow·down "wait" states. Power requirements, operating: +7. 5 to + 10VDC at LOA
However, two other factors affect overa ll system speed. maximum (DOC), O.8A typo
1) Dynamic memories must refresh themselves period · ical at 25° C.
ica ll y, slowing down the micro processor . In a we ll designed standby : +1.6 to +2.5V DC at O.5A
dynamic memory system refresh slows the processor by maximum worst case, O.4A
a few percent. Static memories do not require any re o typical
freshing. When our 4KRA-4 memories are used in the Dimension s: 5.3" x 10.0" (13.46cm x 25.4cm)
A ltair 8800 the "wait" light goes out, indicating maximum

$139 $195
speed operation.
2) Long cycle times can slow the system down during
critical operations such as Direct Memory Access. DMA is
used by most disk memories and by such devices as a soon
to be announced co lor graphics generator . Mo st dynamic
memories now on the market have a 1500 nanosecond
cycle time, about three times that of our 4KRA-4. This
KIT FORM ASSEMBLED
longer cycle time can slow down the DMA device by at
least 33% 1
VIDEO

Please don't think of the VDM -1 as an ordinary TV computer as a ny 1 K seg m e nt within its norm a l 65K address
typewriter! The VDM-1 is an intelligent display w hose range. Th e VDM-1 is a single pc card and is plug -in
capabilities are limited only by your imagination! All cursor com pati b le with the Altair 8800 bus. Multiple cursors are
and display form atio ns are fully programmabl e - th ere are possible, eac h fully programmable. The display c an be black
very few hardw are limitations inherre nt in the design. on white, wh ite on black, or both simultaneously. Output is
The VDM -1 can be used as a terminal when running standard EIA vid eo with a signal bandwidth of 7 Mh z,
BASIC or our R eside nt Ass e mbl er using the FREE software compatible with any vid eo TV monitor. Th e VDM-1 is so
dr ivers included with every kit. fast, efficient, a nd powe rful we think it will soo n become
The VDM-1 co ntai ns 1024 bytes of low power high the standard aga inst which other displays must be
speed RAM memory which can be directly ac cessed by th e compared.

SPECIAL FREE OFFER!


ScientifIC Notation Software Package with Formatted Output
The floating point math package features 12 decimal digits with exponents
from +127 to -127; handles assigned and unassigned numbers. With it is a 5
function calculator package : + - X & sq. root. It includes 3 storage and 3
operating memories and will handle chain and column calculations _
With the purchase of
(1) VDM-1 and (1) 4KRA-4 Memory: $ 299 00 (Offer ExpireS Aprill, 1976)

Please write for details Processor


on these and other Altair
bus compatible modules TechllOlogy
2465 Fourth Street Berkeley CA 94710 (415) 549 0857
Continued from page 47
Table 7: Summary of CPl600 instructions, This table shoW'S the manufacturer's mnemonics, timing requirements and comments
upon operations, Instructions are grouped in several categories along the left hand edge of the table,
MICROCYCLES
MNEMONICS OPERATION Dif. Indr . tmm. Stack COMMENTS

~ ADD ADD 10 8 8 11
u u
c '0 SUB SUBtract 10 B 8 11
c • CD
, c E 0 CMP CoMPare 10 8 8 11 Result not saved
~ .~ ~ ...J
8
a: ,
u AND logical AND 10 8 11
'ii XOR e XCIusiv8 0 A 10 8 8 11

.
c
! c MVO MoVe Qui 11 g g g
w MVI MoVe In '0 8 8 11

ADDR ADD contents of Registers 6 Add one cycle


SUBR SUBtract cont ent s of Aeg lster 6 Ii Reg i ster 6 or 7
CMPR CoMPare R egistefS by subtr . 6 Result not saved
ANDR logi ca l AND Registers 6
XORR eXclusl'Je OR Reglstsrs 6
MOVR MOVe Register 6

CLRR CLeaR Register 6 XO RR with Itself , except-


TSTR Te S T R eg ister 6
c JR Jump t o add ress In R egister 7' PC - IRRR)
o
INCR I NCrement Register 6

.~ DECR
COMR
DECrement Register
COMplement Register
6
6 One ' s Complement
a: NEGR NE Gate R egiste r 6 Two ' s Complement
~
ADCR ADd Carry B" t o Regi ste r 6
'"
c
<f)
GSWD Get S tat us WorD 6
NOP No O Per ation 6 Two W ords
S IN Softw are INterr llpt 6 Pulse to PCIT pin
RSWD Ret urn S tatus WorD 6
PULR PUll fro m sta ck 10 Register II' PULR MVI@lR6
PSHR Pu S H Aegl ster to s ta c k g' P S H R - MVO@lR6

SL L Shlf t Logi c al Left 6


RLC Rotate left rh ru Carry 6
o ne or two POSition
SLLC ShifT logi cal lefT Thr u Carry 6
shift c apability . Add
S LR Shi ft logi c al Right 6
t w o cy c les for 2 POSition
SA R Shtf t Arithmeti C Right 6
Shift
RRC Rot at e Right thru Carry 6
SA RC Shift A r ith me ti C Right Ihru Ca rr y 6
SWAP SWAP B · blt bytes 6 2,pos l tlon = SWAP tWice

HLT HalT 4

o
c
0
S DBD
EIS
Set Double Byte Data
Enable Interr upt System
4
4 l Must precede e x ternal reference

'0 double by te da,a


co
1
~ DIS Disa b le Interr upt S YSTe m 4
U ~
TCI Term i nat e CUI rent Interr up T 4
c Not Int."upt,bl.
CLRC CLeaR Carry to l ero 4
SE TC SE T Carry to one 4

J Jump 12
c JE Jump , E nable , In te r ru p t 12
o '!!
,
E ,
.
u

c
JD
JSR
JS R E
Jump , Disable I nter r upt
Ju mp, Save Ret urn
Ju mp, Save R e t u rn & Enable
12
12
12
1JRetu,n Add'."
saved ,n R4 , 50 ' 6
JSRD Jump. Save Return & Disable 12
Interrupt

B unconditional Br anch 7 Displa ce ment In PC t 1


BC,BLGE Bran c h on Carry . C -= l 7 PC - PC ± Displace m ent
~ BNC , BLLT Bran c h on No Carry. C -:. O 7 Add 2 cyc les if test c ondition
c
.9 BOV Branch on OV erf low, OV =O 7 15 true .
,
u

. BNOV Bran ch on No Overf l OW, OV = O 7


BPL Bran ~ h on PL us. S -= O 7
c
BMI Bran c h on Minus , S -= 1 7
BZE. BEQ Bran c h on ZEro or EQual 7 Z =1
BNZE . BNEQ Bran c h tf Not ZEroor N ot EQua l 7 Z ~O

BLT Branch If Less Than 7 S lfOV = 1


BGE Bran c h If G reater than or Equal 7 SlfOV =O
S LE Bran c h If Less than o r Equal 7 Z V ISlfOV) = 1
"co BGT Bran ch If Great e r Than 7 Z V ISlfOV) =O
U SUSC Bran c h If Sign I Ca rr y 7 C If S - 1
SESC Branch If Sign " Carry 7 C If S =O
BE XT Bran ch If External 7 4 L S B 'of Ins t ru c tion are de -
c ond i tion 15 True c oded to select 1 of 16
e x ter nal condit ion s .

1 MICROCYCLE 2 CLOCK CYCLES

50
During all arithmetic and logical opera- Figure 3 shows a typical CP1600 system that
tions in the CPU, the arithmetic logic unit provides adequ ate buffering of the 10 bus.
(ALU) status bits are used to monitor and The Series 1600 Microprocessor System
record four charactc! istics of the result- Documentation is available from General
These bits are carry (C) out of the ALU, Instrument for $20. It gives complete infor-
arithmetic overflow (OV) from the ALU, mation on the CP1600 CPU chip including
zero (Z) result from the output of the timings, programming information, and
shifter, and sign (S) detect from the output system configurations. Clearly illustrated
of the shifter. examples are given for various features and
applications including CPU start/stop con-
Applications trol, interrupt systems, and basic input/
For small systems using only a few output ports and 10 interfaces. Other sec-
memory chips, limited peripheral inter- tions of the manual cover the available Series
facing , and/or minimal expansion capability, 1600 microcomputer modul es (with com-
the CP1600 bus can be used directly without plete schematics) and on-line software. The
buffering. The upper bits of the 16 bit documentation package can be an especially
address may be used as direct chip select helpful tool in building a CP1600 based
signals to eliminate the need for binary system_
decoding of the upper portion of the address Conclusion
field . This creates a non-contiguous memory Th e CP1600 microprocesso r provides a
allocation but plenty of address space is powerful, single-chip, CPU for the bas is of a
available to utilize this technique . microcomputer syste m with minicomputer
In larger memory systems, it is best to use features and capabilities. Clear, concise
bipolar buffering of the bi-directional bus documentation and a relatively low price tag
allowing more sophisticated periph era l inter- mak e th e General In strument CP1600
facing and system expansion capabilities. es peciall y appealing to the hobbyist--

Information and diagrams courtesy Gen-


eral Instrument, from their Series 7600
Microprocessor System Documentation.

NEW from CELDAT:


WARNINQ:Our Ha.rdware Do you:
Assemblers a.re DANGEROUS! - need blueprint copies of originals which
are crisp and clear?
- want to try making your own P.C. boards?
- want sepias , pressure-sensitive labels, etc.?
You can get hooked on the graphics display card by Jim Hogenson
(Oct. BYTE) , for example - it is so much fun that this user produced : BUT - don't want to spend the $300. $500, The
$1000 and up for a big copier land the
motorized ones won 't do those p.e . cards C
anyway .... .I
AT LAST there is a copier for YOU - the
op
COPYDAT I and COPYDAT II . Oh , they
are just a bit slower than the big machines y
Icopies take 1·1 / 2 to 2·1/ 2 minutes from
start to finish) - but you can 't beat the l'
price and it doesn 't take up your whole
office or lab.
A
The most amazing thing about the T
COPYDATs is the print quality . We used a
very detailed engine drawing for a demon-
S
stration - and the COPYDAT print faith - a.re
fully reproduced every I ine and shading and
was the equal of an expensive professional
here-!
copy. (That engineer, incidentally , now uses
a COPYDAT .)

Or take the 4 x 8 memory matrix card - with this it is so easy and Copyd.a.t I $149095
inexpensive to add static RAM to your custom system that you 'll want for prints up to B size 112" x 18") plus freight
more, and more, . ... and more, And with our protatyping card those
subassemblies wire up in a snap - our card offers the most area for the
price of any predrilled board now sold.
Copyda.t II $199095
for prints up to D size 124" x 36") plus freight
Check us out today - and watch for some exciting new products soon
to be released - but beware : it COULD be habit·forming! Developing tube for I and II - $20.oo ·pl'" freight

CELDAT DESIGN ASSOCIATES We supply paper , etc ., too . Write today for details! Would you like a
sample copy of your most difficult print? Send it along - or just
P.O. Box 752
write for a copy of that engine drawing and we'll rush one off ASAP .
Amherst , N. H. 03031

51
Photo 7: A t the start of the hand assembly the programmer and tools migh t be se t up as shown in this picture. Note the pencil,
electric (or manual) eraser, graph paper and work table with reference volumes. A programmer's reference card is shown.

Assembling Programs by Hand


Carl Helmers When you build your one of a kind NOVAl Assembler," page 64, October 1975
computer from an assemb lage of parts and BYTE.
components liberally mixed with wire wrap Another method is to hand assemble your
wire, your ultimate goal is to program the programs using a pencil and paper. Hand
machine for experimenta l and practical pur- assemb ly is the subject of this article. The
poses. One of the most imp ortant software tools you'll need for hand assemb ly are
elements of the complete home brew com- simple: A good mechanical pencil, a match-
pu ter system is a set of programs used to ing eraser, and a work area. Supplies re-
help you develop furt her programs. This quired are few: a number of typical graph
type of software programming aid is quite paper sheets will suffice. A .25 inch (6.4
fami li ar to those of us who have a " large mm) grid will prove useful for the paper. For
computer" background. The thought of a those readers interested in a deluxe hand
bare bones machine with no real software assemb ler, a good power eraser of the type
development tools is horrifying, to say the sold in architectura l and drafting supply
least. How is it possible to create this needed houses wi ll work wonders; for about $35
software generating software for the home you'll get a tool which can double as a wire
brew computer? wrap gun if you jury rig an appropriate bit
One method is to implement a "quick to fi t the collet in ten ded for the eraser.
and dirty" cross assemb ler by writing a set Photo 1 illustrates the setup at the
of macros for an existing comp uter system. beginning of a hand assembly program
The on ly hitch here is that you have to have development task . Paper is loca ted a t a
access to a minicomputer (or larger com- conve nient position in front of the pro-
puter) with the appropriate macro assemb ler grammer, with the electric eraser nearby . A
programs. An example of this approach for set of programming reference documenta-
an 8008 was illustrated in the article "A tion is optiona l, but recommended.

52
The first task is to create the program and Stack Frame on Entry to MBLOCK:
thoroughly desk debug its operation.
Because it's difficult to create an assembly Symbol Offset Stack Content
using this manual method, the fewer
mistakes you make in programming, the less COUNT +8 Error count for compare
aggravating will be this painstaking task. To LENGTH +7 Length of field
desk debug a program, you should go OPCODE +6 Choice of move or compare
through its operation with typical examples
TOADDR+1 +5 Low order of destination
of da ta and your knowledge of the com-
puter's instruction set. The operation should TOADDR +4 High order of destination
be checked against what you think the FROMADR+1 +3 Low order of sou rce .
program should be doing. Any errors should FROMADR +2 High order of source
be corrected at this stage.
RETURN+1 +1 Low order of return address

An Example of a Subroutine RETURN +0 High order of return address

As an example of a subroutine to be hand


Figure 7: MBLOCK uses the stack for communication with the calling
assembled, let's consider the function of
program. This is the stack frame set up by the calling program and referenced
moving or comparing two blocks of data in
by the MBLOCK program. The offsets become the address values of the
memory. This can be done by a subroutine
symbol table entries for stack elements, and these symbols provide the first
called MBLOCK, which is called when a
entries in the symbol table of the hand assembly.
program needs to do the comparison or
movement of data. What are the parameters
required for this subroutine? Figure 1 sum- stack. The two left hand columns form the
marizes the parameters of MBLOCK in the beginnit:1gs of a symbol table for the
form of a "stack frame" which is set up for MBLOCK program's assembly. A symbol
machines such as the 6800 or 8080 wh ich table for an assembled routine is a list of all
can use a memory stack for data storage as the labels referenced by the program, along
well as program control. When the MBLOCK with the address value of each label. For the
subrou tine is requ ired, each of the param- parameters of MBLOCK, addresses are
eters must be set up by pushing values into specified as an offset relative to the stack
the stack prior to the actual JSR instruction pointer since we will be using the stack as an
which calls MBLOCK. Here is a summary of argument to parameter linkage area. When-
what the stack frame contains, as set up by ever we use these parameters inside the
the calling sequence: detailed code of the MBLOCK routine, the
6800's indexed addressing mode will be
COUNT: A dummy stack element which
employed after moving the stack pointer to
is not initialized in the calling sequence,
the index register.
but is allocated for use by the subroutine.
A typical example of the calling sequence
LENGTH: The value of the length of the for the MBLOCK program is illustrated in
data field. For the purpose of this listing 1. This calling sequence is a set of
MBLOCK routine, the value of 0 for 6800 instructions which are used in the
length will be treated as if 256 had been example to set up the stack with values
intended. corresponding to figure 1. The typical way
OPCODE : Designates whether the this is done is to load a byte into accumula-
MBLOCK routine will perform a com- tor A, then push the accumulator contents
parison (zero) or move (not zero) onto the stack. It is not the on Iy way the
operation. stack can be set up and the M BLOCK
subroutine entered. MBLOCK does not care
TOADDR: This parameter is the address how the stack is set up, so long as it contains
of the block in memory which is the meaningful data when it is entered.
destination of a move, or one of the With figure 1 as a starting point, the
operands of a comparison. MBLOCK was generated and desk debugged
FROMADR : This parameter is the in symbolic assembly language, as shown in
address of the block in memory which is listing 2.
the source of data for a move, or one of
the operands of a comparison. Graph Paper Progl·am Representations
RETURN: When the MBLOCK sub- As mentioned earl ier, graph paper figures
routine is reached by a JSR, the stack prominently in this hand assembly process.
contains a return address as its last entry. The graph paper used as a working storage
area for the hand assembly should be the
The information contained in figure 1 is a typical 0.25 inch (6.4 mm) grid paper found
bit more useful than just a layout of the in stationery stores. This size leaves enough

53
Listing 7: The calling sequence of the MBLOCK routine is used to set up the
stack with arguments. The actual ;code used in this example is typical of such
a calling sequence, but is not the only one possible.

Label Op. Operand Commentary

INS all ocate COUNT by incrementing the stack poin ter;


LDAA #$25 pick a length for the comparison
PSHA or move and store it at LENGTH in the stack;
LDAA #1 pick the move operation code (non zero) and
PSHA store it at OPCODE in the stack ;
LDAA # L(ADATA) defin e the address of ADAT A
PSHA as th e dest ination TOADDR
LDAA # H(ADATA) on the stack using immediate
PSHA data for bot h pieces;
LDAA # L(BDATA) define the address of BOAT A
PSHA as the so urce FROMADR
LDAA # H(BDATA) on the stack using immediate
PSHA data for bo th pieces;
JSR MBLOCK define the return address RETURN on the stack
and branch to th e MBLOCK rout ine in memory;

Notes: The symbo l # indicates th e immediate addressing mode for a 6800 processor: The
sy mbol $ indicate s hexadecim al notation for the number fo ll owing it : H(X)
indicate s the high order portion of t he address of symbo l X: L(X) indicates the
low order portion of the address of sy mbol X.

Listing 2: The MBLOCK program is speCified here in complete detail with commentary.

Line Label Op. Operand Commentary

MBLOCK TSX estab li sh stack indexing;


2 C LR COUNT,X clear error COUNT field;
3 LD A B OPCODE,X fetch operation code from stack to B;
4 DO LO X FROMADR,X address of so urce data to inde x from stack;
5 LD AA O,X move source data byte to A ;
6 TSX establish stack inde x ing again;
7 LO X TOADDR ,X address 9f desti nation data to index from stack;
8 TST B is operation code in B ze ro?
9 BNE MOVER if not then go to move routine;
10 COMPARE CMPA O,X is source data equa l to destination data ?
11 BEQ ENDDO if so skip to en d of DO group;
12 TSX estab lish stack inde x ing;
13 IN C COUNT,X increment count of errors ;
14 BNE ENDDO if no overflow then sk ip special case;
15 D EC COUNT,X if overflow then modify re su It to he xadeci mal F F;
16 BRA ENDDO sk ip aro und move routine;
17 MOVER STAA O,X move so urce data byte to destination location;
18 ENDDO TSX estab li sh stack indexing;
19 INC TOA DDR+1.X increment low order byte of destination address ;
20 BNE NOHITO if no overflow then sk ip high order incrementation ;
21 INC TOADDR ,X otherwise increment high order also;
22 NOH ITO INC FROMADR+1,X increment low order byte of so urce add ress;
23 BNE NOHIFROM if no overflow then skip high order incrementation;
24 IN C FROMADR, X ot herwise in cre ment' high order also;
25 NOHIFROM DEC LENGTH,X decrement len gth count by one;
26 BNE DO if count remains then continue the loop execut ion ;
27 LDAA COUNT,X load fina l error count into A as retu rned value;
28 LDAB RETURN .X move the retu rn address up to
29 STAB RETURN+7,X beginning of the pa r ameter
30 LDAB RETURN+1 .X area of the stack frame wh i Ie
31 STAB RETURN +8,X preserving old stack pointer;
32 LDAB #7 modify the inde x register (o ld stack pointer)
33 CLEANL INX with th is little loop to clean up
34 DECB the stack allocations for
35 BNE C L EAN L return from MBLOCK;
36 TXS redef in e the stack pointer
37 RTS then return with copy acting as return pointer;

54
room for writing two digits or characters Listing 3: The first step of the hand assembly process (and the last step of the
into each square without crowding, but the program writing process) is to write a complete symbolic listing of the
exact size is unimportant. The first step of program on graph paper. A suggested format is shown here, with a hand
hand assembly is to write the program down written copy of the first 72 lines of MBLOCK. The secret of equal spacing is
onto graph paper in the format shown in graph paper. The hand written listings in this article were made using a graph
listing 3. Note that several columns are left paper grid as a guide.
unused at the left hand side of the graph
paper. A useful format is (from left to
r\ght) : OPERANb
Two columns which will receive the
hexadecimal address of each instruction, t MBLOC.I( ,5)(
2- cu~. C.OUNT) )(
Three columns which will receive the one, .3 L.b~B OPc.obE, )(
two or three bytes associated with each It Do Lbx FRo,", AbR»(
instruction, 5 \.bAl\ O,X
One column which will be reserved for ~ TSX
jotting down the length of each instruc- '7 Lb X
tion (until you get familiar enough with ~ Tsrs
the instruction set to remember the 9 SNE MOVER
lengths of each instruction); 10 C.OMPARE C~PI\ O,X
11 SEQ. E~llbo
Spaces are used for separation. 12.. T5 x.
For the purposes of this article, a type-
written copy of the program, with com-
mentary, was presented first, in listing 2. In the hand assembly process, it is often more
actual practice, the first listing you'd make convenient to note the lengths and operation
of a program would be in pencil on graph codes of the instructions first by scanning
paper using the model of listing 3. This through the program once, then to go
would still be a full symbolic listing, but it through the program a second time assigning
leaves the listing in a form ready to be hand addresses. This makes the amou nt of manual
assembled. The importance of using pencil thinking required at any given time smaller
rather than pen is obvious: Unless you are an and thus less error prone.
extreme perfectionist and far-sighted to It should be pointed out here that the
boot, chances are that you will make one or problem of determining the length of an
two mistakes or false starts in hand instruction only exists for computer designs
assemblies of the typical programs. With a such as the 8008, 8080, 6800, 6501 or
pencil and good quality bond paper, such TI 990, wh ich have variable length instruc-
mistakes can be erased. tion. If your home computer system is built
around a machine with fixed word length
Completing the Symbol Table instructions (as in some minicomputers like
The first pass of a classic two-pass assem- the PDP-8 and its microcomputer equivalent
bler is used to allocate the addresses of IM61 00), there is no need to make any entry
instructions or data, and to generate the in the column for instruction length. In such
symbol table of the routine being assembled. cases, address allocation consists of jotting
During pass one, analysis of instructions can down an ascendi ng sequence of nu mbers as
often be used to note the numeric operation addresses . However, the example being used
code for each line. The symbol table con- for this article is a Motorola 6800, so the
tains one entry for each line which has a more general case of a variable instruction
label indicated in the label column of the length applies here.
source program, stored along with the In the particular case of the 6800, the
address of the line on which it appeared. In most convenient way to find the operation
an actual assembler program th is address codes and lengths of instructions is to use
allocation process is accomplished by taking the Motorola M6800 Microprocessor Instruc-
each line in turn, analyzing the operation tion Set Summary card which is delivered
code and operand to determine the address- along with the documentation for the 6800
ing mode and hence length of the instruc- computer. Figure 2 shows a copy of the side
tion, then using the derived length of the of the card which is important for hand
instruction to increment the location assembly - the side wh ich lists all the
counter which keeps track of addresses. As instructions. On the card itself, you will find
each new line is begun, the starting address each instruction along with its operation
calculated from analysis of the previous line code in each addressing mode and its length.
is associated with any label found in the The important columns for this pass through
label field and stored in the symbol table. In the hand assembly are the columns labelled

55
Figure 2: The programmers' reference card supplied by Motorola for the
6800 processor. This is the side used for operation code lookups, the most
common use of the card. BOOLEAN/ARITHMETIC OPERATION CDNO . CODE REG .
ADDRESSING MODES
ACCUMULATOR AND MEMORY IMMEO DIRECT INDEX EXTNO IMPLIED (All rfliSlt< I.bell 543210

OPERATIONS
Add
MNEMONIC
AOOA
AOOB
OP
sil
CB
-
2
2
=
2
2
OP
9B
DB
-
3
3
=
2
2
OP
AB
EB
-
5
5
=
2
2
OP
BB
FB
,
4
4
" OP - "
A- 1.1 'A
B - 1.1 • B
roler to contents)

I •
.
HINZVC

; ; ; ~
: I
Add Acmltrs ABA lB 2 1 A-B·A : • I ! : I
Add With Carry AOCA B9 2 2 99 3 2 A9 5 2 B9 4 A- 1.1 - C • A : • I : : :
AOCB (;9 2 2 09 3 2 E9 5 2 F9 4 B d" - C ' B
And ANOA B4 2 2 94 3 2 A4 5 2 B4 4 A·M • A • • ! : R •
ANOB C4 2 2 04 3 2 E4 5 2 F4 4 B . 1.1 • 8 • • I : R •
Bit Test BITA B5 2 2 95 3 2 A5 5 2 B5 4 A'M • • : I R •
BITB C5 2 2 05 3 2 E5 5 2 F5 4 8' 1.1 • • I I R •
Clear CLA 6F 7 2 IF 6 00 . 1.1 • • R S R R
00 . A

..
CLAA 4F 2 • • R S R A
CLAB 5F 2 00 . B • • A S A A
A 1.1 :::
..
Compare CMPA 81 2 2 91 3 2 AI 5 2 B1 4
CMPB Cl 2 2 01 3 2 El 5 2 F1 4 8 M • • I ! I I
Compare Acmltrs CBA 11 2 A 8 :;:
Complement , l's COM 63 7 2736 M .1.1 • • : : R S
COMA 43 2 A 'A • • : I RS
COMB 53 2 Ii 'B •• ; : R S
: 1(fI CV
Complement , 2's NEG 60 1 2 10 6 00 1.1.1.1 ••
( Negate) NEGA 40 2 00 A' A •• : I~cv
NEGB 50
19
2
2
00 8' 8 •• : : CD~
Decimal Adlust , A OAA Converts 8",a1Y Add 01 8CO Chalatlell • .: <l>
"lIu BCD FOIOlat
Decrement DEC 6A 7 1.1 . 1 . 1.1 • . : 4.
217 A 6
OECA 4A , 2 A l ' A • • 1 I 4 •
OECB 5A 2 8 l' B • • I I 4 •
Exclusive 0 A EOAA 88 2 2 98 3 2 A8 5 2 B8 4 A0 M ' A •• : ! R •
EOAB C8 2 2 08 3 2 E8 5 2 F8 4 B0 M 'B •• 1 t A •
Increment INC 6C 7 2 lC 6 1.1 - 1 .1.1 •• I : ~.

Load Acmltr
INCA
iNCB
LOAA 86 2 2 96 3 2 A6 5 2 86 4
4C
5C
2
2
A.l • A
B• 1 .8
1.1 ' A
••
• • ~. ~
• • : R.
: :
LOAB C6 2 2 06 3 2 E6 5 2 F6 4 1.1 '8 •• : A•
Or, Inclusive OAAA 8A 2 2 9A 3 2 AA 5 2 BA 4 .... M • A
• • ! I A•
OAAB CA 2 2 OA 3 2 EA 5 2 FA 4 B • 1.1 • 8 •• t I A•
Push Data PSHA 36 4 A • 1.1 Sp , SP l ' SP ••••••
PSHB 37 4 B • MSp. SP 1 · SP ••••••
Pull Data PULA
PULB
J2
33
4
4
SP - i . SP. MSp - A
SP - 1 • SP , MSp . 8
••••••
Rotate Left AOL 69 7 2 19 6
AOLA
AOLB
49
59
2
2 :} L? - 11111111t:J
bl bO

~8}L? -I""",;=J
Aotate Aighi ADA 66 7 2 76 6
AOAA 46 2
AORB 56 2 b7 - bO
Shift Leh , Arithmetic

Shih Alght , A"thmellc


ASL
ASLA
ASLB
ASA
ASAA
68

6/
1

I
2

2116
18 6
48
58

41
2
2

2
n D-
C
!! I II I II 1-
b7 bO
0

ASAB 57 2
Shift Aight , LogiC LSA fiji I 2 14 6
LSAA 44 2 o- I I I I I I I I I -- 0
LSAB 54 2 bl bO C
Store Acmltr STAA 97 4 2 Al 6 2 81 5 A .1.1
STAB 07 4 2 E/ 6 2 Fl 5 8 . 1.1
Subtract SUB A 80 2 2 90 3 2 AO 5 2 BO 4 A M ' A
SUBB CO 2 2 DO 3 2 EO 5 2 FO 4 8 M ·~
Subtract Acmltrs. SBA 10 2 A 8' A
Subtr . With Carry SBCA 82 2 2 92 3 2 A2 5 2 82 4 A 1.1 C ' A • • : ! ! :
SBCB C2 2 2 02 3 2 E2 5 2 F2 4 H 1.1 C' 8 • • I • : !
Transler Acmltrs TAB 16 2 A '8 • • I : A ;.
TBA 17 2 8 •A • • ; : R •
Test , Zero or Minus TST 60 1 2 10 6 M 00 • • I R R
TSTA 40 2 1 A 00 •• : A R
TSTB 50 2 1 8 00 •• R R

56
NDEX REGISTER AND STACK IMMED DIRECT INDEX EXTND IMPLIED 5 4 J 2 1 0
PDINTER OPERATIONS MNEMONIC OP - # OP - # OP - # OP - # OP - # BOOLEAN/ARITHMETIC OPERATION H' I N Z V C
Compare Index Reg
Decrement Index Reg
Oecrement Stack Pntr
crX
DEX
DES
8C 3 3 9C 4 2 AC 6 2 BC 5 3
09
34
4
4
1
1
XH - M, XL - (M + I)
X - l~X

SP - 1 -SP
• • CD :: (l; •
•••
• • • •: • •
..
Increment Index Rag lNX 08 4 1 X + I-X ••• ••
Increment Stack Pntr INS 31 4 1 SP + 1 -+ SP • • • • •R ••
Load Index Reg LOX CE 3 3 DE 4 2 EE 6 2 FE 5 3 M~ XH , (M + I) -+ XL • • @: R •
Load Stack Pntr LOS 8E 3 3 9E 4 2 AE 6 2 BE 5 3 M-SPH , (M + I) -SPL ®:
Store Index Reg STX Of 5 2 EF 7 2 FF 6 3 XH-M,XL-(M+I) •• to• @: RR ••
Store Stack Pntr STS 9F 5 2 AF 7 2 8F 6 3 SPH -+ M, SPL - (M + I) • • @:
Indx Reg - Stack Potr TXS 35 4 1 X - l-SP ••••••
Stack Pntr - Indx Reg TSX 30 4 1 SP + 1 -+ X ••••••
J UMP AND BRANCH RELATIVE INDEX EXTND IMPLIED 5 4 J 2 1 0
DPERATlDNS MNEMONIC OP - # OP - # 0' - # ' DP - # BRANCH TEST H I II Z V C
Branch Always BRA 20 4 2 None • • • • • •
Branch If Carry Clear BCC 24 4 2 CoO • • • • • •
Branch If Carr; Set 8CS 25 4 2 C= 1 • • • • • •
Branch If = Zero BEQ 27 4 2 Z= 1 • • • • • •
Branch If ;;. Zero BGE 2C 4 2 N<±lV=O • • • • • •
Branch If > Zero BGT 2E 4 2 Z + (N (j) V) = 0 • • • • • •
Branch If Higher BHI 22 4 2 C+Z = O • • • • • •
Branch If .;;; Zero BLE 2F 4 2 Z + (N (j) V) = 1 • • • • • •
C+Z=1 • • • • • •
:~ I
Branch If Lo""r Or Same BLS 4 2
Branch If < Zero BLT 4 2 N<±lV=1 • • • • • •
8ranch If Minus ~MI 2B 4 2 N= 1 • • • • • •
Branch If Not Equal Zero BNE 26 4 2 ZOO
• • • • • •
Branch If Overflow Clear BVC 28 4 2 v=o • • • • • •
Branch If Overflow Set BVS 29 4 2 V= 1 • • • • • •
Branch If Plus BPL 2A 4 2 N=O • • • • • •
Branch To Subroutine BSR 80 8 2 • • • • • •
Jump
Jump To Subroutine
JMP
JSR
6E
AD
4
8
2
2
7E
BD
3
9
3
3
} See Special Operations • • • • • •
• • • • • •
No Operation
Return From Interrupt
NDP
RTI
02
3B
2
1D
1
1
Advances Prog. Cntr. Only • • • • • •
- -'- @ - -
Return From Subroutine RTS 39 5 1
Software Interrupt
Wait for Interrupt
SWI
WAI
3F
3E
12
9
1
1
} See Special Operations •• j@.)j
• • • j •• j ••
••• ~
J ·

COND oCODE REG .


CONDITION CODE REGISTER IMPLIED 5 4 J 2 1 0
0P.ERAT1DNS MNEMDNIC DP - # BOOLEAN OPERATION H I N Z V C
CDNDITION CODE REGISTER NDTES:

Clear Carry CLC OC 2 1 1 ~ !:;: 9 :-+ C • •R • • • R (Bit set if test is true and cI.ared otherwise)
aear Interrupt Mask CLI OE 2 1 ' '0 -+ I • • • • • (Bit V) Test: Result = 100000001
(Bit C) Test : Result = 000000001
aear Olo1!rflow CLV OA 2 1 O-+ V • • • • R • (Bit C) . Test : Decimal value of most significant BCD Character
Set Carry SEC 00 2 1 1 -+ C • • • • • S
Set Interrupt Mask SEI OF 2 1 1 -+ I • S • • • • greater than nin.? (Not cleared if previously seU
Set Ov.rflow
Acmltr A -+ CCR
CCR -+ Acmltr A
SEV
TAP
TPA
08
06
07
2
2
2
1
1
1
I -+ V
A ~ CCR
CCR -A

--@--
• •
-1·1-,-1·1·
S •
- 5
6
(Bit V) Test : Operand = 10000000 prior to execution?
(Bit V) Te;t : Operand = 01111111 prior to execution?
(Bit V) Test: Set equal to result of N<±lC after shift has occurred .
(Bit N) Test : Sign bit of most significaht (MS) byte = P
(Bit V) Test : 2's complement overflow from subtraction 01
MS bytes?
(Bit Nl rest: Result less than zero? (Bit 15 = 1)
lEGUD : 10 (All) Load Condition Code Register from Stack . (See Special
OP Opt'liton Codr IH,udfc."yll. 00 BVI l' lr,o . Operations)
Numbtr 01 "PU Cveln.
Number 01 PrD,,,m By"s.
H HIlt ''',v hom bIt 3. 11 (Bit I) Set when interrupt occurs. If previously set , a Non ·
I InteHupt ""p Maskable Interrupt is required to exit the wait state .
At,IhmtilC Plus;
ArithmetiC Mrnus .
N N",I'vt ISI9" bIll 12 (All) Set according to rhe contents of Accumulator A.
I lifO Ibyltl
Bo~ .. n AHD .
V OVfrt low . r,
compl~m~n'
MSp ConlrnU of memory loc.1I0n pOlnlrd 10 he SlilCk POII'It'
C ·~ffV hom bll 1
~ou l l''' t1 0R
In(lu i lvt R R~Wl Alw.v'
( 0' Bo olU II EI cluSl vr OR S ~'Alw.... \
iii COlllpl,mrn t 0 1 M
T' IIlllst" Inl0 .
e lt ltro .
• ~OI AII~clrd

57
A-DD~. oI'ERAt-JD tion process is to calculate the starting
LIt-lE
-"EX.- C.Oi)r. LEN. LF\BEL ~
address for the next line. The calculation is
1 1000 ':!IO 1. I'.\B\.O(I(. 15)( simple: add the length of the current instruc-
2. tOot bJ: 2 ClR COUNT, X tion to the starting address of the current
~ iOO~ E~ 2- LbAB OPcObE)X line giving the starting address of the next
4- 1.005 EE '2 1>0 LDX FQOl'IIAbR,X line.
5 1.001 M, '2 LDAA 0,)( What about the first line of the assembled
;0
"8
1
100'
1001\
loDe
EE
1.
'2..
TSX
LbX '-OAbDI(»)(
code? You will note that in listing 4,
addresses start at hexadecimal 1000 at th e
SD 1 THB first line. How did I pick that value? I picked
Cf 1." 2 8NE MOilER the value because I happen to have some
10 At ? COMPARE" Cr.\PA o)x space open in my computer's programmable
it 21 2 BF:G. ENDDO memory starting at location 1000; if you
1.2. 30 1 TS )( have programmable memory available at a
different location, you would of course pick
Listing 4: This listing shows the results of an operation code and length a different starting number. This process of
lookup for the 72 lines of code in listing 3, and the allocation of addresses for picking a starting point is equivalent to
the first 8 lines. setting the "location counter" of an assem-
bler program. In assembler programs, the
with «#" signs indicating the number of ORG pseudo operation is ordinarily used to
bytes required, and the "op" column giving define the initial value of a location counter,
the hexadecimal operation code for a partic- or to redefine it later during an assembly.
ular addressing mode of the instruction. Listing 4 shows partial resu lts of the
For the Motorola 6800 design, the in- operation code and length lookup, plus
struction length and operation code deter- several lines of address allocation. At the
mination is complicated by the ambiguity of start of the program, as noted above, the
choice between the direct addressing mode first address was chosen to be 1000 in
and the extended addressing mode. If an hexadecimal. Line 1 of the listing is the
operation has a possibility for direct address- 6800's TSX operation, which has an opera-
ing, as well as extended, the address must be tion code of hexadecimal 30 and a length of
known at the time the operation code is one byte. Adding one byte to 1000 in
selected and the length of the instruction is hexadecimal gives us the allocation for the
determined. This can be made consistent second line's starting address, 1001.
with the hand method of assembly by Line 2 has the 6800's CLR instruction
requiring that all directly addressed locations specified with an indexed addressing mode.
be allocated in advance of assembly, in much The notation ",X", for indexed addressing,
the same way that the parameters of the is used throughou t th is example for con-
MBLOCK routine were allocated relative to sistency with the assembler program which
the stack pointer ahead of time. Since the Motorola uses for the examples in its
directly addressed locations are a limited manuals. The operation code 6F (hexa-
resource on the 6800, they can be treated in deci mal) and length of two bytes were noted
the same way that general registers are in the earlier length scan. Adding hexa-
treated on an IBM 370 or similar machines. decimal 2 to hexadecimal 1001 gives the
This means that the software would use starting address for the next instruction, line
those locations accord ing to a specific con- 3's address of 1003. Th is process is repeated
vention created ahead of time and consistent over and over until all the addresses in the
with all the programs you plan to use in program are allocated.
your computer. The subject of specific While allocating the addresses, be sure to
allocations for these locations in a 6800 is note each symbol definition provided by an
beyond the scope of this article. It suffices entry in the label column of the symbolic
to note that they must be allocated ahead of assembly listing. When the address is calcu-
time if the shorter direct addressing mode is lated for a line, look to see if it has a label.
to be used in preference to the longer Then write the label down on a separate
extended mode, when you pick operation piece of paper along with the address of the
codes and the lengths of instructions. line. This separate li st is the symbol table.
Listing 4 shows how the address a ll oca- For this routine, we start with a symbol
tion pass proceeds once the lengths and table consisting of the symbols defined for
opera tion codes have been noted. For ·hand the parameters (see figure 1) and add on the
assembly, the value of the location counter labels found when scanning through the
is the address of the current line being program. After the address allocation part of
considered as it is written down. Each line pass 1, you should have a complete symbol
starts with an address resulting from the table for your program . Table 1 shows the
prjlvious line, and the object of the alloca- symbol table completed for MBLOCK.

58
Fill ing in Operand References
With the address allocation completed i 1000 30 i MBlO CL( 1"$)(

and summarized in a symbol table for the 2. 1001 "F 08 2. Ct..R. COUNT) )I..

program, it is possible to perform by hand 3 1003 Ero 0" 2 l~A:B O~C.OPE,X


the second pass of the classical two pass 4- 1005 EE. 02 2. DO L)))( FROfl\A~R, )(
assembler. This second pass is used to fill in 5 1001 A, 00 G. LbAA O,X
all remaining address values and data values b 100~ 30 i T5X
which typically depend upon symbols de- '7 1.00A EE Olt 2. LII X
fined and stored in the symbol table. For a 8 10 at 51> i TST.B
machine such as the 6800, each symbol in 'i 1000 H. OD 2. B"E'
the table has a 16 bit value specified as a 1.0 100~ A1. 01> e... CO"'PA~E CMPA
four digit hexadecimal number. During the U. 1011 n OB Z. 81::Q
first pass, in order to calculate the length of 1'2. 101..3 30 i TSX
an instruction, its mode of addressing had to 1.3 101'i- be OfT e I~t C.OUNi) X
be determined as part of the selection of the 1tt- toil. a" 01. 2. B~~ Et.lM) 0
operation code. The method of filling in the is 101S C;I\ OB 2. bEt co UI..lT, X
remainder of the instruction depends upon H iotA 20 02- 2. B~~ E~bbO

the addressing mode. The comments which i1 iDie. H 00 Z. I'IIOVfR, STAA 0,)(
follow refer to the 6800 design. is ie1E. 30 t ElIlhDo TS X
1~
~c
iOi.F
to 2.\
'c
2'
05
02.
2-
z...
r~c
8NE"
TOAbD~ H,X
I m me d iate Addressing. The 6800 t.ollxro
immediate addressing mode finds one or
2t ion be. ott 2. INC. To Ab.DIii:,X
~'2... 10'2.5 be 03 Z NOHr.TO :tNe. FROMAU+l, )(
two bytes of data following the instruc-
23 10Z.? 2' 02. 2. B~E >JOijX:F'~O~
tion byte. For instructions such as LDS
Zit 10 l.'J 'e. 02 2. :INC. F12()"04Al>R, X
and LDX, a full 16 bit address follows the
instruction byte. In cases where the
symbolic assembly language specifies
2.S'
2(,
10t8
10'2.1)
'" o.
'2.1:. Il'"
2
2
NO >II FROfil I)E C.
BN E'
L£NGfll,X
DO
immediate addressing with a symbol such
'2~ 102.F A" O~ 2 LbAA Co UAlT, X
2.~ 1.0:31 E' DC Z. t..bAB ~"TURNJX
as #MBLOCK, the second two bytes of
2.<1 1033 E1 0~ 2. STAB Rt'TIARN+'1,X
the instruction would be filled in with the
30 ~O'3S E(' 01 2. I..I>AB Re-1URI.) +i >)(
four hexadecimal digits of the address as
written down in the symbol table. For
31 1031 In O~ 2- sr.... s Q.ETuRIo) +i +7-~ l(

instructions such as the LDAB found on


3'2.. 1039 C(' 07 2- LOAB +-r
:'3 1.0~B O~ 1- Cl..~ANL IN)(
line 32 of listing 2, the immediate value is
a one byte quantity since the operation
H 103C. 5A t DECS
35 1.0 31> 2.1:. n t SA.! e: CLt::ANt.
involves the normal da ta length for the
3", 103F 35 1 rxS
machine.
31- 10 ~o 3~ 1. Rrs
Direct Addressing. For 6800 operations
which use direct addressing, the second Listing 5: The final result of hand assembly is a complete listing of the
byte of these two byte instructions is program with all addresses allocated, and all hexadecimal codes for
simply the low order portion (rightmost instruction bytes completed. This listing shows the result for MBLOCK. The
two digits) of the value of the hexa- next step is of course to load the program and test it in your computer.
decimal address written down in your
symbol table as in table 1.
Indexed Addressing. The example of
Extended Addressing. For 6800 opera- MBLOCK uses indexed addressing almost
tions which use extended addressing, the exclusively for da ta manipulation since all
second two bytes of the instruction con- the variable data is placed in the stack to
tain the full 4 digit hexadecimal (16 digit make the routine reentrant. In indexed
binary) representation of the address as addressing, the second byte of the in-
noted in your symbol table. Thus, for struction contains a positive offset from
example, the JSR at the end of the the value currently in the index register.
example in listing 1 would be assembled To fill In the second byte of such
wi th a 4 digi t hexadecimal address of instructions, you use the two low order
1000 forming the second two bytes of digits of the hexadecimal value of the
the instruction. (One reason the 6800 is symbol as noted in your symbol table.
easier to assemble by hand than either the Thus for the instruction of line 15 of
8008 or the 8080 is that its many MBLOCK, the value noted down in the
extended addressing modes use the two second byte of the instruction at this
bytes of the address in the natural order stage of the assembly is hexadecimal '08'
of the hexadecimal number.) found by looking up COUNT in the

59
Table 7: Symbol Table for the MBLOCK address of the next instruction following
program. This table lists the symbol and its the branch. In the example, the address
value for each symbol referenced in of the instruction on line lOis 1OOF, and
MBLOCK. the address of MOVER is 101C so the
difference becomes 101 C - 100F = D.
Hexadecimal The low order two digits of this hexa-
Symbol Value decimal number can be used for the
branch offset provided the number is less
COUNT 0008
LENGTH 0007
than or equal to hexadecimal 007F.
OPCODE 0006 (Relative addressing outside this limit
TOADDR 0004 cannot be done on the 6800, so branch-
FROMADR 0002 ing to a nearby JMP instruction with
RETURN 0000 extended addressing may be requ ired.
M8LOCK 1000 Here is a case where pencil and eraser
DOFOR 1005 become necessary, since you won't know
COMPARE 100F your branch is out of range until after the
MOVER 101C address allocation and hexadecimal sub·
ENDDO 101E traction are performed.)
NOHITO 1025
NOHIFROM 1028 Next, consider a backward reference. A
CLEANL 1038 backward reference is a reference to a
previously defined label. An example in
symbol table. (The" ,X" as noted earl ier MBLOCK is the conditional branch to DO at
merely identifies indexed addressing.) line 26. Here, as in the previous case, the
Note that if you have a symbol table branch offset is calculated as the difference
value greater than hexadecimal FF, this of the target address minus the next instruc-
rule would cause a truncation and pos- tion address. But since the next instruction
sibly erroneous operation of your pro- address exceeds the branch target address,
gram. Indexed references can not have the result will be negative. In the example of
offsets greater than hexadecimal FF in the branch to DO, the branch is at location
the 6800 architecture. 102D so that location 1005 minus location
102D gives a result of FFD8. This number
I nherent Addressing. For instructions must be interpreted as an 8 bit two's
with inherent addressing, there is no more complement negative number in order to
to do once the operation code is noted. have the proper hexadecimal code. Its mag-
Such instructions always address some nitude as a full four digit hexadecimal
particular facet of the CPU's architecture number must exceed FF80 for a proper 8 bit
and as a result have no optional address- offset to be taken from the low order digits.
ing to be determined during the assembly Before leaving the subject of hand assem-
process. Examples include the RTS of bly and the 6800's relative addressi ng mode,
line 37 as well as the TXS instruction there is one trick which will prove quite
occurring at several places in MBLOCK. useful for generating the offset field of short
relative jumps: Counting. Simply consider
Relative Addressing. The one remaining the second byte of the instruction as residing
6800 addressing mode is the relative at a count of hexadecimal FF. To figure out
addressing mode .. This is also the most a forward reference offset, cou nt bytes
difficul t mode to handle in a hand assem- forward in hexadecimal. The next number
bly for this machine, because the instruc- after FF in an 8 bit counting sequence is 00.
tion requ ires calculation of a branch Thus to go to the starting address of the
address relative to the current instruc- instruction following the branch, use 00.
tion's location in memory. This calcula- Simply counting bytes forward will give the
tion requires that you do hexadecimal offset for a branch target at any positive
arithmetic. First let's consider the case of displacement. Counting backward from FF
a forward reference. A forward reference in hexadecimal gives the same effect for
occurs when the address of the symbol backward references. To branch to itself, a
mentioned in the branch is located at a branch instruction has FF for its second
higher address than the current address. byte, and counting backward has FE for its
An example is the forward reference at first byte. For earlier instructions, keep the
line 9 of MBLOCK to the label MOVER sequence going: FD, FC, FB ... until you
found on line 17 of MBLOCK. The get to the first byte of the desired branch
symbol table comes in handy here. We target. (Stop at 80, however, since that
look up the symbol of the target of the represents the maximum displacement back-
branch, MOVER. Then we subtract the wards since 7F is a positive displacement.)

60
What Next?
DIGITAL DATA RECDRDER for
The result of carrying out the hand
Computer or Teletype Use
assembly process is presented in complete
detail for MBLOCK in listing 5. This listing Up to 2400 Baud $149.95
contains a reproduction of the complete
hand assembly of MBLOCK with an absolute
address origin of 1000. When you reach the
stage of listing 5, your assembly is complete,
and the program is ready to test. Load the
program starti ng at the address of the first
line of code, usi ng wha tever means is appro-
priate for your computer. For Altair 680 Uses the industry standard tape
users with a minimal system, this would be saturation method to beat all FSK
systems ten to one. No modems or
via panel switches. For SWTPC 6800 system FSK decoders required. Loads 8K of
users, this would be via the MIKBUG pro- memory in 34 seconds. This recorder
gram software using a terminal such as a enables you to back up your computer
by loading and dumping programs and
TVT or a Teletype. Sphere system owners
data fast as you go, thus enabling you
could use their miniature assembler program to get by with less memory. Great for
to eliminate much of the drudgery of small business bookkeeping.
address calculation for relative branches, but IMAGINE! A year's books on one
cassette.
handwritten listings to document programs Thousands are in use in colleges and
would still require many hand assembly businesses allover the country. This
elements; the results of a Sphere assembly new version is ideal for instructional,
amateur, hobby and small business
are of course already in memory, so loading use. Idea I for use by servicemen to
is not required. Hopefully, at some bright load test programs. Comes complete
point in your computer's future, you'll have wit h prerecorded 8080 softwa re
enough memory and there will be software program used to test the units as they
are produced. (Monitor)
products available, so that you can do a full
SPECIFICATIONS
assembly by machine, using cassettes for A. Recording Mode : Tape salUra· F. Comparability: Will int erface
lion binary. This is no t an FSK any comput er using a UART or
storage media and perhaps a Teletype for or Home type recorder. No voice PIA board. (Altair, Sphere,
capa bility . No modem. M680D erc.)
hard copy - at wh ich point you can pack up B. Two channels (1) Clock, (2) G.Orller Da ta : 110 V (50·60)
Data. Or, two data channels pro· Hz; 2 Wall s total; UL listed
your pencil and electric eraser.- viding (our (4) tracks on the #955 D: three wire line cord;
cassette. Can also be used for on/off switch; audio, meter and
NRZ, Bi·Phase, erc. light operation monitors.
C. Inputs : Two (2). Wi11 accept Remo te con trol of motor

ALTAIR 8800
TTY, TTL or RS 232 digital. optional. Four foot, seven can·
D. Outputs : Two (2). Boa rd ductor remoting cable provided.
changeable from TTY, RS232 or H. Warrantee : 90 days. All W1its

VIDEO INAL
TTL digital. tested at 110 and 2400 baud
E. Erase : Erases while recording before shipment. Test cassette
one lrilck at a time. Record new with 8080 software program
data all olle track and preserve included. This casset(e was
three or record on two and recorded and played back during
preserve two. quality cOlltrol.
ONE DOLLAR brings operating and main-
tenance manual with schematics.
COMING NEXT MONTH - IN KIT
FORM .
• Hexadecimal Keyboard - Load pro·
grams direct from keyboards' 16
keys and verifying display. Does not
use Computer I/O .
• I/O for use with Computer Aid or
other digital recorders. Variable
baud rate selectable on externally
Video Intorface. Plug, into the Altair or IMSAI Analog Interface. This board is a complete in·
8800 bus and connecls to standard TV moni· terface for a CRT graphics display or an x·y located unit by one knob. Can load
tor (or modilied receiver) . 8·bit input connecls plotter, and provides 8 channels of software· computer or accept dumps without
to almost any keyboard. Characters are dis· controlled AID conversion . There are 1 or 2 software. Turnkey Operation. For
played as 16 lines of 64 or 32 characters each, channels of analog output with 10'bits resolu·
in a 7x9 dot matrix. (64 character line requires tion (0·10v or ± 5v out), 6·bits of latched di· any 8 bit computer.
a high resolution monitor or extensively modi· gital output, and 8 analog comparators. Record/Playback Amplifier.
lied receiver.) The character set includes 128 1 channel (0·10v): $135 Kit $175 Assem . and Expanded version of our Computer
upper and lower case ASCII characters and 64 tested, 2 channels (0·10v): $185 Kit $235
graphics characlers for plotting a 48x128 (or Assem . and tested, (Bipolar option ( ± 5v) add Aid board for use with your own
64) grid. Characlers are stored in the onboard $8 for 1 ch., $12 for 2) delivery 30 days deck (cassette or reel to reel). Go to
memory and may be accessed directly by the 9600 baud on reel to reel. Digital in,
computer. The outpul is standard 525 line EIA Microcomputor Systom. A system based on
RS170 video. our microcompuler and video boards. In· diQital out, serial format.
eludes motherboard , cabinet, power supply,
$160 Kit $230 Assem. and tested (Add $25 and an operating system and monitor on * Interested in these? Send your name
for 64 character option) delivery 30 days PROM. (Avail. 1st Q. 1976) and address for brochure when released.
Micro Computor. A one board computer sys·
lem con taining an 8080 processor , 512 bytes Send check or money order for $149.95,
RAM , space for 1·3 K bytes PROM or ROM , Master Charge & BankAmericard accepted,
and a serial 1/0 port (optional). Compatible All prices and specificalions subjecl to change plus $2.00 Shipping & Handling (N.J.
with IMSAI and Altair memory and periph· without notice . Prices are USA only· Calif. Residents add 5% Sales Tax) to:
erals. Supports multiprocessing. (Avail. lSI res. add 6% sales lax.
O. 1976)
POLYMORPHIC SYSTEMS NATIONAL multiplex CORPORA TlON
P.O. Box 2207, Goleta, California 93018 3474 Rand Avenue, Box 288
South Plainfield, New Jersey 07080

61
Processing Algebraic

In an articl e which appeared last month, with one register ("the accumul ator") and
we showed how the small system user can six instructions as fo llows:
process algebraic expressions by using the LOA Load Accumulator
Bauer-Samelson algorithm, developed by ADD Add to Accumulator
F L Bauer and K Samelson at the Tech- SUB Subtract from Accumulator
nische Hochschule in Munich, Germany_ The MPS Mul tip ly Single Register
Bauer-Samelson algor ithm has many varia- DVS Divide Single Register
tions, depending on the type of algebraic STO Store Accumulator
expression processing we wish to do. The
most interesting of these have to do with the (We are assum ing for the moment that our
process of compi ling. multiply instruct ion produces a single regis-
Anyone who has ever thought about ter result in the accum ulator, and that our
writing a compiler has probably already divide in struction divides a single register
guessed that there are certain aspects to quantity in the accum ulator by a quantity in
compiler writing that are not hard at all . memory. This restriction will be relaxed
Consider, for exa mpl e, GO TO statements. If later on.)
a compiler is I·eading, as input, a source Suppose now that we have an ass ignm ent
program, and it co mes to the words GO TO, statement such as
it proceeds in a very simple manner. It reads
the next few characters - let us say they are K={I*J-I+J)/N
305, so that the statement is GO TO 305 -
and it writes, as output, whatever the If this is read by the compiler as part of the
machine code is for a transfer to some point source program, then the compiler must
in the object program corresponding to the write out the eq ui va lent machi ne language or
labe l 305. The on ly part of this that is assemb ly langu age code, which in this case
difficult at all is keeping a table of labels would be
(such as 305) and their corresponding
W Douglas Maurer addresses. That can be somewhat comp lex, LOA I
University Library Room 634 especia ll y when GO TO 305 is a so-ca ll ed MPS J
George Washington University forward reference - that is, when it precedes SUB I
Washington DC 20052 the label 305 in the source program. ADD J
DVS N
A Single Register Mach ine STO K
But all that pales in to insignificance
beside the problem of camp il ing code for or the corresponding machine language
algebraic expressions. Let us consider the (absolute binary or octal or hexadecimal)
simplest possible case. We have a machine code. How is this code to be produced?

62
Expressions Part 2
Once you know how to do basic processing on
algebraic expressions, you can begin to learn how to
write compilers.

We will now describe a modification of the operator, we mu st ge nerate code to


the Bauer-Samelson algorithm that produces multipl y I by J. The code that does this is
such code. The main areas of modification
are as follows: LDA
MPS
(1) The "result" of a computation, which
is calculated by the unstacking process, is no or its machine language equivalent as above;
longer a number, but rather a place where and the result, 1* J, is left, by these two
the result of the computation is stored. For instructi ons, in the accumulator. Let us
all of the instructions above (except STO), denote the accumulator by ,$AC (th e $ is
this will be the accumulator. Thus a special there so that we cannot possibly confuse this
code to signify the accumulator will be with the name of a vari abl e in the program,
placed on the operand stack. such as AC); then $AC goes on the operand
(2) Every time unstacking takes place, stack. Now we can put the minus sign on the
output code is generated in addition to the operator stack, directly above the left paren-
calculation of the result. thesis.
Let us go through the above assignment (6) The second I goes o n the operand
statement as an example. (Refer to BYTE stack.
No. 6 for a general discussion of the Bauer- (7) We cannot put + on the operator
An interpreter analyzes
Samelson algorithm.) stack, because its precedence is equal to th at
(1) The left parenthesis goes on the of the minus sign, which we must now algebraic expressions every
operator stack. unstack . We take it off the operator stack, time a calculation is made;
(2) The I goes on the operand stack. (I n and we take its operands, I and $AC, off the by carrying the process
this version of the Bauer-Samelson algo- operand stack. Remember that the second one step further we get a
rithm, we put variables - or pointers to operand is taken off first; so the operands compiler, which analyzes
them - on th e operand stack, and not their are ac tu ally $AC and I. What instruction the expression once while
values.) performs the subtraction $AC - I? Clearly creating a specialized ma-
(3) The * goes on the operator stack. chine language program to
(4) The J goes on the operand stack. SUB do the calculations.
(5) Now we cannot put the (binary)
minus sign on the operator stack, because it is the one we want. (If the subtraction were
has lower precedence than the * operator. I - $AC, this would have to be followed by
So we must unstack the *. We take it off the another instruction which complements the
operator stack, and its operands, I and J, off value in the accumulator.) So the above
the operand stack; and now we must cal- instruction is generated; and, since it leaves
culate a result. its result in the accumulator, $AC is put
Since I and J are the operands and * is back on the operand stack. Now we can put

63
+ on the operator stack, directly above the the case in which a human being might
left parenthesis. generate different code from that generated
(8) The second J goes on the operand by the algorithm. Suppose, for exa mple, that
stack. our expression is A*D - B*C. A human
(9) Now we come to the right paren- being would generate the code to mUltipl y B
The Bauer-Samelson algo- thesis. This means that we must unstack the an d C first, and later subtract it from A*D.
+ on the operator stack. Its operands are The Bauer-Samelson algorithm, however,
rithm will always generate
$AC and J (after reversing the order, as will always generate code from left to right.
code from left to right. Ultimately, it will calculate B*C - A*D and
above); so, just as in step 7, we want to
The result will not neces- then complement this, producing A*D -
generate the instruction
sarily be as fast as optimal B*C. The resulting code will not, of course,
code by a human program- ADD be as fast as the code that a hum an being
mer. would generate. However, the difference in
and put its result regi ster, namely $AC, back speed is minimal, and the so-called "optimi-
on the operand stack. Now the operator at zation techniques" which allow computers
the top of the operator stack is a left to produce better code are probably too
parenthesis; this is removed, leavi ng the bulky to fit into your small system.
operator stack empty. The above example expression, A*D -
(10) The / goes on the operator stack. B*C, illustrates two further problems with
(11) The N goes on the operand stack. compiling of expressions. The first is that of
(12) We are now at the end of the data types. If we use the FORTRAN con-
expression, and we must unstack the / and ventions, A, B, C, and D are all real numbers ,
generate the instructi on and we have to use floating point add ition ,
subtraction, multiplication, and division . In
DVS N many small systems, there are no real num-
bers, but the problem of data types may still
This is done in the same way as in steps 7 remain. There may be 16 bit and 32 bit
and 9, leaving the operator stack empty and integers, signed and unsigned integers, and so
$AC on the operand stack. on, each of which has its own instruction
(13) Finally - and this is not, strictly set. If mixed mode expressions are not
speaking, part of the Bauer-Samelson algo- allowed, we may determine the type of an
There is often the problem expression as soon as we see the first variable
rithm - we look at the left side of the = for
of data types: If all data is the first time, namely K, and generate the in it , and mak e sure that we use only
in the form of n bit instruction additi on, subtraction, multiplication, and
integers, this is not a division instructions of that type:
problem; but when multi- STO K (If we do allow mixed mod e expressions,
ple types of data are then it will be necessary to put a code -
allowed, mechanisms for to complete the generation of code In this $REAL, $INT16, $INT32 , or the like - on
conversipr are required. case. the operand stack along with each quantity
'" We have purposely picked a rather easy placed there to record the type of that
example, involving no temporary variables, quantity. Wh en we unstack, we must now
no quotient register, and so on. This is by no generate code to add, subtract, multiply , or
means all there is to th is version of the divide two quantities of the types given, and
Bauer-Samelson algorithm, but the further calculate not only th e result - which we put
refinements are not hard to visualize. back on the operand stack - but also its
First of all, we must mak e sure that we type. Thus all quantities on the operand
can generate code for all possible cases. For stack, in that case, are pairs, each of which
a reason which will become apparent, consists of a variable, register, etc., together
the special symbol $AC will never be on the with its data type.)
operand stack in two different places. So the The second problem illustrated by A*D -
operands of any given operator will always B*C is the use of temporary variables. In our
be in one of the following three forms: $AC one register machine, we will have to store
and Y, Y and $AC, or X and Y. All of these the value of A*D (or B*C) in a temporary
cases have been treated, or at least men- location during the calculation. Thi s store
tioned, above. The first two cases are, of instruction is generated when we are trying
course, equivalent if the operator is + or * to load a register - in this case the accumu-
(since $AC + Y = Y + $AC and $AC * Y = Y lator - whose contents cannot be destroyed,
* $AC}. as evidenced by the fact that the symbol for
The second case above, in which we may this register is currently on the operand
have to use more than one instruction stack. To illustrate this process, we shall go
(subtract followed by complement, for through the above example in the same way
example, as discussed above) corresponds to as we did before. The code we will generate

64
for the evalu ation of the exp ression A*D - t hat we need the current contents of the
B*C is accumul ator because ACSP is not ze ro. In
fact, the quantity currently in the accumul a-
LDA A tor is the va lue of A*D.
MPS D Therefore the rule is as follows: Whenever
STO TEMP1 we are abo ut to generate a load in structi on,
LDA B we first check to see if ACSP is zero. If it is,
MPS C we may proceed. If it is not, howeve r, we
SUB TEMP1 must generate another instruction to store
COM the accumul ator in to a temporary ce ll - in
this case, TEMP "I. The name TEMP1 is now
put on the operand stack in p lace of $ AC. It
(wh ere COM stands for "com pl eme nt the is not (necessari ly) put on the top of that
value in the accumu lator")' and this is stack. In stead, we look at the pointer to see
generated as fo ll ows: where to pl ace it. In thi s case, the pointer
value is 1, so that TEM P1 becomes t he first
element on the operand stack (counting
(1) A goes on the operand stack.
from the bottom), wh ich is where $AC was
(2) * goes on the operator stack.
(3) D goes on the operand stack. before. At the same tim e, ACSP mu st be set
to zero, denoting the fact that $AC is no
(4) We can not put - on the operato r
longer on t he opera nd stack.
stack, si nce it has lower precedence than *,
(In some algebraic expressio n eva lu ations, Evaluation of expressions
which we must therefore un stack. We take *
we will need more than one temporary cell. on a single register ma-
off the operator stack and A and D off the
ope rand stack, and generate code to mul - Let us call these TEMP1, TEMP2, TEMP3, chine often requires use of
etc. We have a temporary cell co unter which temporary operands in
tip ly A by D, just as before, that is,
is ini tia li zed to ze ro . Every time we need a memory.
new temporary cell, as above, we may
LDA A
increase thi s counter by 1. Alternative ly, we
MPS D
may check the opera nd stack to see what
temporary cells are currently on it, and pick
Since the answer is left in the accum ul ator,
out a new one in this way . If a new
we put $AC on the operand stack. At the
temporary cel l is needed, it cannot be
same tim e we keep a pointer to this stack
currently on the operand stack; however, its
position in a special cell which we sha ll ca ll
cho ice is otherwise unres tricted.)
ACSP (for $AC Stack Position). In this case,
the pointer value is 1, sin ce $AC is the first
quant ity on the operand stack (co unti ng Let us assume, therefore, that we have
from the bottom) . ACSP is initialized to generated
zero, and whenever it is zero, it is assumed
that $AC is not currently on the ope rand STO TEMP "I
stack .
Now we can proceed to put - on the followed by the two instructions as above.
operator stack, which was left empty by the The resu lt of these two instructions is left in
the accumul ator, so $AC goes back on the
previous un stacking.
ope rand stack. Note that t he contents of the
(5) B goes on the operand stack. operand stack were $AC, B, and C, with C
(6) * goes on the operator stack (si nce its on top; then $AC was changed to TEMP1
precedence is higher than that of the opera- and Band C were taken off. Now with $AC
tor at the top of that stack, namely - ). put back on, the contents of th is stack are
(7) C goes on the operand stack. We are TEMP1 and $AC.
now at the end of the express ion and must (9) Now we unstack the -. Its operands,
unstac k all the operators on the operator as give n above, are TEMP1 and $AC. If the
stack. - were a + we cou ld simp ly generate
(8) First we unstack the *. Its ope rands
are Band C, and it would seem that the code ADD TEMP1
we should generate is
and we wo uld be done. However, as it
LDA B sta nd s, we have a problem, because si mpl y
MPS C ge nerating

However, there is a problem. If we generate SUB TEMP1


the first of these two instructions, we will be
loading the acc umul ator and destroying its wo uld perform the operatio n $AC -
current contents, which we need. We can tell TEMP1 , rather than TEMP1 - $AC. We may

65
Generation of code for
expressions evaluated on
multi-register machines
can use the extra registers
as temporary storage; how-
ever, this introduces the
notice that $AC - TEMP1 = -(TEMP1 fically, a machine with more than one
need to keep track of
$AC), and, therefore, the instructions arithmetic register, in which add iti on, sub-
register usage and special
traction, multiplication, and division can
cases. SUB TEMP1 take place.) All we need is to make sure,
COM whenever we load a new register, that this
register is not already being used for some
will perform the subtraction we want. other purpose. Let us illustrate this by
considering again the ex pression A*D -
Multi-register Machines B*C. The code ge nerated for this, on a
The use of the spec ial ce ll ACSP as above multi-register machine, would be roughly as
is a special case of the use of a table of follows:
register contents . In genera l, a computer will (1) Load some register U with A.
have more than one register. FOI' each suc h (2) Multiply D by the contents of regis-
register (that participates in the in structions ter U.
to be generated), we will need a loca tion like (3) Load some other register V with B.
ACSP . All these location's are initiali zed to (4) Multiply C by the contents of register
zero at the sta rt of evaluation; each time one V.
of them is used, it will appear on the (5) Subtract one register from the other.
operand stack, and a pointer to its position
Here the registers U and V will have
there will be kept in the location cor-
corresponding stack position vari abl es,
responding to that particul ar register, In
which for the moment we shall call USP and
some cases we may simp lify matters and
VSP. At the beginning, these are set to ze ro .
keep onl y Boolean values (zero or one) in Wh en it comes time to gene rate the first two
these locatio ns; we can always searc h the instructi ons ("load A" and "multiply by
operand stack, if we have to, to find where a
D"), we search for a register in which this
register is on that stack, if the correspondi ng
computation can be performed. We find that
Boo lean value is 1.
As an examp le , suppose that we have a it can be performed in U (because USP = 0),
more typical kind of multiplication instruc- and so we generate instructions which make
tion which leaves a doub le word answer in use of the register U. At the same tim e, we
the accumul ator and a quotient register, set USP to indicate that register U is now in
which we shall denote by $Q on the operand use (assuming that the multiply instructi on
stac k. If the quantities being multipli ed are leaves its answer in U). Now, wh en it comes
integers and the quotient reg istel' is the least time to generate the next two instructions
significant part of the double register I'cs ult, ("load B" and "multiply by C"), we again
we can ass um e that the result goes in the look for a register that we can use. This time
quotient register and put $Q on the operand we determine that we cannot use U (because
stack immedi ate ly after generating a multi- USP 1= 0); so we have to keep on looking.
ply instruction. This in turn means that we If V is the next register that we look at, we
have to be prepared to accept $Q as an see that we can use it, since VSP = 0, and so
operand. If X and $Q, for example, are the we generate the third and fourth instructions
operands of + (which is being unstacked) above in such a way that they make use of
and there is no instruction to add X to the the register V.
quotient register direct ly, there may be an
in struct ion, which we can generate, to move Stack Machines and Lukasiewicz Notation
the contents of the quotient register to the Besides conventiona l singl e reg ister and
acc umul ator (or to exchange these two multi-register machines, there are stael?
registers), after which we can generate an machines. A load in struction on a stack
instructio n to add X in the normal way . Of machine puts the quantity to be loaded on
course, in this case, we have to check the the top of a stack of registers; a store
location corresponding to $Q before we instructi on removes (pops up) the quantity
generate a multiply, to see whether the to be stored from th e top of this stack. An
quotient register has to be stored in a add instructio n removes two registers from
temporary location. the top of the stack, adds their contents, and
In a multi-register mach in e, we wi ll not pu ts the resu lt back on top of the stack.
usually need any temporary cells. (By a Thu s a stack machine effectively performs
multi-register machine, we mean here, speci- about half the Bauer-Samelson algorithm in

66
hardware, and the generation of code for Once a string in Polish notation (or
such a machine is considerably simplified. "Po li sh string") has been formed, code to
We shall now describe how this is done. calculate the value of the corresponding
The code for calculation of an algebraic algebraic expression may be generated
expression on a stack machine is directly directly. Each operand corresponds to a load
related to the form of that algebraic expres- instruction, and each operator corresponds
sio n expressed in Polish notation. (The to an instruction which impl ements it. Thus
proper name for this is Lukasiewicz nota- in the above case the instructions would be:
tion, but it is popularly called Polish nota- Load A; load D; multiply; load B; load C;
tion because very few people can pronounce mUltiply; subtract. The first two of these
Lukasiewicz - an English approximation, instructi ons load A and D onto the register
however poor, is WOO-kah-SHEV-itch. stack in our stack machine. The next instruc-
Other names for Polish notation are "suffix tion takes A and D off the stack and puts
notation" and "reverse Polish." There is also A*D back on . The next two instructions put
"prefix notation" or "forward Polish," but Band C on the stack of registers, which now
this is never used in this context in contains A*D, B, and C. The next mUltiply
computing.) instruction takes Band C off the stack and A stack machine effective-
The Poli sh notation equivalent of a one puts B*C back on; the final subtract in struc- ly performs half the Bauer-
operator expression, such as A+B or C-D, is tion takes A*D and B*C off the stack and
Samelson algorithm in
formed by taking out · that operator and puts A*D - B*C back on. After this code,
hardware, so code genera-
putting it at the end: A B + or C D - . Th e we can have an instruction to store the
Polish notation equiva lent of a more com- result, and th is in struction leaves the register tion is considerably simpli-
plex expression is formed by breaking it stack the way it was before expression fied .
down into parts, normally two parts with an evaluation started.
operator between them; this operator is Polish notation is also often used in
placed at t he end , and the two parts are interpreters. An interpreter is like a com-
themselves expressed in Polish notation. piler, except that no code is generated;
Thus for (A+B)*(C- D), the two parts are instead , the interpreter actually performs the
A+B and C-D, or, in Polish notation, A B + indicated instructions as it goes. Typically,
and C D -, and the operator is *, so the an interpreter will go through an initial
entire expression is A B + C D - *. phase (often ca ll ed, confus ingly, a "compiler
Similarly, A*D - B*C is expressed in Polish phase") in which the program to be inter-
notation as A D * B C * -. preted is read, and al l expressions converted
Conversion of an algeb raic exp ression in to Polish notation (among other things) and
ordinary, non-Polish (or, as it is often called, stored internally in this way. The actual
infix) notation into Polish notation may be interpretation now fo ll ows, with the inter-
performed by using a drastically simplified preter moving from one stateme nt of the
version of the Bauer-Samelson algorithm. interpreted program to the next, doing what
There is only one stack, namely the operator each statement says and proceeding to the
stack. Operands, instead of being put on a interpretation of whichever statement comes
stack, are put directly on the end of the next in logical order. (Thus if it is inter-
string in Polish notation which is being preting IF K=O THEN GO TO ALPHA, and
constructed. As an examp le, let us go K is in fact zero, then t he statement labe led
through the string A*D - B*C once again, ALPHA will be interpreted next.) The
according to th is version of the algorithm: advantage of keeping expressions in an inter-
(1) A goes on the end of the string. nal form corresponding to Polish notation,
(2) * goes on the stack. rather than ordinary infix notation, is that
(3) D goes on the end of the string, Po li sh notatio n may be evalu ated much
which is now A D. more efficiently than infix notation. All we
(4) * is unstacked, that is, placed on the have to do to evaluate a Pol ish string is to
end of the stri ng, wh ich is now AD *. sim ul ate the effect of a stack machine, as
(5) - goes on the stack . outlin ed in the preceding paragraph. That is,
(6) B goes on the end of the string, we go through the Polish string from left to
which is now A D * B. right; whenever we come to an operand, we
(7) * goes on the stack (as before, since place it on a stack, and whenever we come
its precedence is greater than that of - ). to an operator, we act as if we were
(8) C goes on the end of the string, unstacking it. This is the "other half" of the
which is now A D * B C. Bauer-Samelson algorithm; like the algo-
(9) * is unstacked, so the stri ng is now rithm given above to convert a string into
AD*BC*. Polish notation, it uses on ly one stack, but
(10) - is unstacked, so the string is this is an operand stack rather than an
fina ll y A D * B C * - . operator stack. -

67
pl easure of compu te r ho bbyists and the
speed wi th which home co mpu ting is
develo p in g.
NEV ER YO U MIND
I have for some t ime bee n thin king abou t
the software requirements of both home and
ho bby ist co mpu t ing. I thu s fo und yo ur
December edi to rial and th e compl ementary
articl e on " Th e Software Vacuum" by Chris
OCCUPANT
Ryland parti cul arl y in te restin g.
BOX BYTE Th ere are several factors wh ich are certai n
PETER BOROUGH to govern the develop ment of hobby ist and
Nil 0 3458
home computing in t he yea rs to come:

·1. There will cont inu e to be dramat ic


improvements in hardware per-
fo rm ance in clud ing processor speed,
in structi on set sophi stication, and
memory speed and capabil ity.
2. Th ere will co ntinu e to be a prolifera-
ti on of non-co mpatibl e bu t new,
FILLING A VACUUM WITH PROMs powerful and otherwise desirable CPU
chips.
Th e answe r to the article on page 12 3. The pr ice to perfo rm ance ratio of
(BYTE December 1975) by Ch ris Ry land hard wa re will continu e to improve.
conc ernin g proprietary programs and their 4. Software developm ent will co nt inu e to
dupli catio n via IBM , Xerox o r simil ar be labor in te nsive and th erefore ex pen-
copi ers, may be PROMs. sive.
Wh y don't vend ors put their programs in 5. Application programs wi ll co nt inue to
PROM s (or ROMs) and se ll them as " hard- be limited in sophistication, an d co m-
ware"? Th e progl-a ms co ul d be sold to res ide pu ters wi ll cont inu e to be exo tic toys
in several di ffe rent storage areas and use of o nl y arca ne in terest to a min ori ty
cu stomer RAM for field s th at need to be unless powerfu l, easy to lea rn and use
written. The use rs wo ul d no t get li stings, hi gh leve l languages and other softwa re
onl y fun ction desc ri pt io ns of what th e pro- are rea dil y ava il ab le.
gram does, where it is in me mory, and where 6. Th e amoun t of com pu ter power per
(and how mu ch) RA M it needs. Fm exa mpl e doll ar ava il a bl e from manu fac turers,
co n s id e r t he fo ll ow in g prototype the number of compe ti t ive and co m-
advertise men t. pl ementary systems on the market,
FO R SA LE: Wi dgit Program. Di spl ays and the qua nt ity and quali ty of serv-
1 to 47 hexagona l widgits in a 512 ices ava ilab le from both hardware and
byte RAM buffe r. Buffe r may be software su ppl iers are all directly
Why don't vendors put di spl ayed on a C RT as 16 lines of 32 related to th e size of th e market. Th at
their programs in PROMs characters per line. Ava ilabl e fro m is, the more hob by ists with compatible
(or ROMs) and sell them stock fo r PROM locatio ns 8 K, 32 K syste ms, the better off all of us wi ll be.
as "hardware"? and 60 K; stock RAM loca ti o ns 0 K or
4 K; length 539 bytes. Custo m address Thu s the qu ali ty a nd powe r of ha rdware we
all ocations ava il abl e at ex tra charge. will be abl e to affor d in the future is
Of course th e detai ls would change depend ent on th e desirabili ty and tra ns-
dep ending upo n wh at th e produ ct is and fe ra bili ty of the ava ilabl e software. As Mr _
how imp ortant it is. Ryland po inted ou t, so ftwa re is not goi ng to
"grow on trees." Co mpl ex packages may be
DP Parks
deve loped by amateurs, but the ir ma in te-
Ca ry NC
na nce is often a full t im e job. Since copy in g
costs are relat ive ly low, it is a di ff icul t
MORE ON VACUUMS pro bl em to create ways by whi ch the soft-
ware supplier ca n assure hi mse lf a retu rn on
You are doi ng an exce ll ent job with hi s investment.
BYTE. Each month, when a new issue I be li eve th e prob lem is so mewhat co m-
arrives, I attack it wi th th e " total imm ersio n parabl e to th e sa le of I-ecorded mu sic. In that
meth od" and don't co me up fo r a ir un til bu siness th ere is it pro bl em of "record
every arti cle is fi ni shed. I am certa in that the pira tes," but most com panies ma ke a reason-
cl earing house an d tuto rial fun ct io ns BYTE abl e profit. Th ey succee d because the
performs are greatly enh ancin g bo th th e market is large enough to allow the uni t

68
Now, you can buy an Altair B800 or
Altair 680 computer kit right off the
shelf. Most all Altair options, software
and manuals are also available. The
MITS Dealer List below is just the
beginning: ~

Ar, ROWHEAD COMPUTER CO. COMPUTERS & STUFF


es MARSH DATA SYSTEMS RIDG' lAY EAST
(TI ':! Computer Store ) 1092 S. State St. 5405· B Southern Comfort Bl vd. Retail :omputer Cent.er
11 . 56 W Pico Blvd. Orem, UT 84057 Tampa, FL 33614 161 Bell St.
Lo,,, Angeles, CA 90064 (801 ) 224·2066 (8 13) 886-98}0 Cha ~1 r in Faii ~ , OH 44022
(21 3 ) 478·3168 (Cleveland ) 12 16 ; 247-4845
GATEWAY ELECTRONICS MICROSYSTE VIS
BYTE'TRONICS 2839 W 44th Ave. 6605A Backli( 'k Rd. THE COMf UTER STORE, INC .
5604 Kingston Pike Denver, CO 80211 Springfield , V ' 22150 P( · Box 2t. ~ 1
Knoxville, TN 37919 (303) 458·5444 (Washington L·C area ) Fr mingharnCeni-: r,MAOl701
(615) 588·8971 (703) 569-1110 (6 n 877 ~ 984
GATEWAY ELECTRONICS
THE COMPUTER SYSTEMCENTER 8123·25 Pag e Blvd . CTl DATA SYSTEMS
3330 Piedmont Road St. Louis, MO 63130 3450 East Sprin St.
Atlanta, GA 30305 (3 14 ) 427-6116 Long Beach, CA 0806
(404 ) 231·1691 (213 ) 42 6-737';

COMPUTER KITS BYTE SHOP


1044 University Ave . 1063 EI Camino ?ea l
Berkeley, CA 94710 Mountain View" .\ 94043
(415 ) 845·5300 (415 ) 969·5464

NOTE : Altair Is a registered trademark of MI T -"" Inc .

69
return to be small in comparison to copy ing sors to most efficiently execute this standard
costs. If this ana logy is correct, we may be in set of 256 instructions. ... [Th e main
the un env iab le position of not hav ing a large probl em is picking the right "universal
market because of the software vacuum u nti I ins truction set." I
we have a large mar ke t. IThe old boo t- ... We should recall th at today 's micro-
stra pping problem.] processors are superior to the largest com-
In spite of this probl em I believe there are puters of 20 years ago. In 20 more years, we
a t least three likely sources of software. may have hom e computers equivalent in
First, the CPU chip manufac turers will con- power to the IBM 370/168 or CDC STAR or
tinue to provide software. Thi s software will even the Illiac IV . We shou ld therefore think
be relatively inex pensive because the y will big and insist on upward compatability of
expect it to increase sa les of both the CPU any software we develop.
chips and memory. As the amount of Michael A Sicilian
memory in the average m icrocompu ter ,Reston VA
grows, the chip manufac turers will probab ly
move towa rd high er leve l langu ages and
other sop hi sticated software. Th e ch ip man- INSTANT ADDICTION
ufacturers will also probabl y se ll more and
more software in mask progl'a mm ed read Last weekend my husband di scovered
only memory as the market deve lops. BYTE amo ng hi s broth er's magaz in es. That
Second, microcomputer manufacturers will did it! I didn 't see hi s eyes th e rest of the
continue to be a source of sof tware of weeke nd because they were hidd en behind
increasing comp lexity. Again, th eir primary your magaz ine. I know it mu st have been
goal will be to increase the desi rab ili ty of in teres ting becau se he read through Saturd ay
their product. Unfortunate ly, it will be very afternoon nap tim e AN D Sund ay afternoo n
difficult fo r them to avo id software pirating nap time. I'm sure you don 't real ize just
One solution might be to by users, and the use of their software on wh at an unbeli evabl e feat this is. (My onl y
identify the 256 most competi tive systems. If these prob lem s are ex pos ure to the magaz in e was the outside
valuable and powerful in- excessive we will see less softwa re fro m th is cover, which is as close as I dared get.)
structions we might desire sou rce. Third, we can ex pec t to see "surplus No w, at my hu sba nd 's in sistence, I am
in an "ideal" 8 bit proces- software" on th e market. Many OEMs enclosi ng a ch eck in the amount of $3 0 for a
sor. Ior igina l equ ipment manufac turers I who use three-year subscription to BYTE ... but,
microc omputers in th eir products are bound wou ld it be possibl e to have the sub scripti on
to devel op softwa re for the ir own use. Over begin with th e first issue of the magaz ine
a period of time, this so ftware will eith er sin ce my broth er-in-law wou ldn't let us have
enter the public domain on a non-supp orted hi s copies of the fil's t three issues?
basis, or will be so ld as a sid eline of such
Mrs J Ryon Walker
companies.
Oklahoma City OK
Unfortunate ly, all of the above sources
are on ly going to help users of th e specific P.s. I'm not jea lous of your magazi ne - just
chip to which they are directed, It is alm os t anxio us to do som e readin g in it myse lf l
as if, in stead of one group ,of computer
hobbyists, th ere is a group of 8080 users, a
group of 6800 users, COSMAC users, IMP-16 BYTE is velY much in dem and. We
users, and F-8 users, etc. , with no overl ap of cannot promise you bacl? issues, but you
interest a nd no cross benefi t from the have been entered on our bacl? issue waiting
developmen t of software. list. A fter the recent completion of a fin al
, One way around thi s probl em might be to bul/? mailing of issue Number 7 to charter
identify the 256 most valuab le and powerful subscribers, we're down to abou t 400 copies
instruction s we might desire in an "ideal" 8 of that issue. Th ese will be shipped to the
bi t processor. We could th en deve lop a waiting list on a first come, first served basis.
firmware emul a tion (i. e. , a mi cro- Wh en Number 7 's are out, Number 2's and
programmed processor) that would convert Numb er 3's will be shipped to the waiting
this universa l in struction se t into a serie s of list in the sam e fashion.
subrouti ne call s spec ifi c to eac h parti cular
chip. This alternative trades speed for uni- INTERCHANGE STANDARD?
versal appl icabil ity of software, mem ory
efficiency and ease of assembly level pl'O- am amused by yo ur complaints about
gramming. It also has th e benefit of pro- the standardization (or lack thereof) of
viding a common target for all chip manu- computer inter faces. An interface sta ndard
facturers . Each manufac turer might be ex ists wh ich should be idea l fo r sma ll ,
expected to microprogram hi s future proces- moderate speed (up to 'I megaby te/sec)'

70
byte seria l/ bit parallel data transmission . It
all ows up to 15 devices to be con nected by
up to 20m (65.5 ft) of cable. That's one
interface connection to provide co ntro l of
all 15 devices, not one interface board each,
as some systems require. Furthermore, the
What's
organizatio n looks like it ought to make the
design of a true 10 channel fac ility pretty
easy. (An 10 cha nnel is a piece of hardware
New?
which executes a set of comma nd s involving
the contro l of 10 devices and the transfer of
data more or less transparently to the main
program. Since it takes care of the book-
keeping invo lved in cou nting bytes a nd
upda ting the storage address to/from which
the da ta is moved, on Iy one memory access
per byte is needed in stead of 3 or 4; a great
savings indeed.)
A copy of the stan dard - IEEE Sta ndard
Digital In terface for Pl"Ogrammable In str u-
mentati on STD 488- 1975 can be obta in ed
from
lEE
345 E 47th St
New York NY 1001 7
for $'10 to non-mcmbers.
If we cou ld get enough peoplc to agree
th at they like it, I think tha t this system is
rea ll y the way to go.
I hope your magal'ine does n' t run out of
in teres tin g things to say; so far, it looks
grcat. Have I·un. ATTENTION HARDWARE
Roy Hinman EXPERIMENTERS, COMPUTER
Chicago IL REPAIR TECHNICIANS
What do yo u do when yo u're no t quitc
surc what yo ur 8080 sys tem is or should bc
REFLECTION AND ANALYSIS doing] How ca n you dcvclop a n 8080
syste m usi ng a full fun c ti on con tr o l panel
think this time of th e ycar is pro ne to when the ultimatc Lise will be with out the
rdl ec ti on ,Ind analysis (among a lot of othcr contro l panc l] On c dn SWC I' o f coul'se is to
things). In the P ~ l s t ycar microproccssors and usc a simu ldto r which prov id es a CPU plus
the re lated digital devices for the man in the "someth in g elsc." An cxa mple is thi s
street have come a long way . It is hard to pin MAS-80 Microcomp ut er AnalY Ler System by
down a good birthdate (li ke MITS' s entry California Miuo Computer . The systcm con-
into the market, o r Titus's artic le on the tains its own 8080 chip wh ich is protected
8008, or maybe the TV Typewr iter), but aga in st ddm age via buffer c ircu it s. Bcforc
about a yea r ago most e lec tronic hobbyists plugg in g thc 8080 int o a ncw sys tem or to
were just beginning to see the field in its ga in a full serv ice Iro nt pa nel in an cx isting
own right. Now in one year we have some systcm, simp ly sub stitute the 40 pin dua l in
ve ry good sources o f inform atio n to work linc output co nn ec tor of this ana lYLc r fOI'
with, good so urces of parts (and gett in g the normal 8080 chip. The " so mcthing clse"
better), and some imaginativc people in the pl'ov ided by this product in c lu des sin gle step
field. execu t io n log ic, ad dlocs s ma tch ing rca tUloCS,
I think a major reason for the success contro l a nd mon it m in g of thc 8080 signal s.
comes from two large group s. Th e first is the The unit also in cludes space fOlo a limitcd
frustrated e lectron ics cx perimcnter who ,Ilnount of user dev eloped cus tom ci rcu itry.
used to eith er build gadgets or repair TV s or This $850 ana lyzer could be thc bc-
was into amatcur radio. Many wo uldbc radio gi nn ing of a ncw br ccd o f test bench
operators stayed away from amateur radi o equ ipmcnt dcsigned for the mi cropr occssor
possibly becausc of the cost, the FCC tes ts, fic ld . For morc informa ti o n, con tact CMC at
or may be even the FCC scares them. Many 9323 Warblcr Av, Foun tai n Va ll ey CA
people give me just those reaso ns. Another 92708.

71
group co ntains th e persons who somewhere EXPLODING CIRCUITS
along the educationa l path have done some
progra mm ing and got hooked on tell ing a They say that ex per ience is the best
machine wh at to do. There are a hell of a lot teacher and that practice makes perfect. In a
of people out th ere who have don e some couple of microseco nds my computer taught
BASIC or FORTRAN coding, eve n if it was me th e worth of both these statemen ts. I
just reading and printing ca rd s for Snoopy had my computer up an d running when I
calendars. Those I've met who have interest dec ided to wire in another circuit. It seemed
in personal computing have great anx iety like it would be a simpl e task since both the
about the hardware. Co mputer clubs with a co mputer and the other circuit were
few hardware heav ies wi II help some of tha t working. Th e o nly problem that could
anx iety in the future, I hope. I think clubs deve lop I figured I co uld eliminate by
are an imp ortant part of the hobby's future. co nnecting an extra ground lin e so that I
I think th e best th ing the computer would not deve lop any ground loo ps. I had
hobby has go in g for it are the standard logic just made the conn ect ion to the computer
parts that don't req uire a MS in EE to use. wh en th e other end of the wire fell aga inst
Finall y, an elec tronic s hob byists has a rea lly the 1·10 VAC where it comes into the
wide open field to pl ay with at the leve l that co mputer. Needl ess to say I had left the
high scho o ls can spo nsor. (I guess that' s a computer plu gge d.
predi ction - in the fa r fu ture, maybe fiv e
years.)
Your editorial and Ryl and' s artic le po in t I never knew that inte-
up an important issue - software vac uum . grated circuits could ex-
On e point that ca n distin gui sh the hob byists' plode.
market from the bi g tim e is th e use of
PROMs. I think many software houses could
protect themselves a littl e better from the
The power switch was off but yo u should
un ethica l hobby ist by prov idi ng plu g in
have see n th e arcin g that happened betwee n
firmware ra ther than li stings. Th e software
the close ly spaced foil paths on the printed
could still be copied, bu t I th in k pl ug in
circuit board. By the time I pulled the plu g
compilers or interpreters will have a definite
there was smoke pouring out of my com-
role in th e future. Eve ntu all y, the plu g in
puter. I neve r knew that integrated circuits
firmware wou ld be more effec tive than
co uld exp lode. Wh at happe ned was that I
copying th e li sti ng and running in RAM .
delivered 110 VAC to every ground pin in
Th at may not deve lop, but specu latio n is
the computer. Some of the integrated cir-
fun, anyway .
cuits that were further fr om the point of
Gary Liming 11 0 VAC entrance did not suffer physically
Florissant MO bu t there are a few th at do not see m to work
the way th ey should . I know my 1101
memory circui ts are doi ng so me funn y
There are a hell of a lot of things.
ENTHUSIASM On my next computer I am go ing to do
people out there who have
things different ly. All th e high vo ltage
done some BASIC or On the overwhelming reco mm endation of sources are go in g to be physically iso lated
FORTRAN coding, even if two close friends and perusal of the first fro m the co mputer and they will be plainly
it was just reading and four iss ues of BYTE , here is $12 for a sub- mark ed. By high voltage I mea n anything
printing cards for Snoopy scripti on. So fa r I have lea rn ed more fro m that the computer doesn't use direc tl y, such
calendars. th e arti cles in BYTE th an I have been a bl e to as ·110 VAC or cvc n 10 VAC. The secon d
learn from any other sou rce. In additi on I thing that I am go in g to do is in stall so me
have bee n ab le to decide what to do to get outlets on my bench that I can turn off
my feet wet in the microp rocessor area. You eas il y with a switch. Th at way I ca n leave
have a very profess iona l fo rm at fo r the my test equipm ent running and when I need
maga zine and very we ll ed ited arti cles. In to go into a piece of eq uipment all I need to
parti cul ar you do not fall into the technical do is throw th e switch remov ing all power to
magazine trap of editin g out the auth ors' th e circuit. I might eve n in sta ll an audi o
enthu siasm, so mething that went out of alar m telling me when the powe r is off. You
technical writing abo ut 50 years ago. see, I have a terrib le memory and if there is
I look forwa l·d to long assoc iatio n with so me way th at I get fee dback telling me it is
th e magaz in e as a subscriber and perhaps a unsafe to go into some equi pme nt it might
contributor. sto p me from doing somethin g stup id .
Bill Harding I hope my exper ience has taught me
State College PA somethin g. May be two atte mp ts at compu te r

72
building isn't enough practice to beco me
perfec t bu t I wi ll do a better job t he seco nd
time. Wi t h all the new circui ts co mi ng o u t,
my fi rst comp uter had becom e somethi ng of
an antique; so its un t im ely pass ing m ay se rve
more of a purp ose than if it had lived on.
[N ame withh eld due to embarrassm ent]

LIGHT PIPES FOR A LIGHT PEN ?


What good isa
I grea t ly enj oyed you r arti cle on I igh t
pens; i t wi ll be a useful addi t io n to any
Micro-Computer
sy stem. However, a few poss ibl e modi f i-
cations could eliminate so me of th e pro bl em
areas you men tio ned. How about using a if you can't
make it work?
f iber op t ic light p ipe m oun ted in the pen7
T hi s would elimin ate any load in g caused by
a long wire run to the co n tro l c ircuitry and
i t woul d narrow the area detec ted by t he
pho to ce ll w ith ou t lenses. Th e se nsitive area
would be o nl y a small fr ac ti o n larger than
the di amete r of the ligh t pipe end. A plastic
type of f iber wou Id be better than glass, due
to its greate r f lex ibili ty and lowe r cost.
David Raw son
1825 Gar y
Wi ch ita K S 67219
PS: A ny body in m y area workin g w ith
m inis, please get in touch.

MI CROPROGRAMMED
PROCESSORS , ANYONE ? Startup time on micro-computers can be a real problem . We know that. That's
why we've developed The Micro-Designer. The first complete package of hard-
rea ll y di g the fac t th at you have a ware, software and educational materials. All with one purpose : to speed micro-
processor system design.
magaz ine dedi cated to the nov ice; I ca n be
How? By providing the only microprocessor test and development system with
lea rnin g sof t wa re while I am workin g on my solderless breadboarding capabilities. At its heart : the Intel 8080A processor
hardware. En closed yo u will f ind my appl i- chip, providing all signal functions. A front panel that monitors functions of the
catio n for subscr iption. One thing I would microprocessor and allows data I/ O with or without an asynchronous terminal.
Up to 65 K memory. And the Bugbooks, E&L 's innovative approach to self- ·
li ke to see is ar ticl es abo u t " do- it· yourse l f" teaching micro-electronics.
micro processor system s, such as th e Intel
And, when you're ready for your final system, you use the same modules and
3000 se ri es, whi ch u ses a con tro l uni t and an cards that you learned on. So experiment. Design. Test. Because now there 's
array of cen tra l pr ocessing elemen ts to a system that's caught up wi th imagination. The Micro-Designer from E&L
impl emen t the mi croprocessor. Th e ma in Instruments. Squander a minute now to write us about it; we 'll send you full
Information. And maybe save you weeks of work.
adva ntage to thi s syste m, as I see it, is that
you can bu ild a syste m as powe rfu I as you
li ke (o r as weak as you like); an d you can
co nf igure it t o m atc h any other m icro-
processor. T he main di sadvantage, th ough, is E&L INSTRUMENTS, INC.
that you have to program your own m icro- Circuit Design Aids
in stru ctio ns, bu t t hat migh t be a bl essing in 61 First Street, Derby, ct. 06418 (203) 735-8774
d isguise, because you can se lec t the best of
the in stru ctio ns fro m the other pr ocessors,
and u se t hem in your o wn . Bu t that's
enough fro m me - I 'd li ke to see w hat other
peopl e have to say abou t it.
Steve Allen
Portland OR

73
Hudson Regional Computer Fair

Computer Fairs? It just had to happen -


the beginning of computer fairs for high
school students, analogous to science fairs.
BYTE received an announcement of the
Hudson Regional Computer Fair, March 27
1976 at the White Plains Public Library,
White Plains NY. Computer fairs are
intended to promote and encourage the
imaginative use of computers by elementary,
middle and high school students. Th e White
Plains event is sponsored by the Library,
Comput-O-Mat Systems and Wang Laborato-
ries. Entry blanks and guidelines can be
obtained at the Reference Desk of the White
Plains Public Library, 100 Martine Av, White
Plains NY.

12 rears okl. '1b.. magazine


has kidsdrawil'lg1of.1 and I
A Club In Michigan?
said. 'Thisis my big brealc ..."

E, icSt_a,!
C J Lamesfield (Box 271 , Davison MI
48423) would like to contact individuals
interested in forming a computer club in his
locale.

Clubs and Newsletters New Jersey's Amateur Computer Group

Th e ACNJ NEWS is the information organ


New Brochure from HP-65 Users Club
of the Amateur Computer Group of New
Jersey. The December issue reports that the
The HP-65 Users Club is a non-profit
November meeting of the group included
volunteer group of enthusiastic program-
demonstration of a small 6800 system by
mable calculator users, designed to provide a
Jim Loy of Motorola. A geographical
source of information for the owners of such
breakdown of members by county and state
machines. The club has just printed a new
was also published. A summary of member
brochure describing its objectives and systems showed that of the 129 members,
activities. So far the club has centered on the 52 have microprocessor systems at home.
HP-65 ; but programs and techniques con- Other activities of the Garden State
cerning the HP-55, HP-25 and other organization include a software library run
programmable calculators have appeared in by Tom Kirk and amateur computer courses
the newsletter 65 Notes which is published arranged through the Union County Techni-
monthly. To write for the brochure (or cal Institute. Group purchases are also being
subscribe to 65 Notes at $12 per annum) arranged with Carl Reisinger coordinating
write : the activity. For information on future
happenings, contact Sol Libes at (201)
HP-65 Users Club 889-2000 (x-248, x-247 or x-282) days, and
Richard Nelson (201) 277-2063 evenings. Meeti ngs are held
2541 W Camden PI the third Friday of every month - even
Santa Ana CA 92704
months at Union County Technical Insti-
tute, odd months at the Middl esex County
College.
Project SOLO

An experiment in applications of com-


puters to education, Project SOLO is located Seattle Club Activity
at the University of Pittsburgh. The curious
should write to Soloworks, Thomas A Bob Wallace, PO Box 5415, Seattle WA
Dwyer, Professor of Computer Science, 98105, reports that a club is formin g in the
University of Pittsburgh, Pittsburgh PA Seattle area. For information, call (206)
15260. 524-6359 11 AM to 5 PM.

74
British Amateur Electronics Club

One organization which has been going


strong on electronics themes for some ti me "
is the British Amateur Electronics Club. The
II "
II

"
..
l!
BAEC Newsletter will be of local interest to
those who live in the British Isles, and to the
English speaking people in Continental "
II

.
II

Europe. (The fact that the newsletter is " "


"
oriented to the English language will make it
of interest to Americans in BYTE's audi-
..
"
~I
.
"
n" ' I "' ""<I" "~' ~"B. II U"U.""III11 I1" """" 11 "~;!I
ence, people whose second language is more I • : I I I I .. II . " . "lI tI :IIJl' 11111/ . " • • 1:).IIllIIlI " . . . . .HI OI .... \l ll 101 ioU. U III

apt to be Fortran, Basic, Cobol or PL/1 than


a people to people language.) According to
the flier sent to BYTE, the BAEC Newsletter
has published news of electronics and ideas The UCLA Computer Club
for projects since 1966. A yearly' exhibition
is held by the organization, and local Michael S Maiten, 3135 Barry Av, Los
chapters are found throughout Britain. Angeles CA 90066, sent in a note about the
Recently , major projects have been made a UCLA computer club. This is a campus-only
part of the quarterly newsletter. The first club, which allows students and staff at
such project was the BAC Naughts and UCLA to get time on the Campus
Crosses Computer. The BAEC Computer is Computing Network. According to Michael,
the current major project; the goal is to have the club is mostly software oriented (IBM
a general purpose computer design at the 360/91, DEC machines). The club owns its
conclusion. Fees for yearly BAEC member- own DEC classic L1NC computer and may
ship depend upon where you live: get more hardware in the future. The club
offers free classes in the evening; however,
£2.00 Sterling for one year, UK only. membership is limited to UCLA students,
faculty and staff only. Michael is the current
£3 .00 Sterling for one year, foreign,
secretary of the club. The club also has its
surface mail.
own IBM card form for use with traditional
£4.00 Sterling for one year, foreign,
computer center input output techniques.
air mail.
Write to:
The Hon Secretary, BAEC
Mr J G Margetts Want a Computers-Only Classified Advertising Publication?
11 Hazelbury Dr D H Beetle, 24695 Santa Cruz Hwy, Los
Warmly, Nr Bristol Gatos CA 95030 is in the process of
ENGLAND initiating a classified advertising specialty
publication called ON LINE. The idea is to
attract individuals' advertisements of person-
San Diego's Newsletter al surplus equipment with low cost printing
and an inexpensive subscription rate of $1
Personal Systems is the newsletter of the for four issues. (18 issues, 1 year cost
San Di ego Computing Society. Issue 4 of $3.75). The result should be much like one
volume 1 was received at BYTE recently and of the neighborhood· classified advertising
includes information on the San Diego publications which occur in many regions of
society's group purchases, an essay on the the country. The only difference is that the
history of the field to date by Lance A "neighborhood" in this case is technological,
Leventhal, a book review and other informa- not geographical.
tion. The address for inquiries is :

Personal Systems
10137 Caminito Jovial Association for Educational Data Systems
San Diego CA 92126
Th e Association for Educational Data
Systems is an organization concerned with
Milwaukee Hobbyists? computer uses in education. The AEDS
publishes a journal called AEDS Monitor on
Will Piette, W266 North 7060 White Oak, a quarterly schedule; the orientation is
Sussex WI 53089, is looking for compatriots towards secondary school and college
in the Milwaukee area. Anyone interested in educators who utilize computers in their
starting a Milwaukee area club should courses. AEDS is located at 1201 16th St
contact Will. NW, Washington DC 20036.

75
Nt N England Computer Society and place. Until a permanent mailing address
is established for NECS, inquiries should be
The second meeting of the New England directed to Carl Helmers at BYTE Magazine,
Computer Society was held December 3 Peterborough NH 03458.
1975 at 8 PM i the cafeteria of the Mitre
Corporation, B ford MA. The steering
comlnittee re oc .d on activiti( concerned PCC's Special Games Issue
witl form ~ i ), i lnization. A :onstitution Word from Peoples Computer Company
baseJ upon ar American R.idio Rel r.)' is that the January 1976 PCC is a special
League rac1j,) ;Itu model was p.esented f(. ~ issue devoted to games. It includes BASIC
discussion. versions of three classics on a theme of space
As at the ','irst meeting, the club auctioned ('xploration and adventu re:
off copies of Intel documentation supplied
by GoJy Carrol of Intel in order to fund Star Trek for an HP2000, with a com-
printing and mailing a newsletter to the 200 plete listing on four pages, plus
or so persons on the local mailing list. descriptions and sample runs.
The technical presentation was provided MOTI - A "save the empire from the
by Don Rc <;enthal and Chris Ryland in a alien MOTI invasion" game.
short tal k describing prospects for the RESCUE - A game of suspense in which
"HARPA" ',le.work : Ham's ASCII Radio the player gu ides the rescue of
,ol'otocol AGreement. The idea is to begin stranded astronauts.
Is your organizatkm list- development of an amateur radio ver~ :on of
ed here? Do you 'Mint to the ARPA network so that microcom ;}uters Find out the latest information on Tiny
start a local club? BYTE across the country could be linked by radio BASIC and other PCC projects by latching
wants to enCOi ',-age the into an automated packet switching net- onto this special 40 page issue. Single copies
transfer of infol 'Ition to work. One p,rpose of the tal k was to solicit are $1. PCC publ ishes a newspaper style
one' among the i rIctition- interest from active hams in the society. A publication several times a year, and is
ers of the persQ, 101 infor- show of hands revealed that roughly 50% of located at Box 310, Menlo Park CA 91-025.
mation systems art. If those present had ham tickets, and several
your club or organization were recruited into the project. One ;\1 put to
Is not mentioned here, be the project came from several amateurs who North Texas Hobbyists
sure to put a member in were experienced in the field of automated
charge of sending us the two-meter repeaters, which could be used as The Computer Hobbyist Group of North
Information on .!/our activ- a starting poin t for the design of the ll xas puts out a newsletter edited by Bill
Ities; If you're Interested in microcompu <er radio networking technol- h Iller and Neil Ferguson. The club meets
starting a club, tell us and ogy. regularly and has had some interesting
we'll help (lut b l printing The next meeting of the NECS was speakers. Contact Bill Fuller, 2377 Dalworth
your name ·. nd address. scheduled fo - January 7 at the same time No. 157, Grand Prairie TX 75050.

IM\llccwn(Q)6S. The new breed


of microprocessor, only $430!
The Micro-BB is a complete computer system built around the Motorolal AMI SBOO Micro-
processor. Micro-SB comes ready to run. with its own integral power supply, keyboard
and display. The 512 word John-Bug Prom contains all the service programs necessary
to load your own programs, inspect and edit. insert break points for debugging purposes
and execute. Edge connectors are provided for memory expansion to S4K and full1S Bit li D.
• Complete Micro-SB .......... $430.00 • Samsonite carrying case
• TTY I RS-232C adaptor 40.00 for Micro-SB ... . .. . . 42.00
• BK X Bit static memory board. 270.00 California Residents add S% Sales Tax

,- ---_._,- - -

76
N F S B R T N S P
R C R D M N S N R
T T P T R T R P
W R T X T R N L R G
D C D C N N S R
L B R V S G B W C
C D N P N T R H C M
N T N M R T C N H
C T P C C M G R D N R T
L T L S R Y N T P
M G S N L L T N R P R
V P D D P C L L F Y
L R R L S L R R G
p T Y P T N B R
Q X S C L R L T R L
F N C T N G S S Y L

but always in a straight lin e, never sk ipping

Space Ace letters. However, some of th e letters are used


more than once. After circlin g all th e words
on t he li st, th e seve n remaining letters
(includin g two blanks fo r vowe ls) in the
By in sertin g the mi ss in g vowe ls (a, e, i, matri x will spe ll the name of a high leve l
a, and u) in the approp ri ate blanks, all 50 compute r programm in g language these
words fro m the list will fi t in to th e matri x. words are related to. Be carefu l, though;
As yo u find eac h word and insert the correct some wO I'ds may ap pear to fit in more than
vowels, circle the word in the matrix and one place in the matt·ix. There is, however, Robert Bake r
cross the word off the Iist. Wo rd s may be onl y o ne co rt'ect pos iti on fo r eac h wo rd , so 34 White Pine Dr
forward, back wards, up, dow n, or diagonal, that a ll the words f!"Om the li st will be used . Littleton MA 01460

ANSWERS TO FEBRUARY (X, Y) CO-ORDINATES DI RECTION


R=R;t=t
NUMBERS page 69

Here is the answer to Rob ert Bake r's


4,3

EEEffi :*:
5 4 3

NUMBERS puzz le in the February BVTE:


Th e 12 letters left over spell "GROUND ELEVEN 10, 15 2 POSITIVE 6,14 2
HOG DAV./I In case yo u had troubles EX PONENT 2,3 2 RADIX 5,14 6
finding the words (or yo u like to cheat), t he FIFTEEN 3,11 4 RATIONAL 5,14 4
fol lowi ng li st will indicate where the first FIFT Y 3,9 8 REAL 15, 4 8
letter of eac h wo rd is located in the matrix 12, 11 6 ROOT 14,1 8
FIVE
and th e direction the letters go from the first 5,1 6
FO RT Y 1 5,1 7 SEVEN
lette r. The location is given as an X,V
FOUR 15, 1 8 SIX 1 ,5 3
co-ordinate in the matrix, with the letter P
FR ACTION 1,6 8 TEN 2,8 3
used as the reference point (X=4, V=3). The
HUNDRED 15, 8 8 THIRTEEN 6, 5 8
direction code indicates the direction the
letters go from the first letter as follows : IMA G IN A R Y 14, 12 5 THIRTY 5,5 1
INTEGER 6,1 2 THOUSAND 14,4 8
L OGAR ITHM 14, 13 6 THREE 7,6 3
B ILLI ON 13,2 7 MILLION 2, 1 5 4 TRI LLiON 4,1 3 4
B IN ARY 1, 4 2 MODULUS 6,13 3 TWELVE 8,4
COM PLE X 7,10 3 NEGATIVE 3, 15 2 TWENTY 13, 12 6
DECIMAL 3,2 2 NINE 5,6 5 TWO 9,9 7
EIGHT 13,9 4 ONE 2,5 8 ZERO 13, 1 7

77
What's in a Video Display Terminal?

Don R . Walters Let's look at the video display term ina I as interface which is used to enter data (alpha-
3505 Edgewood Dr a black box which is connected to a com- betic commands, instructions, and/or num-
Ann Arbor MI 48104 puter system (somehow) as depicted in bers) into the computer system. When a key
figure 1. Since the computer system has is pressed, the equ ivalent electrical code
already been exp lained (at the block diagram assigned to the character is generated and is
level) in BYTE ("The State of the Art" by available in parallel form. Thus all bits of the
Carl Helmers, November 1975, page 6), we character's code are available at the same
will concentrate on what smaller black boxes time at the output of the keyboard.
make up a video display terminal. Now that the electrical codes of charac-
ters can be easi Iy generated usi ng the key-
board, how wi II that data be transferred to a
VIDEO COMPUTER computer system? Since the data from the
DISPLAY SYSTEM keyboard is already in a parallel form, the
TERMINAL DATA
TRANSFER data could be transferred to the computer
LINK system through the parallel in terface in
figure 2. The parallel interface handles the
buffering of the data between the keyboard
Figure 7: Two black boxes: the video and the computer system (which must also
display terminal and the computer system. have a parallel 10 interface). The para llel
data from the keyboard could also be sent to
a computer system in serial form by using the
Figures 2 and 3 illustrate subassemblies serial interface of figure 3. Serial interfaces
typically combined to form the video are usually used when the data path between
display term ina I. We see that the video the video display terminal and the computer
display terminal is actually made up of some system is longer th an five feet, which would
more familiar subassemblies, such as a key- be the case when the video display terminal
board, video display controller, video dis- is to be connected to an acoustical coupler.
play, and a parallel (figure 2) or a serial The coupler is a device which changes serial
(figure 3) interface. Let's take a closer look data into frequency shifted tones to transmit
at each subassembly and see what its func- the data over voice grade telephone lines so
tion is. The keyboard is a man-machine that a terminal can be used with a remote
r------------------------,
,----------------,1
KEYBOARD 11------+1
I PARALLEL DATA
~I---_+I
I PARALLEL
\L..-_ _ _. j PARALLEL DATA I DATA COMPUTER
INTERFACE I AT TTL SYSTEM
1LEVELS
I WITH

1
VIDEO 1 • PARALLEL 1/0
I+-_ _ _~
\
DISPLAY
CONTROLLER I~-----"""'i
PARALLEL DATA L..-_ _ _ _ _ _ _ _ _. j .
INTERFACE

I
I
I
1

l ~II~~~AY ~ II Figure 2: Video display terminal interfaced


VIDEO to a computer system through a parallel
~-_-_--_~...:I~!:.._....:;~~~~!:!:.~!!!:~~!;~~.:... ____ ...J mterface.

78
r----------------------.
I
PARALLEL DATA CONVERTED I -_ _ _ _ _~

I KEYBOARD
I11-------+1
' - -_ _ _.....J
PARALLEL DATA
TO BIT SERIAL I BIT SERIAL DATA
I COMPUTER
I SYSTEM
120mA TELETYPE
PARALLEL TO SERIAL
INTERFACE
ICURRENT LOOP
I OR WITH BIT
SERIAL 1/0
RS-232C
II INTERFACE

1
611~g~AY
METHOD
11+-_____--1 BIT SERIAL TO PARALLEL
CONTROLLER I PARALLEL DATA '-_D_A_TA_C_O_N_V_ER_S_IO_N
I
_ _ _--' IBIT SERIAL DATA
L -_ _ _ _~

I
I
I
~
lVIDEO
DISPLAY
VIDEO
L.:-_-_-_--'-l~~~_.:::!~~~~~~~~..2~~~____ J
I Figure 3: Video display terminal interfaced
I to a computer system through a serial
Interface.
computer system via the telephone. The system, except that each data path must
serial interface converts the parallel data have its own interface electronics.
from the keyboard to a bit serial form. In The data from the interface (parallel or
this form, the bits of the character are sent seria l) is fed to the video display controller
one bit at a time until the entire character in parallel ·form. The video display controller
has been sent. Of course the computer converts its parallel data input to a com-
system must also have a serial 10 interface. posite video signal which causes the video
We now have traced the data path from display to show the desired characters.
the keyboard of the video display term inal The video display portion of the termina l
to the computer system. Let's trace the data is essential ly a TV set without the RF tuner,
path from the computer system to the video IF ampl ifiers, and mixer circuits, but with
display terminal. Data is sent from the the necessary circuitry to display a video
computer system to the video display ter- signal on a CRT screen.
minal in parallel or serial form with the same As you can see, the video display terminal
type of interface (parallel or serial) as is used is not a very complicated black box after
between the keyboard and the computer all.-

John M Schulein
Homebrew Computer Club
POBox 626 Pot Position Digitizing Idea
Mountain View CA 94042

A scheme to convert the position of a Figure 7: Pot Position Digitizing Idea.


potentiometer arm into a digital value, using Hardware
a cheap commonly avai lab le timer IC
+5V
(N E555) and a few bytes of program in an
8008 or 8080 microprocessor, is shown in
200K
figure 1. The software is organized as a IK POT
subroutine and uses the flags and the A and
B registers. The NE555 is triggered by the 3 NE555 6
OUT TRIGGER instruction and then the
STATUS TO PROCESSOR (07) 4-------4>------=::...J
l' O. I/"F
~
2 5
program monitors the output pin of the
NE555 in a loop that increments the B
0
0
0
l' O.OI/"F

register. When the NE555 times out, the


program exits from the subroutine and the B TRIGGER FROM PROCESSOR
----u--
(OUTPUT STROB E )
register contains a digital representation of Software
the pot position. POTPOS: MVI 8,0
The hardware and software shown in OUT TRIGGER
figure 1 was run on an 8008 system with a CaNT: INR 8
2.5 J.1s clock and the B register digital output IN STATUS
ANA A ;Sets sign flag
varied from 2 to 65 Hex. The values of the JM CaNT
pot and/or the timing capacitor can be RET
modified (see the NE555 data sheet) to suit NOTES: 1. Software written as a subroutine for the 8008 or 8080 microprocessors.
your processor's speed 'and the desired range 2. The flags and registers A and 8 are affected by the subroutine.
of the digitized output.- 3. Register 8 contains the pot position on exit.

79
What's
New?

AN INTRODUCTION TO
MICROCOMPUTERS
From the authors of
"THE VALUE OF POWER"

Here is a book that is easy to read. It takes you .by the hand,
from elementary logic and simple binary arithmetic, through
the concepts which are shared by all microcomputers. It tells
you how to take an idea that may need a microcomputer,
and create a prod",ct that uses one.

This book is complete-every aspect of microcomputers is covered: the


logic devices that constitute a microcomputer system; communicating
with external logic via interrupts, direct memory access and serial or
parallel 1/0 ; microprogramming and macroprogramming ; assemblers and
assembler directives; linking and relocation -everything you need to
know if you are gding to select or use a microcomputer.

These microcomputers are described in detail : The Intel 8080, the


Rockwell PPS-8, the Fairchild F8, the National Semiconductor PACE and
SC/MP, the Motorola M6800 and the Signetics 2650.

Copies of the book are available for $7.50, plus sales tax for California
PRINTERS, ANYONE?
residents only. Discounts are available on orders for 100 books or more. One solution to the hard copy problem is to
use a printer such as this General Electric
Order from : Adam Osborne & Associates, Inc. TermiNet 30 matrix teleprinter. This type of
2950 - 7th Street equipment is normally leased by firms em-

~
Berkeley, California 94710 ploying computers as a time sharing link;
(415) 548-2805 however, the standard RS-232 control inter-
face could be used to link to a micro-
OSBORNE & ASSOCIATES INC. computer instead of the normal modem. If
you're interested, the cost of a one year
-BankAmericard and Master Charge telephone orders accepted. lease is $88 per month for an 80 column
PJeue include In mati order: cant number. upiraUon date, full name and addrea.
KSR version. Contact GE Data Communica-
Dealer and distribution inquiries welcome.
tion Products Department, Waynesboro VA
22980, (703)942-8767. .
TERMS : Add 50¢
to orders under
$10 . Ca 1 + tax .
Sorr y , no COD.
®to' BOX
~~
~L!::Il!)l!!J~ to' nn
~ MASTERCHARGE®:
BAN KAMER I CAROl!>

BILL GODBOUT ELE~TRONICS


2355.OAKLAND AIRPORT.CA 94614
ca 11
(415) 357-7007

HOBBYWRAP TOOL $41.95


Why solder your prototypes, when there's a better way? Wrapped
connections protect components from heat, are ea s ily modified
for corrections or changes, make connections ' that are better
than solder, and can speed up the time required for the assembly
of complex digital projects. If the high cost of wrapping has
put you off, take a look at our offer . . . you get the tool (re-
cha rgeab I e so you don't have to dea 1 wi th t ra iii ng cords in
tight places), bit, charger, nicads, and instructions. Not just for powering JOLT--- but for 8080s,
6800s, 8008s, etc. Enough juice to power the
FOR PRICES ON OTHER PARTS (LIKE 2111s &2112s) SEND FOR OUR FLYER JOLT CPU plus 16 Kbyte's of memory (like four
of our NAKED RAM boards). Includes crowbar
INDIVIDUAL PARTS ... overvo1tage protection on +5V, heat sink, and
transformer . Same siz e as JOLT supply card .

AT QUANTITY PRICES RAM


8008 Microprocessor---first of the 8 bit CPUs .... . . ...... $17 . 95
8080 Microprocessor---So far, the most popular 8 bi t CPU .. $29 . 95 This general purpose 4K x 8 board is designed
52044KEROM---Static, non-volatile, erases with UV light..$17 . 50 specifically for JOLT systems, but is equally
5204 pre-programmed with 8080 monitor routine . . . ......... $29.95 applicable to other bi-directional buss sys-
(note: if you'd 1 ike one of these in the 8080 chip set below--- tems. If you don't need the onboard regula-
instead of an unprogrammed 5204---add $10 to the chip set cost) tion or buffers of our "bigger brother" 4K x
8 board, then this is the way to implement
cost - effective memory.--Low power --- under
LOW POWER 750 rna. Same size as JOLT card .

10,000 uf 74LSOO
SCHOTTKY
Quad 2 input NAND gate .40
at 10 volts 74Ls04
74LS08
Hex inverter . 45
Quad 2 input AND gate .40
$1. 25 - - - The perfect 74LS 10 Triple 3 in NAND gate .40
tonic for power sup- 74LS20 Dua 1 4 input NAND gate .40
plies with a farad 74LS42 BCD to decimal decode 1. 25
deficiency . 74LS138 1 of 8 decode r 1.40
74LS 168 Dec syn up/down cntr 1. 50
74LS169 Bin syn up/down cntr 1.50
74LS 175 Quad latch 1. 38

ALTAiR 8800 PLuG--IN


• ~ ~~
~ COMPATibLE MEMORY KiTS
4K X 8 RAM BOARd
~Ji,p S
all

l';;::~~ $109. 22 --- A THIRD OF A CENT PER BIT. Our most popular memory
kit includes sockets for all ICs, lots of bypassing, low power
consumption (UNDER 1A!) with 5 regulators to share the load for
8008 CHIP SET minimal heat generation, quality plated - through board . Buf-
fered addresses present 1 LPTTL load; outputs drive 20 standard

$32.50 TTL loads. Typical 500 ns . access time at 25 0 C. With assembly


instructions a nd logic print.
(1) 8008 CPU (8) 2102s
this low price we cannot include
EROM BOARds
NOW YOU CAN STUFF UP TO 8K OF SOFTWARE- --EDITOR/ ASSEMBLER OR
8080 CHIP SET WHAT HAVE YOU---ON A BOARD. Our EROM boards feature the same
quali ties a s our RAM board : sockets, lots of bypassing, buf-
$59.95 f ered addre s se s and outputs , on card regulation, and more.
Our EROM boards are expandable, too; you can start with a 2K
(1) 8080 CPU (8) 2102s (1) 5204 ROM board, and populate it with more EROMs over a period of time
Note: at this low price we cannot include data. until you've got the full 8K. PRICES : 2K by 8---$115; 4K by
8---$159 . 95; 8K by 8---$249.95. All EROM boards feature low
PACE CHIP SET power consumption : the full 8K requires only y,A at 5 volts &
150 ma at -1 2 volts . With instructions and logic print .
$125
(1) PACE CPU (4) DS3608 (1) DS0026
(1) DM8837 (2) 5204 ROMs
+ PACE DATA PACKET
8080SohwARE BOARd
So you've got yourself a microcomputer . .. only to find out you
need software to run it efficiently. Gi ve your ·8080 editor,
DELUXE PACE SET assembler , and monitor routines with our 8080 software board .
It uses the same configuration as our 4K by 8 EROM board, but

$195 (1) PACE CPU (4) DS3608 (1) DS0026


the EROMs are pre-programmed and dedicated to making happier
8080s. Extra feature: because this board is EROM rather than
mask based , you can make changes if desired .. . so we include 2
(1) DM8837 (32) 2102s (4) 5204 ROMs free updates in the event of corrections or patches . The cost
+ PACE DATA PACKET is $159.95 . Kit includes instructions and software package.
TEKTRONIX = BASIC + GRAPHICS;

Here is an examp le of a total package of


computing power designed for individualized
use. The product is a Tektronix 4051 BASIC
Graphic Computing System. For a purchase
price of $6995 (also avai labl e on a lease
plan) you will receive a complete computjng
system which features a BASIC interpreter,
mass storage and alph anumeric/graphic dis-
play with enough resolution to make an
exce ll ent space war display. Specifications of
the standard machine include:
Graphic resolution of 1024 by 780
points.
Alph an umeric display of 35 lines by 72
characters, upper and lower case.
BASIC workspace of 8 KB, expandable in
increments of 8 KB to a maximum of
32 KB.
Ten user definable key functions with
shaft capability for 20 programmable
functions.
Built in 3M cartr id ge tape drive which can
store up to 300K bytes per cartridge,
perfect for off line storage of pro-
grams.
The most important point about this pack-
age is that it is comp lete in one unit which
sits on a desk top as your personal BASIC
serva nt. Turn on the power and you have a
machine capab le of many functions, ranging
from business data processing (possib ly re-
quiring a printer avai lable as an option) to
engineering calculations to fun and games.
8080 CROSS ASSEMBLERS, ANYONE? Adding to its potential as the graphics
• FBE Research Company, Box 68234, component of a space war application is its
What's Seattle WA 98 ·168 sent along a press release
describing the CAL-80 cross assemb ler which
optional 4952 Option 2 Joystick input for
control of the game pieces. Of course space
war is not the only game possible on such an
New? runs on a DEC PDP-8 minicomputer to
assemb le statements for an Intel 8080
computer. The output is a symbolic program
listing and an In tel "BNPF" format PROM
excellen t graph ic toy, so if you can afford it
this graphics computer would be an excel-
lent investment in fun.
programming tape. A comp lete package of This machine will prove most useful,
listings and manuals is quoted as $100 however, to the professionals and business-
postpaid . men in BYTE's readership. Using BASIC as
• An assemb ler has been written to provide the programming language, this package can
near ly all the features of the MAC80 assem- be adapted to nearly any business or profes-
bler for those having access to an IBM sional use simply by wri ting programs, or
360/370 installation. This assemb ler is adapting existing software packages written
written in FORTRAN/BAL and executes in in BASIC. Tektronix supp lies several soft-
under lOOK in a VS/OS environment. Extra ware packages for the machine to help
features include direct punching of BNPF specialists use this machine. These inc lude an
decks for PROM programming, object code advanced graphics package, statistics pack-
listing in both octa l a nd hex, and ASCII ages (3 volumes), mathematics packages (2
constant generation with the parity bit volumes) and an electrical engineering pack-
either set 01· reset. The MASM80 assembler age. Others are under development.
provides fu II MACRO and conditiona l as- For demonstrations of this machine, con-
sembly capabi li ty. A source deck and docu- tact your nearest Tektronix fie ld office;
mentation is availab le for $55. Contact Well Tektronix Inc is located at PO Box 500,
Test Data Inc, PO Box 7081, Kansas City Beaverton OR 97077, phone (503)644-
MO 641 ·13. 0161.

82
,..
5% OFF ON ORDERS OVER $50.00
10% OFF ON ORDERS OVER $100.00
15% OFF ON ORDERS OVER $250.00
MARCH SPECIALS
POCKET CALCULATOR
ALARM CLOCK CHIP
112 PRICE SALE MMS375AA 4-.(, digit. 12 hour. 60Hz
s lun[lio n plu~ (ansl.m! -
\..lIbl .. mt'mory with indi¥idu.1 re<.U
<Iddf~S­

snooze ill.rrn, brightness co ntrol C<lp.~ - 8 digit dispby plus o\'E'rllow -


TTL FACTORY MARKED- bility, -ll,nrn tone output 24 pin DIP b<lllt'ry UVE'r - USt"\ \I<lnd.,d or
7451 .17 74154 1.25 $4.115 I t"C h.lllgE' .. blE' b .. II('lil/'\ - <III n .. ces-
GUARANTEED.F UNCTIONAL S"'f p.nl} in rt'.dy to <lsst'mblt' form
7400 $ .14 7453 .17 74155 1.07 - inslrucliom includl'd.
7401 .16 7454 .17 74156 1.07 7425 $.13 8038 FUNCTION GENERATOR
7473 $.17 74121 $.21 Kit with AC .d.ptor included $14.85
7402 .15 . 17 74157 .99 Volt.St' (on trolled oKiII.lor - sine • S "2.50
7460 7430 .10 7475 .28. 74123 .42 Set of "1,, .. lint> b.lllt"ri('S IdisJKn.blt')
squ.ue, I,i.lngular output. 16 pin DIP
7403 .16 7464 .35 74158 1.79 7441 .49 7483 .39 74151 .39 wilh d.I.l S3.85 UNIVERSAL BREADBOARD
7404 .19 7465 .35 74160 1.39 7442 .38 7490 .29 74153 .49 Silwt'r pl,lIt'd copper ci rcuil bO~Id
7405 .19 7470 .30 74161 1.25 7446 .46 7495 .39 74180 .45 1·1/16" • S-1/16". 2 lOW~ 01 27
1001 CLOCK CHIP
7406 .35 7472 .30 74162 1.49 holt" ~ 101 DIP le\ • 'P,Ut' 101
7447 .44 74% .39 74193 .60 4-b digit, 12-24 hr. alarm, lim e r and dale h.lIl~i\loI\. ""\;\Ion & c~p.ldlol\ .
7407 .35 7473 .35 74163 1.39 7448 .51 74107 .20 circuils - wilh data SG.GS \I .. , \.l lilt' olnd \;mplt' 101 bINd·
7408 .18 7474 .35 74164 1.59 bo",ding IC dn uilty S 1.50 •••
7409 . 19 7475 .57 74165 1.59 S{lpn. 1.00 ••.
MARKED - NO FACTORY LOGO DYM CHIP 4'/, DIGIT
7410 .16 7476 .39 74166 1.49 GUARANTEED FUNCTIONAL MMS310 - P channel device provides
ALARM CLOCK KIT
7411 .25 7483 .79 74170 2.30 all logic lor 41/7 digit voll mt"ter. 1& pin
~ l .IrKt' Digil§ • AM - PM. Com·
7400 $.07 7420 .08 7460 .08 DIP with data S14.GS
7413 .55 7485 1.10 74173 1.49 plt·lt· kil indudt"\ TMS J8J4 (hip
7402 .07 7437 .17 7474 .17 - gtt't'n fl o ur{' u .. nl p.ln .. 1 wilh
7416 .35 7486 .40 74174 1.62 UV ERASABLE PROM
7403 .08 7440 .08 7493 .30 ,S" digih - PC bO~Id - oll.lrm
7417 .35 7489 2.48 74175 1.39 1702A - 2048 bit static PROM 256.8 \pl·.Ikt'r - .III n\·ct'ss.uy compo-
7420 .16
7404 .09 7445 .44 74% .39 nt"nh - u\{' - \chpm.li( .Ind
7490 .59 74176 .89 7450 elect programmable & erasable TTl/OTt
7406 .17 .08 74195 .44 insllucl;on\ .
7422 .26 7491 .97 74177 .84 compo $14.95 $31.115
7408 .09 7453 .08 Shippt·d UPS 01 PolIC .. 1 PO\!.
7423 .29 7492 .71 74180 .90
... 7410 .08 7454 .08
7425 .27 7493 .60 74181 2.98
7426 .26 7494 .94 74182 .79 ~
7427
7430
.29
.20
7495
7496
.79
.79
74184 2.29
74185 2.29
NEW ITEMS Data sheets on request. With order add
6 DIGIT LED CLOCK KIT $.30 for items less than $1.00 ea.
7432 .23 74100 1.30 74187 5.95
nL LOW POWER INCLUDES :
7437
7438
7440
.35
.35
.17 .
74105
74107
74121
.44
.40
.42
74190 1.35
74191 1.35
74192 1.25
74132
74Hl01
74Hl02
S .8'
.58
.58
SCHOnKY
74L500 S .36
MM314 dock circuit
& FND70 LED displays (.250" red 7
segment)
,...
74LS02 .36
7441 .98 74122 .45 74193 1.19 74Hl03 .63 74lS04 .36 All necessary transistors, resistors &
74H106 .63 74LS08 capacitors LINEAR CIRCUITS
7442 .77 74123 .85 74194 1.25 .63
.)8
1 double sided PC board accommodates
74H108 74LS10 .36
7443 .87 74125 .54 74195 .89 lED's & dock circuitry 300 Pas V Reg (super 723) TO-5 \ .71
SCHOTTKY 74LS20 .36
7444 .87 74126 .63 74196 1.25 Schematic & instructions 301 Hi Perf Op Amp mDIP T0-5 .29
74500 S .3lI
74LS32 .)8
7445 .89 74141 1.04 74197 .89 Does not includ e 12V-300 rna 302 Volt follower T0-5 .53
74S02 .45 74lS40 .45
74lS42 1.40 transformer, switches & case .812.95 304 Neg V Reg T0-5 .80
7446 .93 74145 1.04 74198 1.79 74503 .38
74lS74 .59 305 Pos V Reg T0-5 .71
7447 .89 74150 .97 74199 1.79 74504 .45 307 Op AMP (super 741) mDIP T0-5 .26
74508 .52 74lS90 1.30
7448 1.04 74151 .79 74200 5.90 74LS93 1.30 TANATLUM CAPACITORS 308 Mciro ~r Op Amp mDIP TO·5 .8'
7450 .17 74153 .99 74510 .)8 SOLID· DIPPED +20% 309K 5V 1A regul alor TO·3
74LS95 2.09 1.35
74520 .38 .1 mfd 35V .25 ea. 6.8 mfd 6V .30 ea. 310 V Followe r Op Amp mDIP
74LS107 .59 1.07
74522 .38
.33 mfd 35V .25 ea. 6.B mfd SOV .40 ea. 311
74 lS164 2.20 Hi perf V Comp mDiP T0-5 .95
LOW POWER TTL 74532 .52
74lS193 2.50 1 mfd 35V .25 ea. 10 mfd 25V .40 ea. 319 Hi Speed Dual Comp DIP 1.13
74574 .38 2.2 mid 20V .25 ea. 15 mfd lOV .40 ea.
74100 $ .25 74151 $ .29 75190 $1.49 74 lS1 97 2.2Q 320T I'Ies Keg 5, n, 15, TO-3 Sl.3'
2.2 mfd 35V .30 ea. 33 mfd 10V .40 ea. 320K Neg Reg 5.2, n TO-3 1.39
74L02 .25 74lS5 .33 7-H91 1.45 LIN EARS 4.7 mfd 16V .30 ea. 47 mfd 6V .40 ea.
74103 .25 74171 .25 74193 1.69 AM radio receive r 322 Precis ion Time r DIP 1.70
74104 .25 74172 .39 74 195 1.69 subst. DIP S .75 324 Quad Op Amp DIP 1.52
MISC. DEVICES
74106 .25 74173 .49 74L98 2.79 733 DiU. video AMPl 2513 64 x 8 x 5 character
33. Quad Comparator DIP 1.58
74110 .25 74174 .49 74llb4 2.79 TO·5 .8' 340k Pos V reg (5V, 6V, 8V, nv,
generalor Sl1.00
74120 .J) 74178 .]q 741165 2.79 5556/ 1024-bit slatic RAM, 15V, 18V, 24V) T0-3 1.69
2602
74LJO .J) 74185 \.25 MC1456 In I. compe nsated N-channel 340T Pos V reg (5V, 6V, 8V, n v,
74142 1.4~) 74186 .69 Op Amp mDIP 1.59 OTl/TTl compatible ].95 15V, laV, 24V) TO-220 1.49
7525 DUill core memo sense F93410 256 bit RAM 2.19 372 AF·IF Strip d etec tor DIP 2.93
AMPL DIP ••8 MY5820 Jumbo green .22 373 AMjfMjSSB Strip DIP .53
MC1310 FM stereo demodulator XC209-R .125" red lED .15 376 Pos V Reg mDlP 2.42
HIGH SPEED TTL DIP 1.95 Ll00 Red LED .15 377 2w Siereo amp DIP 1.16
CA3040 Transistor array i,O' Red lED .15 3lI0 2w Audio Amp DIP 1.13
14HOO ~ .25 74H21 S, .25 74 H55 S .25
74HOI .25 74H22 .25 74 HbO .25
14 pin DIP .8' 380-8 .6w Audio Amp mDlP 1.52
74H]0 .25
381 Lo Noise Dual preamp DIP 1.52
74H04 .25 .25 74H61
.25 74H62 .25
382 La Noise Dual preamp DIP .71
74H08 .25 74H40 ,... LED'.
74H50 .25 74H72 .39 550 Prec V Reg DIP .89
74HIO .25 MV10B Red TO 18 S .22 MEMORIES
555 Timer mOIP .8'
74HII .25 74H52 .25 74H 74 .3' MV50 Axialll'ads .18 556A Dual 555 Timer DIP 1.49
74H20 .25 74H5) .25 74 H7 6 .49 MY5020 Jumbo Vis. Red 1101 256 bit RAM MOS S 1.50
5(,() Phase Loded loop DIP 2.48
(Red Dome) .22 1103 1024 bit RAM M05 3.95
562 Phase laded loop DIP 2.48
Jumbo Vis. Red 1702A 2048 bit sialic PROM
8000 SERIES UV eras. 17.95
565 Phase locked loop DIP TO-5 2.38
(Clear Dome ) .22 566 Function Cen mDiP T0-5 2.25
110')1 S .53 8214 SI.49 88 11 ~ .59 ME4 Infra red dill. dom e .54 2102·2 1024 bit static RAM 4.25
567 Tone Decoder mDIP 2.66
BOn .53 B220 1.4Q 8812 .8' MANt Red 7 seg .. 270" 2. 19 5203 2048 bit UV eras PROM 17.95
70. Operational AMP TO-5 or DIP .26
80q5 1.25 8230 2.19 8822 2.19 MAN2 Re d alpha nurn .32" 4.39 52('() 1024 bit RAM 2.49
710 Hi Speed Volt Comp DIP .35
11121 .80 8520 1.16 8830 2.19 MAN4 Red 7 seg .. 190" 1.95 5261 1024 bit RAM 2.6'
711 Dual Difference Com par DIP .26
81 2) 1.4] 855 1 1.39 8831 2.19 MANS Green 7 seg .. 270" 3.45 5262 2048 bit RAM 5.95
723 V Reg DIP .62
8130 1.97 8552 2.19 88Jj, .25 MAN6 .6" high solid seg. 4.25 748• 64 bit ROM TIL 2.48
73. Dual Hi Perf Op Amp DIP 1.07
8200 2 .]) 8554 2. 19 8880 1.19 MAN7 Red 7 seg ..270" 1.1 9 8223 Programmable ROM J.69
741 Comp Op Amp mDIP TO·5 .32
82 10 2.7'1 81110 .69 8263 5.79 MAN] Red 7 seg .. 127" 74200 256 bit RAM tri-stale 5.90
747 741 Dual Op Amp DIP or T0-5 .71
8267 2.59 straight pins .29 748 Freq Adj 741 mDIP .35
MANS Yellow 7 seg .• 270" 3.45 1304 FM Mulpx St e reo De mod DIP 1.07
9000 SERIES MAN66 .6" high spaced seg. ].75 1307 FM Mulpx Stereo Demod DIP .74
MCT2 Opto-iso transisto r .61 1458 Dual Comp Op Amp mDlP .62
Y002 ~ .]5 '1]09 $ .79 %01 $ .8' ...... CALCULATOR &
1800 5tereo multiplexer DIP 2.48
~n OJ 1.03 ~n12 .79 %02 .79 CLOCK CHIPS
LH2111 Dual lM 211 V Comp DIP 1.70
5001 12 DIG 4 lunct fix dec S2.49
... .... ,... MULTIPLE DISPLAYS 3900 Quad Amplifier DIP .35
5002 Same as 5001 exc
. . . .- - - - - - - - - - - - - . . NSN]3 ] digit .12 " red led 12 pin 7524 Core Mem Sense AMPl DIP .71
bir r power 2.79
fits IC skt. $1.79 8038 Voltage contr. osc. DIP 4.25
5005 12 DIG 4 fuel w/ mem 2.99
CMOS -401 bA .56 4050A .59
HP45082 5 digit . 11 led magn. lens
MM5725 8 DIG 4 'unct chain & dec 1.98
8864 9 DIG led Calh Dur DIP 2.25
7405 com. ca lh 3.49 75150 Dual Line Driver DIP 1.75
·HKlOA S .2b 401 7A 1.1 9 406('A .89 MM5736 18 pin & DIG 4 luncl 4.45
HP5082 4 digit .11 LED mdgn. 75451 Dual PerepheraJ Drh'er mDJP .35
400lA .25 -4020A L49 -40b8A .4' MMS718 8 DIG 5 funct K & mem 5.35
I.J~)
7414 lens comm, ca lh. 3.25 75452 Dual Peripheral Drive r mDlP .35
4001A .25 -402 1A -40f,9A .4' MM5739 9 DIG 4 fun ct (btry sur) 5.35
fNA 37 9 digit 7 seg led RH 75453 (351) Dual Periph Driver mDIP .35
400bA 1.35 40nA LlO 407 JA .26 MM5311 28 pin BCD 6 dig mux 4.45
dec clr. magn. lens 4.9 5 75491 Quad Seq Driver for lED DIP .71
·W07A .2b -402JA .25 40n A .35 MM5312 24 pin 1 pps BCD
SP-42S-09 9 digit .25" neon direct 75492 Hex Digit driver DIP .80
400BA l.i'l -4024A .89 4073A .39 4 dig mux 3.95
interface with MOS/ lSI,
4UO'IA .57 -4 025A .25 407 5A .3') MM S313 28 pin' pps BCD
180 VDC. 7 seg. 1.79
4UlOA
-4 01 1A
.54
.2'1
40li A
402!:1 A
.59
.98
."
40i8 A
4081A
-4082A
.39
.26
.]5
,... 6 dig mUll
MM5]14 24 pin b dig mux
4.45
4.45
5.39

...
401 1A .15 -40 JO A MM5]lb 40 pin alarm 4 dig
-40lJA Aj -40J5A 1. 27 H 28A 1.60 SHIFT REGISTERS
-4014A
401 5A
1.4')
fA '!
40-4 'l A
40-4'JA
L4 i
.5'J
-4585A 2. 10
MM50J3 10 24 bit anum. dy nam ic
mDIP S1.7 5
,... -,
500/512 bil dynamic mDIP 1.59
Satisfaction guaranteed. Shipment will be mad e via first class mail in U.S., Canada and
MM5016
iKOO S .n 7-4C4 $1.04 i 4Clbl $1.9) Sl5-4025 QUAD 25 bit 1.29 Mexico within 5 days from receipt of order. Add $.50 to cover shipping and handling
7K 02 .16 ,4C 76 t.34 74C16J 2.66 fo ;· orders under $25.00. Minimum order $5.00. California residents add sales tax.
i 4C0-4
74e08
."
.b8
, -4C 10;
74C I51
1.13
2.61
, 4 C l b4
7-4CI 73
2.6&
1.61
INTERNATIONAL ELECTRONICS UNLIMITED
~ 4 C l0 .J5 , 4CI 5-4 J. 15 7-4 Cl1)5 2.66 ,... DTL
:K 20 .J5 , 4C1 57 1.,6 80C95 1.]5 PO BOX 1708 1 MONTEREY, CA. 93940 USA
~.~
.30 S .15 . 15 1)49 .1 5
:4C 4! I. bl :- -4C IbO 2048 80C'), J.i3
~ -4 CJ 1.04 ~ -4 C 161 UlJ
9J2 .1 5 .15 %2 .15 PHONE (408) 659-3171
... 936 .15 .1 5 %) .15
......
Wave Mate se nt BYTE an announcement gent terminal or eve n games and music

What's and this picture of its entry into the micro-


computer system mal-ket, the Jupiter II
system. Priced below $ 1000, the new ex-
synthesis.
Features include: easy to test small plug-
gable cards, wire wrap to minimize engineer-

New? pand abl e and upward com patible system will


be aimed initi all y at the se l-ious hobb yist
market.
ing, easy bus to interface, modul ar plug-in
power supply, all ICs socketed for easy
testing and replacement, 10 progra mming,
Since Jupiter II is cOll1plete (ordered in file management capabilities and Motorol a
kit form or assembled) the hobbyist can add 6800 base.
sill1ple periphel·als and use the system for Th e Jupiter II computer system is ava il-
acco u nti ng/bookkeep ing, sc ien tific/ ll1a the- ab le from the factory 60 days A RO. For
matical computations, num er ic control, complete inform ation contact Dennis Brown
process control, educational tool, data acq ui- at Wave Mate, "1015 W 190th St, Gardena
sition, inv entory co ntro l, graphics, inte lli- CA 90248, (213)329-8941.

Color video is the w(ltch word for th e 1976 computer innovation season. A n excellent
con tribution to the field is the new Intecolor 8001 system marketed by Intelligent Systems
Corporation, 2405 Pine Forest Dr, Norcross GA 30071. For ,~1395 you con acquire the
Intecolor 8007 K I?it version (assembled OEM versions are also available). The result of
assembling this product is an 8080 computer with 4096 bytes of user memory, PROM systems
software, RS-232 serial interface, I?eyboard and - the most important feature - a 19 inch
shadow masl? color telellision display with character generation hardware for 25 lines of 80
colored characters. The design also includes as a self-maintenance feature the Intecolor 9-sector
convergence system. It 1001<5 as if this would make an excellent starter system, coming in an
integrated desl? top pac/?age.

84
- - - - - - - - -- --_._------ _._---- - --- - - - - ---.- --- . - --- -----~""\
& Newman DATA CODER SECURITY SYSTEM CARD READER \
l-~..l.;iiiiiiii4ii_""'1/ DE LT A specializes in the unusual in
electronics surplus, and we have once
again found a very unusual, highly
desirable item. This is a DATA
CODER made by Bolt, Baranek,
and Newman. It was made for use
Another unusual item from
DEL TA! These card readers
were made by AMP, Inc. for
use in SECURITY SYSTEMS
A stiff card 2 1/8" x 3 3/8"
'
i
I
,..

(credit card size) is inserted,


in the Medical Electronics field, but which closes a micro-switch. '
finds use in many different appli- A 115v AC solenoid is then ener·
cations. It is used to digitize any gized, which pulls down a set of wipers to read through
_~:~~~"'::. _ type of data. The data (charts, holes in the card. The wipers are arranged in 3 8 bit
.. C· -----4:[tL..~Q maps, waveforms, drawings, game bytes + 1 bit, for 25 bits total. By using both sides of
grids, etc.) is placed in the bed, and the card, 48 bits are possible! Ideal for security systems---entry can be
the sight is moved along the data. This generates Vertical & Horizon· controlled by use of a card, with an almost infinite number of combi-
tal displacement codes, which can be stored and processed by your nations, rather than an easily duplicated key. As another example, an
calculator or micro-computer. entire Social Security no., plus an entry code, could be read from a
The bed size is 12'){," x 105/8", and has a 7" x 10)1;,' portion which card. Many more applications are possible. 5" x 5" x 9" deep. 6 Ibs.
is translucent, for use as a light table. Each axis is divided into 128
increments, for a total of 16,384 discrete bits over the bed. Horiz. STOCK NO. B5353 $19.95 each, 2 for $35
increment size = .10", Vert. increment size = .083". Each axis HONEYWELL HUMIDITY CONTROLLER

~
generates an 8 bit code by means of wipers on an encoding board .
This makes it very easy to interface to any logic family. Made by HONEYWELL for automatic
This item is a must for your micro-computer, as it is now possible to o @) control of humidifiers or dc-humidifiers.
digitize ANY type of data. Limited quantity. Overall size is 18'){," GO ,
Control range 10% RH to 60% RH, sensing by
x 17%" x 3" high. Shipping weight 10 Ibs. With coding data. . means of a nylon ribbon. Sna p action sWitch With
STOCK NO. B5352 $79.95 each 240v AC contacts_ Ideal for home lab, or greenhou~e. :::)1, x 2% x 1 'I..
----- STOCK IIlO. B6263 1 lb. . $11.£5 each, 3/14.00

-ii -
I
I-/FA V:/ DUTY POWER SUPPLIES

'~~i"':: <9 -fTr


~ ~~
f··~-
, ,.1 ,
0

!I._ .
'.
These heavy duty pow er
supplies are ideal as a
,general purpose lab sup-
ply, micro ·computer supply,
650 WATT POWER TRANSFORMER
This versatil e trnnsform 3r has dU ;-1 .. ~i~3ries, for 115v or 230v
operaticn, or for i ~ olat;on use. E;::h is also tapp~d for low or high
lin e. Sc:cm13ri es Dre ;:4v centcr tappc:.l at 8 amps, 24v at 10 amps,
al ~ d 2<:" <1t 10 a mps! Possibl e combinations include 24v at 20 A

etc. All have constant volt- and 4Sv c : n~ CT tapped at 10 amps. Shipping weight 13 Ibs.
age transiorrn ers and I"rge 18,(jl)u mfd 35v. elec. filter caps for filter· STOCK rJo. B9898 _ _ __ _ • _ _ _ _ .. $14.95 each, 2/28.00
_ _ .. 1 .. , _ _ _

ing. In addition, the + and - lOv and -3.6v outputs have seperate
scmicondL!ctcr regulators, which are voltage adjustable . Each is DATA INPUT KEYBOARD HOUSING
22 %"' Ion,), 6)', ' wide, 6" high . Shipping weight 26 Ibs,
This hiSh impact plastic
housing was part of a
B5313 .. .. 0utputs at -3Ov @ 1.5 amp, +3Ov @ .5 amp, -lOv famous name programmable
@ 1 .5 amp, +1 Ov @ .5 amp, and -3.6v @ 1.5 amp . 85 watts , desktop calculator. It is tan,
STOCK NO . 85313 $24 .50 each has tlie general app earance
B5314 .... 0utputs at -3Ov @ 1 amp, +3Ov @ .5 amp, ~1 Ov of a typewriter case, and is
@ 1 am? an d +10v @ .5 amp. 60 watts total. ideal for ma ny types of comp -
STOCK NO . 65314 $19.50 each uter key boards. Mounting ..
cente~ for the keyboard is 15%".
B5342 .... 0utputs at -30v @ 1.5 amp, +30-, @ .5 amp, -10v The re~ dout -space is 15" x 4" .• ]
@ 1 ,5 amp, and +10v @ .5 amp. 80 watts total. Overall size is 18" x 18)1," x 6 )1,". 1)
STOCl< NO. 95342 $22.50 each 3 Ibs. Will easily house an entire ~~===~===~~~
TVT or micrpcomputer. Pre punched '"
hole in rea r for a muffin fan. nle opening in the top may vary
the one shown in the drawing.
STOCK NO. B917G $3.75 each, 2/7.00
amps,
o well COMPUTER GRADE ELECTROL YTICS
r your micro-
We carry a good selection of capacitors of all types, dipped micas,
tested & working.
shipping weight 22 Ibs. ceramic disks, mica trimmers, tantalums, silvered micas, tubulars,
STOCK NO . 2 S34.95 small electrolytics, high voltage, etc. Listed below are a few of our
i- - -------- ------- - - - - ... ,···--·---=--------------1 large computer grade electrolytic capacitors.

i ~a~~~d ~~~!! k~~b~ w~~;~:cr~:..~~~~~n~~~~


: finish, Latest distributor price $1 .6 5 to 1.05 each. I
0- VOL T MFD
10v
10v
STOCK PRICE
40,000
90,000
B2026
B2495
2.00
3.00
each,
each ,
6/11.00
3/8.00
! ALCO NO O.D. x HT. DEL TA NO. PRICE
i KS 500A ,500" x .625" wl ski rt B6176 .40 ea, 10/3. 50 10v 160,000 B2515 3.25 each, 4/12.00
I K 700A .750" x .62 0" B6177.40 ea, 10/ 3 . 50 15v 110,000 B2352 3.50 each, 3/9.00
i K 1250A 1.250" x ,750" B6178 .50 ea, 10/ 4.50 25v 32,000 132492 3.00 each, 4/10.00
i 35v 40,000 B2255 3.50 each, 3/9.00
! 50v 10,000 82493 3.25 each, 4/12.00
2502 AY-5-1013 UART 75v 6,000 B2450 3.50 each, 4/12.00
Brand new, tested, General In strument A Y-5-1013 UART 200v 500 B2345 2.50 each, 4/9.00
(Universa/ Asynchronous Receiller / Transmitter). This
40 pin /C is pin compatable with Signetics 2536, T!'s AUTOTRANSFORMERS
TMS6012, SMC COM2502, etc. The UART is the 120v to 240v step·u p or 240v to 120v step-down autotransformer,
standard bui/dil7f/ block for paralle/ to serial and serial 150 watts , 3lbs. STOCK NO. B9844 $3.50 each, 3/9.00
to parallel conversion, serial communication, etc. A must 2 KVA autotransformer. Taps at 105, 110, 115, 120, & 125 volts.
for TVTs, cassette in terface, RS-232 interface, etc, Idea l for boosting voltage during brown-outs for TV., etc ,
STOCK NO. 1:l98Gl 11 Ills. $6.95 each, 2/16.00
STOCK NO. 83119 $3.95 each
MINIMUM ORDER $5 .0U . In e it Hte suff,c; .. nt pouage, eKC ....
retun<ted. Sumj for no w BS paijll Cutulog 15, biyuer than ever,
~ BANKAMERICARD end MA S TERCHARGE •
Lul KAMUICAA b now accepteu, mmimum c harge $15 .00 . Please ' ..
.a:I in c lu de a ll numbers Ph.one orders aeceoted _
------- - -- --_.__.__._-- -- ._-- -- - - -- _ ._ - - - - - - - - - - - - - - - -
MITS ALTAIR CONVENTION

YTE'S
B
MITS has annou nced a "World Alta ir
Computer Convention," schedu led for the

ITS last weekend of March, to be held at the new


MITS headquarters near the Albuquerque
Airport, Albuqu erque NM. According to
information obtained from MITS, th e con-
vention will include a weekend of sem inars
and demonstrations conducted by MITS
engineers and software writers. MITS system
Here's the Official Announcement:
owners are also encouraged to bring systems
PL/M6800 for demonstration: Pri zes worth several
I nterm etrics, Inc, of Cambr idge MA an- thousand dollars will be award ed for the best
nounces that PL/M6800,TM the first high- demonstrations by use rs in several system
leve l programming language for the wide ly categor ies. For further infmm at ion, contact:
used Motorola 6800 microco mputel', is
avai lab le. WACC/MITS
Th e PL/M6800 compiler is now accessib le 2450 Al amo SE
for world-wide usc on the Genera l Electric Albuquerque NM 87106
Information' Services computer network, 0 1' Attn: David Bunne ll
can be purchased direc tly from Interm etrics
for in-hou se in stall ation on IBM 360 or 370 or ca ll David Bunn ell (505)255-2206 .
computers.
According to an Intermetrics pre ss re- Classified Ads Available for
lease, "PL/M6800 is an effect ive a id to
microprocessor software deve lop men t. It I ndividuals and Clubs
brings th e benef its of high-l eve l language Readers who halle equipm ell t , so/t lvare or otiler
program m ing to the fi e ld of micro processo r itellls to buv, sell or swap should sel1d in a clearly
typed or printed llOtice to that effect. Th e 1I0tices
programming. PL/ M6800 cuts progl'aml11ing
are F ee oIcharge alld will be print ed ail e tim e 0111.1'
time and effo rt to a fracti o n of that required on a space allailable basis. Ill sertiolls should he
for assemb ly language, wh il e all owing access limited to 110 IIIore thall /00 words. Notices call be
to hardware featul'es an d assemb ly langu age accep ted Fom illdividuals or bOlla fide compu ter
procedul·es. " This re sults in a reducti on of users' clubs olliv. Commercial adllertisers should
contact Vil/{in ia Peschke at JJ YTt: .f(Jr th e lates t
programm in g cost and time. The langu age
rate card am/terms.
encourages th e use of structured progl'a m-
ming tec hni ques, and is se lf-d ocumenting. I am currently configuring a home compu tel'
svstem around a BIT 480 mainframe. If you own a
PL/M6800 has a one-pass compi ler whi ch
simi lar m ac hin e and (a) have the documentation
produces optimi ze d object code in a format for the B IT 480 Diagnostics, (b) know of a users
directly usabl e by the Motoro la MINIBUG/ group, or (c) wou ld just like to swap notes, please
MIKBUG and EXbug Loader Function. Th e contact m e. Ron Emerso n, MD, Alden Park Manor
compiler includes a number of user-con- # 207C, Philadelphia PA 19144.

trolled features, such as: soul'ce progl'am FOR SA LE : 8080 system, G-l0 plated hol es, 22K
li st in g, object code listin g, equivalent asse m- RAM, sockets for 10K ROM (1702A), assembly
bly code li sting, and sy mbol tab le dumps. language, with highly regulated supply 10A-5V, - 18
The PL/M6800 compile!- is compat ibl e (variable) and +/- 24V. $900 or best offer or trade
for a 16 bit machine. Bruce Lill, Box 248,
with the PL/M language deve loped by Intel
Hohokus NJ 07423, (201 )444-0908.
to program th eir line of micropmcessms.
Intermetrics reports th at PL/M programs can TERMIN A L wanted . If anyone in the Washington
be compi led with few, if any, changes, thus DC area has a TV Typewrit er, KSR or ASR
allowing a "s ign ifi cant degree of software Teletype in good condition at a reasonable price,
please contact : St eve Pi erce, 5100 38th St NW,
portability. " Washington DC 20016.
Intermetrics has bee n engaged in com-
puter softwMe des ign and implem entation FOR SA LE : AMPEX 3DM·3000 Core. 10 car ds,
fm over six years. I ts computer language eac h 1 Kx9 with all drive circuitry. TTL com ·
pat ibl e, new condition . $50 per card or make offer
developm ents include HAL, which is being
for all 10. Schematics included. Willi am Brown III,
used to program the NASA Space Shuttle 2449 N Park Blvd, Santa Ana CA 92706.
on-board computel's, as we ll as CS-4 and
SPL/I, genera l purpose, high-l eve l languages. FOR SALE: Six 14-channel tape transports with
Full infmmation and doc um enta ti on on design data. Direct recording to 2MHz at 60 or 120
inches per second. DeSign ed for one inch wide
PL/M6800 is ava il ab le from Marke ting De- tape. For more information, contact Francis T
partment, In termetrics, In c, 70 I Concord T ortore ll o, General Delivery, Nellis AFB, NV
Av, Cambridge MA 02138. 89191.

86
, ,
,

.' :'~' r. ·v~ . -:.• " -'


f'"
, , ~-,
, ."
-' .' t .; t ~;

SYSTEiVl21 DATA MANAGEMENT STATION


VIATRON'S System 21 is a family of data processing devices designed for data management, including data entry, control,
display, communication, storage and retrieval. With its modular structure, System 21 can be configured to perform a wide
variety of data processing operations .
A typical System 21 configuration includes a Microprocessor , two Tape Channels, a Keyboard, two Data Channels, and a
Video Display. Central to the System 21 structure is the Microprocessor which contains hard-wired microprograms that
perform a fixed set of logical operations. The hard-wired microprograms in the Microprocessor accomplish the same
functions as a general-purpose computer operating system or assembler. Because the microprograms are hard-wired,
however, there is no need for extensive programming.
There are two modes of system operation-manua].control and program control. In the manual mode of operation, the
operator initiates all Microprocessor functions. Under program control the Microprocessor performs certain functions
automatically through the use of a control program.
The Microprocessor has four input/output channels, two Tape Channels and two Data Channels. The Tape Channels are
devoted to either VIAT APE Recorders or Computer Tape Recorders , one recorder per channel. The two Data Channels
can communicate with optional input/output devices. They can be connected, for example, to a Model 6001 Card
Reader/Punch Adapter for reading and punching cards, or to a Model 6002 Printing Robot for providing hard copy. The
Data Channels can also be interfaced with a Model 6003, 6004, or 6005 Communication Adapter for providing a link with
another System 21 Data Management Station , a computer, or virtually any other device capable of US ASCII interface. The
Keyboard has its own Channel dedicated to providing data input and control to the Microprocessor.
Unused, packed in 4 cartons. System consists of video display , power supply, m'icroprocessor, two cassette tape decks
mounted in microprocessor panel, keyboard , all as pictured. Sold "as is." Due to 4 years of storage, may require some
adjusting/cleaning. With instruction book. Shipment within 24 hours if paid by MC , BA, or certified check. Sold FOB
Lynn Mass.

$ 425 00
MESHNA PO Bx 62 E. Lynn Mass. 01904

87
THE FIRST OF THE 12 BIT MICROS?
The PCM-72 is the first microcomputer product BYTE has seen built around the Intersil

What's IM6100 computer chip. Quoting from the news release accompanying this photo, ".. . This kit
is designed around the Intersil IM6100 microprocessor, a 72 bit static CMOS device that is
software compatible with the Digital Equipment Corporation {DEC} PDP-8/E minicomputer.

New? Th e completed kit can execute most PDP-8 software, including assemblers, editors, debug
routines and advanced languages like BASIC and FORTRAN. Much of this software is available
from DEC on an unlicensed, over-the-counter basis." Kit prices range from $400 to $600
depending upon options, and the result is the computer pictured here. If you order the
complete kit, you get 4096 words of static semiconductor memory (72 bits per word), a serial
terminal interface, audio casse tte recorder interface, cabinet and power supply. The memory is
expandable to 32,768 words. Contact PCM at PO Box 275, San Ramon CA 94583 or call
{475}837-5400.

e
AIlIt

JW
• • • • • • •. • •
..
,aOG'AM ( OUNH'
---------------"
, •


••

~ If
'

____
~I
~ ~

• o

••• • •,
• •,
• • l •
L- 0.'''' uno
~ .

.- .
tuN 1...-nor uno..:..J tloW _ c o - r
,,'" ,," IIH

• ""'--~
LIN.

liNK

•....
SWIfC"; flGliTl'

,.ltC..

• .
,.,...
.c
.cA.
MIM
.cA.
(tUM

t.
II.
~
lIS"

Here lies documentation of k nown bugs


detected in previous editions of BYTE . . .

YTE'S
• BUGS The code for the pawn character in Don
Lancaster's "Color G/'aphics" articl e, figure
8 (page 67, February), is incorrect as printed.
The proper code is illustrated here :

Dr George Haller points out a misalign-


ment of t he internal captions in the UART
diagram of figure 4, page 26, in Don
Lancaster 's "Serial In terface," September
1975. Th e correct captions for pins 34 to 38
shou ld read :
DISPLAY ASCII
(el PAWN
Pin Name
34 ENABLE
35 PAR ITY KI LL Note also that in the format definiti on of
36 STOP BITS figure 4 (page 65), the most significant bit is
37 } on the right and the leas t significant bit is on
BITS/CHARACTER
38 the left.

88
CRYSTALS (.a[:
GY1A
GY2A
Frequency
1.000 MHz
2.000 MHz
CaseSlyle
HGlJlU
HCJ31U
Price
S4.95
5.1.95
CENTRAL PROCESSOR UNITS
Each processolleature21<sinSlluClioncycles, and are brand
JE801 D~M
~..
TheJESOlisa thleeandonehal1digit.autopoJarity
digital votmeter. in a kit lorm. It lea1Ures sf\lera!
AMD ~J '"
CY3A
CY7A ;.:g ~~: ~gi::~ ~~.:; T.1 newlrom the manulacturel . The TMS8080 is an!l 2nd gener·
ationproccssor: andlheAM090S0AlSOOOAisa2V, genera·
tionprocessor .
. '
options nol available. in any commercial (!igital vol·
tmeter.lts low Cos! ls perhapsthemostimportant
fealure , whichisachieyedbyolfering i tinak~form .
~~:: ~~~ ~~~:~~ ;~. :~ 8080A
CY1 2A
CY 19A 8080 A kit allows the unit 10 be used by small OEM·s
where cosl ellecliYeness is an imponant fa ctor, and
CY22 A
CY30B ~~ :: ~~; ~g::;~ ;::; $29.95 $39.95 by the 1l0bbyist who has to be concerncd with cost .
The unit al;o lealures on card regulators. allowing it
t-____-_ AI.;
AV... lA.;Bl~'...'N...T...
HE.;SE...f...
RE.;
OU;;'...
NC;;;";;,S;;,
ON;:,
ly...-_ _ -I DI~~CRT ,:~~~g8E:a~NT DIRECT REPLACEMENT to be operatedotl a single plus and minus fifteen
,_ _ CLOCK CASES FOR INTEL C8080A volt. unregulaled power ~upply . The unit has a
small sizeo! three inches width . three and Ihree
Nicely styted cases complete with red Quarters of an inch length , and one and a Quaner
bezel lor use in such applitalions as inch height
(!esk clocks. car cloc~s . alarll clOCkS.
Instrument cases.
DIMENSIONS: W·4 ··. .. H·2·' . 8008 8BitCPU
CPU'S
5t9 .95 1101 256Xl
RAM ' S
STATIC S2.25 $39.95 Per Kit printed circuit board
SOSO Super BOOS S29.95 11 03 1024X l DYNAMIC 2.95
SOSOA Super800BA S39 .95 2101 256Xl STATIC 6.95

T~l~'~O~~""iI ~~?'O~h~m'" ::t-=-:>


SR'S 2102 1024Xl STATIC 2.-19
SEMICONOUCTOR SUPER SPECIALS 2504 1024 DYNAMIC 59.00 2107 4096Xl DYNAMIC 19.95
2N2222 Low Power 2N2222A 71S1.00 251S HEX J2 BIT 7.00 211 1 256X4 STATIC 7.95
MJ3055 Same as T03 2N3055 bUI .59 25 19 HEX 40 BIT 4.00 70tO 102m MNOS 29.95
DO" /
indespenslble In tr oubte shOOllng logIC lamllle; I ~
wi1tl solder lugs on leads
~;dS Dt~L~p~~~~ ~~~~'Y ~l1d~;i~~~ ~~r~c~:~~::· ~4 ~JIIIjIt~
2524 512 DYNAMIC 2.95 74S9 16X4 STATI C 2.49
IN4JOB Fasll/l4148 SISWllch 20!S1.00 2525 t024 DYNAMIC ' .00 8101 256X4 STATIC 7.95
MeT2E 5,j NPN Pholo Trans./Dplolsolalor 2.95 2527 DUAL 256 6fT 3.95 8111 256X4 STATIC 7.95
.79 test, drawing a scant 10 rnA max. It uses a MANJ
MVS025 .4 MCD, 20 rnA LED wilh Mounting 2529 ~UAL 512 BIT 4.00 S599 16X4 STATIC 3049 readoullo indicate any 01 the fol lowing states by
MV5377 Low Profile Yellow LED 3/S1.00 2532 aUAD 80 BIT 3.95 91L02 1024Xl STATIC 2.75
RED .185" (!ia. LED these symbols: (H) · I (LOW)· 0 (PULSE) - P. Th~
XG526R 7/51.00 1024 STATIC 7.95 74200
2533
3341 FIFO 6.95 93410
256XI
256Xl
STATIC
STATIC
6.95
1.75
Probe c.1n dctect ~igtl!requencypu lses t 045MHz.
It can·t be used al MOS If\lels or circuit damag~
$9.95 Per Kit
74 LS670 15X4REG . 3.95 5262 2048X l DYNAMIC 2.95
DL728 will result. prinled CiTCui! board
UART'S PROMS
The OL728 is a dual OS· common ca tOOde red AY-5·tOt3 20KBAUD 56 .95 1702A 2048 FAM05 15.95
display. 11 is i(!eal for use with clock chips, as ROM·S 5203 2048 FAMOS 14 .95
segmems are already mulliplexe(! S2.95 2513 CHAR. GEN. 1' .oo 822J 32XS BIPOLAR 3.00
7488 RANDOM 81TS 3.50 745287 1024 STAT1C 7.95
JE700 CLOCK Tt.eJE700isalowcost(!lgitalclock, but
isa very high Quality unit. The unit fea·
lures a simulated walnul case With di·
CALCULATOR CHIPS AND DRIVERS mensions 01 6·· x 2'/j· · x I ·'. It utilizes a
MM5725 S GlGIT 4 FUNCTIQtl 51.98 MAN72 highbrlghlness readou1. and the
OM75491 SEGMENT DRIVER 79 MM5314 clock chIp S19.95
MM5736 6 DIGIT 4 FUNCTION I.SS
DM75492 OR IVERFOR5736 .B9 120' 24 Ho u,
"'1.15738 8 DIGIT 5 FUNCTION 1.95
OM8864 DRIVER TYPE 1 1.00 115 VAC-
DMS865 DRIVER TYPE 2 1.00 $19 .95 per kit
CLOCK CHIPS $29.95 assembled
MM5311 6 DIGIT WIBCD $4 .95
MM5J12 40lGITWIBCO 4.95
MM5313 6 DIGIT WIBCD 4.95
11.111.15314
MM5316
6 DIGIT CLOCK
ALARM CLOCK
J.95
4.95 JOYSTICK
C17OO1 CAUCLOCK CHIP 5.95

DIGITAL WATCH READOUT


The se joysticks leaturetour lOOK
FOR USE WITH WATCHES. potentiometers . Ihat vary fcsis·
S1.95
. COUtHERS . ETC. tance proportional to the angle 01
the slick. Sturdy metal construction
witn plastics components only at
HP-5082-7300 ~~~TMI~~~~~~~At~~~~~'O~~~~~~~:T:~~'~~~~~· lhe movable joint. Perfect for elec·
Ironicgamesandinstrumentalion
HP50S2·7Joo 5t 59.95 1n kit form . . $249 assembled.
The JOLT system .consists 01 :: set 01 modular mic· alone conslilutes a viable compuler system complete with
rocomputer Iloar(!swllicllcan be used singly or tied to· cenlral processor. 110 , Interrupts. timer. fead.-writ e memo $9.95ea
gelher to produce any desired microcompu ter system con· ory,andacompleteso!twaredebugnlonitorlnread·only·
fio uraii on. The minimum system IS one CPU board. which memory.

JOLT SYSTEM DESCRIPTION JDLTI/O Card (Peripheral InlerlaceAdapler)- 2PIALSI


ELECTRON IC ROULETTE
JOLT RAM C~rd _ Fully static 4 ,096 bytes 01 RAM WIlli 1 chips. 32 1/0 lines. lour interlupl lines. on·boarddecoding Complete kit
microsecond access time and on·board decoding. Hard· and standard TIL drive. Fully programmable. Manuals in·
ware and assembly manuals include~. AVAILABLE FOR cluded . AVAILABLE FOR IMMEOtATE SHIPMENT. $95.50 with all
IMMEDIATE SHIPMENT . SI 99.95 ki· $285 assem · kil . . 5140 assembled . components
bled JOLTUnlvenal Card _ 5amesile{4 V.'·x ]" .) . sameton,
laClor as other JOLT cards. Complclely hlank, drilled to
case and
JOLT Power Supply_Operates at + 5, + 12 and - 10
voltages. Supports JOLT CPU . 4kbytts 01 RAM and JOLT acteptl4 , 16.24 or40 pin sockets . Used for additional transformer
IIOcard - or,CPUand81/0cards. Manuals included user memory or I/O control panels , TV interlaces.
AVAILABLE fOR IMMEDIATE SHIPMEtIT. 599.95 kit . 5145 keyboards. LEOs. or other interface logiC. AVAILABLE FOR
IMMEDIATE SHIPt.'ENT. 524.95
assembled .
JOLT "'5I1BooslerOpllon-FitsontoJOLTPowerSupply
$29.95 Per Kit
JDLTAccessoIYBag-ContainsenouOh llardwaretocon·
nec!oneJOLTcardto~nother . Suchnecessary itemsasllat card. Supports CPU, 16kbytesoIRAM- or. CPUand8k
cable. connectors. cord spat:es, hardware. etc. AVAILABLE Ilytes RAM and 8 I/O cards - or, CPU aml4k byles RAM 115 VAC
FOR IMMEO!ATE SHIPMENT . $39.95 . and 16 I{O cards . Manuals included . AVAILABLE FOR 1M·

_
MEDIATE SHIPM ENT. S24 .95 6Yz" x6W'xl'h"
64 KEY BOARD
Thcre h!gh Quality keyb oards, whi ch wCleoriginaltymade ELECTRONIC CRAPS
by a large compuler manulacturer .. Each ke yb oard
. . .

~,.
has 64 keys. which arc brought OUI on llllencoded pins Complete kit
. ... --... ..... - . Til l')' Ulll'lC magnp.!ie rced type SWitches. and are ncw in
appearance. S29.95
with a ll
components
HD01 65 Keyboard Encoder ROM S7.95
case and
WIRE WRAP WIRE transformer.
AW' COLOR 25FT. MIN. 50FT. 100 FT. 1000 FT.
30 AWG WHI TE 52.10 $2.75 53 .50 S24 .00 \.,.( - -\
30AWG
30AWG
YELLOW
RED
2.10
2.10
2.75
2.75
3.50 ROO
( .\\. \ $19.95
\..- ~ \ .- . -
J .50 24.00
30AWG GREEN 2. 10 2.75 3.50 24 .oo
- Per Kit
.
30AWG BLU E 2.10 2.75 ·J.SO 24 .00
30AWG BLACK 210 2.75 3.50 24 .00
CAB LE Dlm~ nslDns: 6W· x JI/(" x 1W'

V~ClorWiri ngPenciIP I 7Jconsistsotahan(!heldlealherwelohl(un(!erone


~~ndu Clors 1·9ft111
39
10·241t/1t
19
25·991t/1l
.25 CONTIN NTAL
ounce) 1001 which is used 10 guide and wrap insulat~ wire, fed off a 20 59 .49 . ~5
SPECIALTIES $15.95
sell·contained replaceable bobbin, onto component teads or termin alsinstal·
I~ on pre·punched .. p. Panern Vectorbord · . Connections between the
111 30
40
_79
99
69
89
.65
85


50 1. 19 1 09 t .05 PROTO,O'R"
wrapped wire and component leads. pads or terminals ale made by soldering. .!II'. Th8 PB·6fels Ihe user test and bull(!
Complete wi1tl250 FT 01red wire. $9.50 ea. • ,., . .. . circuits without soldering or patch
." . , ' .•" .,:." ,. cords· alllnterconnectlons .betwHn :
REPLACEMENT WIRE - BOBBINS FOR WIRING PENCil • .. • t~· · .• . . • :.• •' ~o:np:~~n~W~eh::~~p :;~~e.'~~;
W36·3·A·Pkg. 3 (Green) 52.40 ' \ . .' , ~ " ,.. . . quality breadboar(!lng kit In.'udes
TH REE CONDUCTOR POWER SUPP L Y CORDS - ~. • . :.•..-' . 630 component lie points allen
W36·3·8·Pkg. 3 IRedl $2 .40
•.• .. than2.5ceach. ltmeasures6· long
NUMBER LENGTH AWG 0.0. RATING COLOR PRICE ~
W36-3-Cof>kg. 3 (Cl ear) 52.40 by 4·· wide. Designed sp!ciaUy to
17236 5 IS(41X34 ) .265 1250W BLACK Special .7gea.
~36·3·D·Pkg . 3 (Blu e) $2.40 IOA- 125V Breadooard Microprocessor Clr·
. .
17237 IS(4IXJ5) .253 1250W GREY 1.25 culls. $111.1&
9V BATIERY CLIP 10A· 125V
STANOAROClIP ~0 I72J8 lS(41X34) .265 t250W BLACK Special .9gea. PROTO IOARD 100
A low cost. big 10 Ie Cipaclty
FOR USE WITH 9V •• tOA·125V
17239 18(41X34) .253 1250W GREY 1.30 breadboard kit with all tile quaUtyol
TRANSISTOR BATIERIES OT sockelS ~n (! the bestolthe Proto
10A·125V
WITH 4" lEAOS 9/.99 17000 t8(41X34) .253 1250W BLACK 59 Boar(!serles . . • complete down 10
I I the last nut, boh and scrtw. tn·
cludes 2 OT·J5S Sockets: 10T·J5B
Bus Strip: 25·wayblndlng posts: 4
Satisfaction Guaranteed . $5 . 00 Min. Order. U . S. Funds. rubbetlee\; screws, nuts , bolts: and
California Residents - Add 6 % Sales Tax euyassembly lnstruct1ons .

d
$II!.I!!
.00 Write for FREE 1976 Catalog - Data Sheets .251/ each

pl.lx! ?!!~~2
Bring IC leads Irom pc board 101 last signal Iraclng
andlroubleshoot1ng.lnlectslgnals . Wire unused
AMP TERMINAL PINS clrcultslnlotlOatds.Scopeprobesandlest)eads
10ckonloOyn.orlplnset(seeclrcle)forllands·olf \
TERMINAL PINS FOR . lesllng. Plasllc construction ellmlnales 5prlng5. ~
MOUNTING COMPONENTS plvo!s . Non·corroslvenlckellsllvelcontactsfof,
ALSO PERFECT FOR USE Q simultaneous low resislanC8 conn8ctlons.
WITH BOARD CONNECTORS
/;;1
pc.,., l~ · pln Proto Clip, $4 .!!O ...
PC·,I, 16·pln ProloClip. $4 ,111 II .
AND SUBASSEMBLI ES $1 .00/100 PCS. PHONE ORDERS - 15) 592-8097 PC·24, 24·pln Prote Clips. ".!!O II.
2. Memory address space locations hexa-
decimal 014C to 014F are four display

YTE'S
B
la tches of the type described in
"There's More To Blinking Lights

ITS Than Meets The Eye." 014C is the


rightmost set of lamps, 014F the
leftmost.
3. Memory address space locations
greater than hexadecimal 1000 are
implemented as random access pro-
grammable memory .
Start the 32-bit 6800 CATERPJLLAR by
A 6800 CATERPILLAR PROGRAM branching to loc ation 1000 after entering
In a previous BYTE, we published an the program. Note that this routine is
artic le on how to use blinking lights as relocatable; this means that all branches are
action peripherals. ("There's More To Blink- made using the relative addressing mode of
ing Lights Than Meets The Eye," page 52, the 6800, and the data is kept separate from
January 1976.) In that article, th e CATER- the program in loc ations founrl in the first
PI LLAR program was described for an 8008 page of memory. Another subtle point is
computer architecture. Here is a 32 bit that the carry flag must be preserved within
version of CATERP ILL AR which runs in a the main loop in order to maintain continu-
6800 system, with the fo ll owing as- ity. As written, the bug steadily moves from
sumptions: left to right in the display. As an exercise,
1. Memory address space locations hexa- try re-writing the program to cause the
decimal 00 to FF al'e implemented as CATERPILl.AR to move in the opposite
random access memory. direction. cth

1000 86 3F CATERPLR LOAA #$3F ini tial pattern of the worm;


1002 97 10 STAA RO save the worm in RO;
1004 7F 00 11 CLR R1 clear rest of worm track
1007 7F 00 12 CLR R2 found in the
100A 7F 00 13 CLR R3 working variables of program;
1000 00 SEC set carry (always have minimal worm);
100E CE 03 FF NEWMOVE LO X #$03FF set up time delay count;
1011 09 WAITLOOP OEX delay loop sets speed of bug;
1012 26 FO BNE WAITLOOP if not ready then continue delay ;
1014 76 00 13 ROR R3 this is a
1017 76 00 12 ROR R2 32 bit
lOlA 76 00 11 ROR Rl rotation through
1010 76 00 10 ROR RO the carry in work registers;
1020 96 10 LOAA RO fetch the right light pattern
1022 B7 01 4C STAA LAMPO and store it in rightmost output;
1025 96 11 LOAA R1 fetch right middle light pattern
1027 B7 01 40 STAA LAMPl and store it in right middle output;
102A 96 12 LOAA R2 fetch left middle light pattern
102C B7 01 4E STAA LAMP2 and store it in left middle output;
102F 96 13 LOAA R3 fetch leftmost light pattern
1031 B7 01 4F STAA LAMP3 and store it in leftmost output;
1034 20 08 BRA NEWMOVE continue indefinitely;

Symbol Table:

Data Locations

LAMPO 014C Rightmost


LAMPl 0140 Right middle display
LAMP2 014E Left middle lamps
LAMP 3 014F Leftmost

RO 0010
Rl 0011 working RAM
R2 0012 registers
R3 0013

Program Locations

CATERPLR 1000 entry point of program


NEWMOVE lOOt:: main loop return point
WAITLOOP 1011 time delay wait return point

90
TOUCH TONE ENSEMBLE COMPUTER COMPONENTS
12 Key pad (2.25" x 3") plus MC1441 OP Generator chips plus 1 MHZ 1 CM6l 00 12 bit micro processor chip recognizes PDP 8/ E instruction
crystal. I ncl udes spec for MC1441 0 with circuit diagrams. set. CMOS construction-runs on micro amps .
TTE-0121 $18.45 1 CM 6100 $52.50
Data packet $ 4.00
VOLTAGE REGULATORS AY5·1 013A High speed UART for use up to 40K 8AUD.
JUST OUT! LM317K 1.5 Amp 3 terminal adju stable regulator in TO·3 UART-1013A w/specs $10.95,2 /$19,95
case. Adjusts from +1.2 to +37 V. Current limit and thermal shutdown. MC14412 UNIVERSAL DATA MODEM CHIP.
LM317K $ 4.99 Originate/answer, half/full duplex, sine wave out, Up to 600 BAUD,
Specs and applications $ .80 MC14412 FL (4.75·15 Volts) $28.99
78H05 - 5V, 5A fixed voltage regulator in TO-3 case. Just plug it into MC14412 VL (4.75·6 Volts) $21,74
same socket as your 309K and get 5 amps capability . Data $ .90
78H05 $10.95 MC14411 Bit rate generator. Crystal oscillator circuit and dividers
Specs $ .30 generate Hertz to 1,843 MHZ data rates.
TO·92 regulators. Tiny plastic fixed voltage regulators for up to 100 MC14411 P $11.98
mA. Save space and money. 78 series positive. 79 series neg. last 2 digits Data $ .60
indicate voltage. 1 K sta tic memory. 2102-1 (500 ns)
78L05, 78L12, 78L15 $ .85 New, prime parts $4.15, 10/ $39.00
79L05, 79L12,79L15 $ 1.00
CA3085A. 1.8V to 26 V adjustable. 100 mAo Short circuit protected. COMPUTER GRADE CAPS
CA3085A special $.60 ea., 10/$ 5 5,400 J.lF 5V $ ,60
720 150 V $1 .25
CLOCKS AND TIMERS
36,000 15 V $2.25
MICRO POWER CLOCK
19,000 25 V $1.25
MC14440Z is a calendar and time of day clock chip designed for
9,400 40 V $1,10
portable clocks and watches. Drives LCD display. Runs for month s on
56,000 10 V $1,60
single 1.5V cell.
1,000 50 V (plastic) $ .90
MC14440Z $14.75
4,000 50 V (plastic) $1.35
Spec $ .60
1,000 50 V (Twist Lok) $ .65
MLC400 Liquid Crystal Display for use with MC14440. Has 4 inch high
100 250 V (Twist Lo k) $ ,65
ch aracters.
MLC400 $10.00
Specs $ .40 AXIAL LEAD ELECTROL YTICS
1CM7045. Precision ti mer chi p for digital stop watch/cloc k/ti mer 500/.lF 25 V (Sprague) 10/ $2.00
applications. On chip oscillator circuit. Stop watch can be standard, 500 50 V (Temple) $ .60
sequential, split or rally mode. 8 digit direct LE 0 drive output indicates 580 75 V (Sawgamo) $ .65
100ths of seconds to 24 hours. Needs onl y LE 0 array, crystal, switches 1,000 25 V (ABC) $ ,60
and battery for operation. 4,000 25 V (CDE) $ .95
lCM7045 $29.95
Specs $ 1.00
1 CM7207 and 7208 set for frequency counter. 7208 is 7 decade SWITCHES
counter/decoder/driver. 7207 is oscillator/divider/controll er. SPOT 1/4 inch toggl e (removed) 3/$1.00
1CM 7207-7208 set $29.95 SPOT 1/4 inch sideways PC mount (new) 5/$4.00
Specs $ 1.70 SPOT super small slide switch 10/$2.00
DPDT Lighted Roc ker SW $1.49
COMPONENTS SPOT 1/4 inch momentary-wire wrap $ ,99
1 N4148 (on real tape) 20/$1 .00
6V 400 mW zener diode 20/$1.00 MISC
1 N4001 15/$1 .00 Ferrite Beads' 1 /8" x 1/8" dia. 20/$1,00
lN4002 14 /$ 1.00 I K CTS Open Micro Pot 10/$ 1.00
1000V 2,5 Amp (IRC) 10/$2.00 MK-20 TO ·3 Kit (Anodized AI) 4/$1,00
100V 3 Amp EPOXY DIODE 10/$1.00 12 V 100 mA P.C, Transformer $1.29
50V 3 Amp EPOXY BRIDGE 3/$2.00 S.P.N.O. 16A 12 V DC Coil Relay $1.00

W 1:
tRI -t€k, Inc
6522 N 43rd Avenue
Glendale AZ 85301
All orders postpaid - please add insurance. Minimum order
$5 US'/$15 foreign. Latest lists - 13 cent stamp.

91
thing and is instrumental in locating a
missing computer technician of the city's
maintenance predi ction department. The
technician falls in with a group of revo lu-
tionaries who put hi s knowledge of the city's
computers to use simulating eq uipm ent
failures, a sophisticated form of sabotage.
In searching for the missi ng computer
technician, George meets the genius leader
of the gang and is pulled into the gang's
actions; George himself becomes the missing
man.
BOOK REVIEWS Th e book is good I'eading for those
interested in speCUlating on the effec ts of
compu ter control of urb an areas.-

The Mis sing Man by Katherine Mac Lean, Digital Design With Stand ard MSI & lSI by
published by 8erl?eley Publishing, 7975, 220 Thomas R. 8lal?sJee, John Wiley & Sons,
pp, $6.95 hardbacl? 7975, 357 pp, $79.95 hardback.
Based on th e Nebul a awa rd winning short Th ere are now quite a few texts on digital
story of the same name, Kath erin e Maclean design available, but this is the first I have
tells of the future of Th e City, a large seen that concentrates o~ minimi zing IC
metropolitan area where people are slightly packages rath er than ga te inputs and flip
tel epathic and are influ enced by the trauma flops. There are many useful areas covered,
of a single individu al. In ord el' for panic to including tradeoffs betwee n digital and other
be kept und er co ntrol, a so phi sticated rescue electric or mechanical components, bas ic
squad is di spatched to reach an end angered des ign theory, and reliability.
person befo re hi s th oughts can induce mass The first two chapters cover design con-
hyste ria. siderations as a whole and esta blish the
George Sanford, th e main charactel', find s argument that traditional gate minimi zat ion
him se lf parti cul arl y adapted to thi s so rt of is not only time consuming but usu all y more
costly. Chapters 3 to 5 cover traditional
HI-SPEED design combined with th e id ea of using MSI
and lSI wherever poss ible. Chapters 6 and
STATIC RAM 2602-1 475 ns 10 al'e very helpful essays o n des ign prob-
lems that are usu all y ignored by traditi onal
Manufactured by Signetics, 2102 pinout tex ts. Race conditions, noise, reflecti ons,
$4.25 for 1/$4.00 each for 8/$3.75 each for 32 and clocking probl ems are treated in a clear
WHY PA Y FOR BEING SMALL? mann er.
Centi-Byte is a new source of memory components Chapters 7 and 8 look at programmed
and other necessary items for the computer hardware logic and cover th e Intel 8008 and IMP-16
builder. Centi-Byte's function is to be a voice to the processors and instruction fOI·mats . Th e pre-
manufacturing companies representing you, the modest sentation is done in a way that eas il y appli es
volume consumer of special purpose components. Centi- to other microprocessors. Concepts of DMA,
Byte brings you this special introductory offer of fast interrupts, assemblers and compilel's, and
memory chips, chips fast enough to run an MC6800, automatic testing are well pl'esented.
MCS6501 or 8080 computer at maximum speed. These Chapter 9 discusses tim e multipl exi ng
2602-1 's are new devices purchased in quantity and fully functions using a singl e circuit, and Chapter
guaranteed to manufacturer's specifications. 11 deals with interfac ing a wide variety of
Centi-Byte works by concentrating your purchasing 10 devices. Chapter 12 is a va lu ab le refe r-
power into quantity buys of new components. let me ence fO!' figuring sys tem reli ability using
know what you need in the way of specialized com- stati stical calculati ons.
ponents and subsystems for future offerings. With your Perhaps most unusu al abo ut the text is
purchasing power concentrated through Centi-Byte we'll chapter 13 which discusses the engineer's
help lower the cost of home computing. responsibility to soci ety - will lSl s be used
to create more and more consumer gadgetry
All orders are shipped postpaid and insured. Massachusetts or really help man to ovel'come hi's
residents add 3% sales tax.
problems?
This is a well written and valuable book
that belongs in eve ry microp rocessor
library.-
I II Gary Liming
3152 Santiago Dr
Carl M. Mikkelsen, Proprietor, P.O. Box 312, Belmont MA 02178
Florissant MO 63033

92
You'll Want to Nybble
at these Byte .Books
Where does the editor of a computer magazine turn to when he must
verify some author's hardware design? Information on a 75450
interface gate, or a 74147 priority encoder circuit does not spring forth
by magic. Checking the information supplied by authors is part of
BYTE's quality control program.
When you build a project, you need this same sort of information. All you find in the advertisements for parts are
mysterious numbers identifying the little beasties ... hardly the sort of information which can be used to design a
custom logic circuit. You can find out about many of the numbers by using the information found in these books. No
laboratory bench is complete without an accompanying library shelf filled with references - and this set of Texas
Instruments engineering manuals plus 0 on Lancaster's TTL Cookbook will provide an excellent starting point or
addition to your personal library .
.The TTL Cookbook by Don Lancaster, published by Howard • The Semiconductor Memory Data Book for Design Engi-
W. Sams, Indianapolis, Indiana. Start your quest for data here with neers, by Texas Instruments, Incorporated. Don't forget the
Don's tutorial explanations of what makes a TTL logic design tick. importance of memories to your systems. Refer to this 272 page
335 pages, $8.95 postpaid. manual to find out about the T.!. versions of. many of the popular
• The Supplement to The TTL Data Book for Design Engi- random access memories and read only memories. Order your
neers, by Texas Instruments Incorporated. What happens when personal copy today, only $2.95 postpaid.
you can't find a 7400 series device listed in The Data Book for
Design Engineers? Before you start screaming and tearing your • The Linear and Interface Circuits Data Book for Design
hair out in frustration, turn to the Supplement. The Supplement Engineers, by Texas Instruments Incorporated. When you run
has 400 pages of additional information including a comprehensive across one of those weird numbers like 75365 the immediate
index to both TTL Data Book volumes. To be complete (and keep frustration problem occurs again. What kind of gate could that be?
your hair in place and vocal cords intact) you'd best order the We won't tell in this ad, but you can find out by reading the
supplement at $1.95 to accompany the main volume. specifications in The Linear and Interface Circuits Data Book for
Design Engineers. You can interface your brain to the 72xxx
• The Transistor and Diode Data Book for Design Engineers,
(linear) and 75xxx (interface) series of functions by ordering your
by Texas Instruments, Incorporated. You'd expect a big fat data
copy of this 688 page manual at only $3.95 postpaid.
book and a wide line of diodes and transistors from a company
which has been around from the start of semiconductors. Well, it!;
available in the form of this 1248 page manual from T . !. which • The TTL Data Book for Design Engineers, by Texas
describes the characteristics of over 800 types of transistors and Instruments Incorporated. How does an engineer find out about
over 500 types of silicon diodes. This book covers the T.!. line of the TTL circuits? He reads the manufacturer's literature. This 640
low power semiconductors (1 Watt or less). You won't find every page beauty covers the detailed specs of most of the 7400 series
type of transistor or diode in existence here, but you'll find most TTL logic devices. No experimenter working with TTL has a
of the numbers used in switching and amplifying circuits. Order complete library without The TTL Data Book for Desig"
your copy today, only $4.95 postpaid. Engineers. Order yours today, only $3.95 postpaid.

Caution: Heavy Rea.d ing


Buyers of these books should be cautioned: heavy reading will be required. These books are so
filled with information that they weigh in at a total of about 190 ounces (5387 grams). On the basis of
sheer mass, these books have got to be the bargain of the century_ Make sure that you use a
structurally sound book shelf and above all avoid dropping one of these books on your foot. But the
mass of these books doesn't affect the bargain: we pay postage on all orders shipped to addresses in
the USA and Canada, so the prices you see are the prices you pay. (That's only $.005 per gram on the
average. )

_ _ TT L Cookbook @ $8.95 Send to: Name


_ _ TTL Data Book @ $3.95
Address
_ _ Supplement to TTL Data Book @ $1.95
_ _ Linear and Interface Circuits @ $3.95 City State Zip
_ _ Semi~onductor Memory Data @ $2.95 o Check enclosed
_ _ Transistor and Diode Data Book @ $4.95 o Bill MC # ________ Exp. Date _ _ _ __
o Bill BA # Exp. Date _ _ _ __

~~TI PETERBOROUGH, NH 03458 Signature

93
A Lesson in Economics
What happens when a good becomes so to legislate Pi = 3.0000 ... Many thanks to
desirable and sought after that many people Adam Smith and Ludwig von Mises for
want to have it? Unless an ample supply is tipping us off about the law of supply and
forthcoming, the price can and must go up demand, confirmed again by this laboratory
(political fiat to the contrary notwith- experiment.
standing). Recently we wondered why one The point of mentioning this is to put to
distributor kept asking us for more and more rest rumors about our supposed reprinting of
of BYTE Number I. He was very insistent, the early issues of BYTE. First, we are not
and spent several transcontinental telephone planning to reprint BYTE magazine issues as
calls urging us (in vain) to send him more of magazines , ever. You'll see individual articles
BYTE's inaugural issue. reappearing in books of selected reprints
We found out recently , thanks to several which we plan to publish. However our early
callers, that this fellow was selling BYTE's supporters will see their confidence
Number I issue for $15 .00 each, since rewarded as the price of the first issue
everybody wants one and the supply is very collector's item rises over the years , since we
limited. Of course he made a temporary will never reprint it as a magazine. Our
windfall profit on his early investment in a policy is now and will con tinue to be one of
supply of the new magazine. He paid what matching our press runs to the subscription
everyone else did who purchased a bulk and newstand demand , with very few extra
shipment of the then unknown magazine. issues kept available. If you want to keep up
There is a law of economics that price rises with thi s fast moving field , you'll have to
when supplies are tight - it is as much a keep your subscription current.
folly to fight such a trend as it is to attempt

J" - - - - - - - - - - - - - - - - - - - - -I - - - - - - - - - - - - - - - - - - - - -,
Cut Tear

Name ... ..... . .... . ... . . .. . . .. ..... . .............. .. .. . Name . . ............. . . ... . ... . . ... . . . . ... .... . ....... .•

Address ...... .. ... ..... . . • . .. .. .. .. .. . .. . .. . .. . ........ Address .. . .... . ..... .•. . .. . . ... . . . ..... . .. . . .. . .. . .....

City .............. . .. . . ... .. State ...... . .. ... Zip . .... . . City . . ... .. . ... . .... . .. .. .. . State . .. .. ..... . . Zip . .... . .

DBILL ME o Check for$12 enclosed D BILL ME DCheck for$12 enclosed


o Bill BankAmericard or MasterCharge # .. .. .. . ... . . o Bill BankAmericard or MasterCharge # . . . . .. . .... .

t- - - - - - - - - - - - - - - - - - - - - -1- - - - - - - - - - - - - - - - - - - - - -j
I Shred 1 Rip 1

I Name.. .. .. .. . . . . . .. .. . . . ............... .. .. . .... . . . ... 1 Name . .. .. .. . .... . . . ... .... .... . .. .. .. . . .. . . ... .. . ... . . 1
1 I 1
1 Address .. .... ... .. . . . ...... . . .... .. ..... .. ... . ... .. . . .. 1 Address .. . . .. .. .. . ... . .•.. . .... . . . . . . . . .... . . . ... .....• 1
1 City .•. ... •... . . .. ......... . State ....... . . .. . Zip . . . . . .. I City ... . . . ......•.... . .. • .. . State. ... ... .. .. . Zip. . . . . . . 1

I DBILLME D Checkfor$12enclosed 1 D BILLME DCheckfor$12enciosed I


1 0 Bill BankAmericard or MasterCharge # . . . . . . . . . . .. I 0Bill BankAmericard or MasterCharge # .. .. . . . . .. . . 1

1L....- ____________________ 1
---J _____________________ 1
..J.

• BYTE. 70 Main St • Peterborough NH 03458

94
Continued from page 8 ve rsa. Th e va lu e of the byte does not matter.
The generali ty shown at the byte level in
files which co nta in im ages of a program that softwa re ca n also be designed into t he
written in a high leve l langu age; th e mem ory software for more sophisticated multipl e
im age form of a program is an exampl e of byte reco rd s. Th e techniqu es of naming fi les
ge neral bin ary data encod ed in a way wh ich mentioned earli er is such an extens ion which
has significance as a mach in e langu age can be made with comp lete generality; other
I'e prese ntatio n of the program. Wh en you inform at ion manage men t co ncepts also can
des ign a particul ar application, cho ice of th e be used. Ind eed th is barely scratches the
data formats and representations to be used surface of th e concepts of f il es and data
with mass storage is often one of th e biggest organ iza ti on as impl emented in 10 software_
considerations_ The subj ec t is worthy of several art icles
(wouldb e authors take notice) .
The Generality of 10 Software
The fact that programs stored on a mass The Status of I nexpe nsive Mass
storage medium are simpl y data pattern s Storage Tec hnology
with particu lar signif ica nce leads to the As of th e date of t hi s writing (earl y
suggesti o n t hat the same 10 software can be Janu ary 1976) there ex ists onl y one truly
used to locate and transfe r data fo r any inexpensive ma ss storage medium: Th e audio
purpose_ Th e 10 software can be looked sig nals reco rd ed and pl ayed back by typical
up on as a chann el through wh ich bytes can cassette I-eco rd ers or any other audio signal
be pushed (or from wh ich they can be medium . (Note that the BYTE Audio Cass-
pu ll ed). Th e spec ific meaning of the bytes ette Symposium's provisiona l standard uses
transferred is fo r the most part ind epend ent th e au di o cassette reco rd er as a worst case
of the use of the data_ To illustrate th is design cr iteri on; use of a better audio
generali ty, take the specifi c exa mpl e of the medium can onl y imp rove reli ability. ) At th e
read and write software of the COMPLEAT prese nt time, the prim ary use of the sta nd-
Tape Cassette Interface in this issu e_ All this ard is fo r mag neti c recording upon cassette
software does is tra nsfer eight bits of data to or ree l-to-ree l reco rd ers. There is presen tly
the acc umul ato r fro m the ACIA, or vice no such thing as an in ex pensive random

Have you eve ry b ee n v ictimized by .s i ts inspirational data content . Th e


Stamp Out Cybercrud one of a myri ad co mput er based inter- m achin es we' re all bu sy working on are
persona l putdowns? In Ted N elson's deep persona l exp ress ions , and not the
book, Computer Lib/ Dream Machines, cold an d inhuman mon sters of the tradi-
yo u'll f ind an exce ll ent essay on the tion al ste reo typ e. Th e b ook defines

COMPUTER
nature of this " cybe rcrud ." many of the terms and ex plains many of
H ave you ever wondered where to go th e t ec hni ques which can b e used in the
for a bas ic start ing po int in yo ur quest personal computer systems we're all
for in fo rmation abo u t co m puter app lica- busy construct ing and prog rammi ng. It
t ion s an d u ses? T ed Nel son' s book, perfor m s th is service in a way which
Computer Lib/ Dream Machines , i s th e add s co lor and exc it ement to this newest
place for yo u to b eg in. of art form s, th e computer app li ca tion .
Computer Lib/Dream Machines is for Computer Lib/ Dream Machin es is
the layman - t he pe rso n who is intelli- mu st reading for the beg inn er, and is also
gent and inquis it ive about computers. It a refreshing se lf exa mination for t he o ld
is wr itten and se lf publ ished by a hand at programm ing and systems work .
philosoph er who is also a self confessed You ca n ord er your copy of Com-
co mputer fan and an exce ll ent t eacher of puter Lib / Dream Machines from BYTE 's
basic concepts . (F or t hose who have not Books for $ 7 postpaid . Send your order
ye t hea rd, ivory towers are constructed today to BY TE' s Books, 70 Main St,
out of rea l and subs t an t ial wh ite bricks. ) Pet erborough NH 03458. Help sta mp
Th e most important aspect of this book out cvbe rcrud.

r--------------------------------
I
I Sen d cop ies of Computer Lib/Dream Machines to :
I
I Na lll t'
I
Add r~ss
I
I
I C ity Stat~ Zip
I I I Check enclosed
I II Bill Me #,.____ _ _ _ _ Exp . Date _ _ __
I Bill BA # _ __ __
II Exp. Date _ _ __
I
~~TI PETERBOROUGH , NH 03458
Signature

95
ac cess mag netic reco rding meth od. (Fl oppy
reader di sks are not in the same pric e class as audi o
cassette tec hn ology . .. yet. ) On e ca n o nl y
service hope that engin ee rs such as those wh o
des igned Hewl ett-Pac kard's mini atul-e mag-
To get further information on the products advertised in thi~ neti c ca l'd drives will co me up with an
issue of BYTE merely tear, rip, or snip out this advertiser inde x, equa ll y reli able and in ex pensive mini ature
fill out the data at the bottom of the page, circle the appropriate rand o m access med ium for use in pe rso nal
numbers, and send the works to B YT E, 70 Main St, Peter-
co mpu ting.
borough NH 03458 _ Readers get extra Brownie Points for
sending for information since this encourages advertisers to keep Wh il e the truly in expens ive random
using BYTE - which in turn brings you a bigger BYTE . access mass storage dev ice ha s ye t to be
des igned , the sequent ial access rep resented
by th e low speed audi o cassette storage
medium is an ex ist ing and acco mpl ished
fac t, as ev ide nced by th e info rmati o n in this
BYTE . It is a quite usa bl e system, eve n if
slow; it will be prese nt in amateur co m-
ADVERTISER INDEX
puting for some time to co me. -

Al ACM 3
A2 AP Products 28 December's BOMB Winner
A3 BYTE 's Books 93, 95
A4 BYTE Subscription 94 Th e results of the Dece mber BOMB anal-
A37 Celdat 51 ys is fo und the winner to be Do n Lancaster's
A43 Centi-Byte 92 arti cle on "Read Onl y Memory Techn ol-
A6 Continental Specialties 7 ogy. " Runn ersup were "Flip Fl ops
A7 Delta 85 Exposed" by William E. Br ow nin g and Gary
A56 E & L 73 I<ay's articl e, "B uild a 6800 System With
A48 El ectronic Produ ct Assoc, In c 76
Thi s Kit." Thu s Don rece ives th e $5 0 bonu s
A9 Godbout 8 1
chec k as he did for hi s " In s and Outs of
A12 IMS CIII
A13 Int'I El ectroni cs Unltd 8 3
Vo latil e Memory, " in th e November BYTE
A38 Intelligent Systems Corp 45 (nol Octo ber, wh ich last mo nth' s ca lendar
A15 Jam es 89 co nfu sc d BOMB results statcd).
A18 Meshn a 87
A21
A22
MITS CIV, 17,69
National Multi p lex 61
BOMB: BYTE's Ongoing Monitor Box
A50 Osborn & Associ at es 80 BYTE would like to know how readers evalua te th e effo rts of
the authors whose blood, sweat, twisted typewriter keys, smoking
A23 Polymorphi cs 61
ICs and esoter ic software a bs tractions are reflected in th ese pages.
A24 Processor T ec h 4 8, 49 B YTE will pay a $50 bonu s to the au th or who receives the most
A26 Scelbi 9 points in this survey each month. (Editor Helm ers is not eligi ble for
A29 Southwest T ec h CII th e bonus.) The following rules apply:
A30 Sphere 4, 5
1. Articles you like most get 10 points, articl es you like leas t get
A32 Tri Tek 91
o (or negative) points - with intermediate values according to
your personal scale of preferences.
2. Use the numbers 0 to 10 for your ratings, integers on ly.
3. Be hon es t. Can alJ the ar ticles realJy be 0 or 10? Tr y to give a
preferen ce scale with different values for each au thor.
Reader's Service 4 . N o ballot box st uffing : Only one entry p er reader!
BYTE MARCH 1976 Fill out your ratings, an d return it as promptly as possi ble al ong
Green Publishing Inc with your reader service req uests and survey answers. Do you like an
70 Main St BYTE acquired via author's approach to writing in BYTE ? L et him know by giving him
Peterborough NH 03458 I J Subscription a crack a t the bonus through yo ur vote.
Please print or type. o Newsstand
o Stolen LIKED
LEAST BEST
Name 10 Hemenway: COMPLEAT Interface 0 1 2 3 4 5 6 7 8 9 10
18 Manly: Magnetic Recording o 2 345 6 7 8 9 10
Address
30 Lancaster : BIT BOFFER o 2 345 6 7 8 9 10
40 Mauch : Digital Data o 2 3 4 5 6 7 8 9 10
46 Baker : Update: CP1600 o 2 3 4 5 6 7 8 9 10
City State Zip 52 Helmers : Hand Assembly o 234 5 6 7 8 9 10
62 Maurer : Algebraic Expressions o 2 3 4 5 6 7 8 9 10
Coupon expires in 60 days . . . 78 Walters : Video Display o 2 3 4 5 6 7 8 9 10
Feel free to ph o tocopy this or any other page if you wish to keep your BYTE intact.

96
Tile IMSAI 8080 can Dc configured w i til optiona l Mother Board to prov id e a f ull 22 slots. (shown)

Front panel plugs into


Motll er Board, tllus Special PIO Board
eliminating the wo rk of configured w i t ll LEDs
solde rin g all tile w ires to monitor each oit
f rom tile front panel of each of the 4 ports.
to the Mother Board .

Extender Board
ava ilao le

Sturdy Card Cage

Heavy duty powe r supp l y (optional ~ u a l power supply shown .)

The I MSA I 8080 is designed using the full Inte l family of large sca le integration cll i ps, thus provid ing high reliaoility and
greater flexaoi lity.

Front panel hosts a photo graphi c lege nd to produce a clear, concise, easy-la-read
format tll at can oe configured for eitll er hexadec imal or octa l. (I t won't wear off ! )

8 addit ional program


control led LEDs.
Commercial gra de
cao inet

Easy-la-usc commercial
grade padd le switches--
very crisp and sol id.

COM I NG SOON: Free BASIC and exten ded BAS IC fo r registered IMSA I 8080 ow ners, fo ll owed shortl y by Fortran I V and PLM.
TERMS : Check or money order, Bankamericard, Master Charge, 25% deposi t on COD o rde rs. On all orders under $1,000 , add 5%
for handling. On orders over $ 10,000 subtrac t 5 %. Ca lifornia re s ide n ts add 6% sa les lax.
SEND FOR FRE E CATA LOG OF IMSA I M ICROCOMPUTER PRODUCTS DEALER INQUIR I ES I NV ITED
SPECIAL NOTICE TO A LTAI R 8800 OWNERS :
I f yo u would li ke to step-up t o the superior qu alit y of an IMSA I 8080, yo u w ill Oe pleased to know th at your A LTAIR 8800
boards are uplug-in " usab le-without mod ificatio n- in the I MSA I 8080 cabi ne t. Furthermore, by acq uiring I MSA I 's uni que Memory
Sharing Facility, your ALTA I R MPU ooard and IM SA I MPU ooard ca n co.ex ist in th e same ca oin et, operat e in parallel with eac h
other, and share all memory in common. Tili s is th e techn o logy tllat laid tile fou ndation for IM SA I's powerfu l HYPERCUB E
Compu ter and Intelligent Disk systems ( rece ntl y featured in Computerwo rl d, Datamatio n and Electro ni cs m agazin es. )

IMS ASSOCIATES, IN C., 1922 REPUBLIC AVENUE, SAN LEANDRO, CA 94577


(415) 483-2093

Das könnte Ihnen auch gefallen