Vol.4 n°1 january 1979

byte_1979_01.jpg

byte_1979_01_index.jpg

Foreground

p.56 BUILD A COMPUTER CONTROLLED SECURITY SYSTEM FOR YOUR HOME

[author Steve Ciarcia]

Protecting your home with your personal computer-Part 1 of a 3 part series

p.84 A COMPUTERIZED MAILING LIST

[author Thomas E Doyle]

A practical application for your floppy disk computer system

p.90 LIFE ALGORITHMS

[author Mark D Nierniec ]

Efficient methods for programming John Conway's game of Life

p.104 POLYPHONY MADE EASY

[author Steven K Roberts]

Play chords instead of just single notes with your computer

p.186 AN AUDIBLE LOGIC TEST PROBE

[author James L Woodward]

Change voltage levels to musical tones for quick troubleshooting

p.190 HISTORY OF COMPUTERS: The IBM 704

[author Keith S Reid-Green]

Concerning one of the last vacuum tube computers

Background

p.14 A MICROPROCESSOR FOR THE REVOLUTION: THE 6809

[author Terry Ritter and Joel Boney]

The successor to the 6800 described by its designers in the first of a 3 part series

p.74 AN EXPOSURE TO MUMPS

[author David D Sherertz]

First designed for medical applications, this high levet language is diversifying

p.100 THE DIGICAST SYSTEM: Receiving Data and Information Over Your FM Radio

[author A I Halsema]

Receiving computer programs over FM subcarrier bands

p.110 GRANDMASTER WALTER BROWNE VERSUS CHESS 4.6

[author John R Douglas]

The continuing saga of Chess 4.6, this time in a simultaneous exhibition by a Grandmaster

p.116 AN INTRODUCTION TO BNF

[author W D Maurer]

Introduction to Backus-Naur Form, an abbreviation method used in compiler and interpreter design

p.126 CREATING A CHESS PLAYER, Part 4: Strategy in Computer Chess

[author Peter W Frey and Larry R Atkin]

Optimizing end game evaluation on the computer

p.146 IPS, AN UNORTHODOX HIGH LEVEL LANGUAGE

[author Dr Karl Meinzer]

A machine independent high level language interpreter

p.174 GOTOlocks AND THE THREE SORTS

[author Gwen Hadley]

A tale told by a PUNdit of a sort

p.182 ELEMENTS OF STATISTICAL COMPUTATION

[author Alan B Forsythe]

How to calculate means and standard deviations

Nucleus

p.4 In This BYTE

p.6 A Short Note on Pascal Progress and Other Topics

p.10 Letters

p.49 Book Reviews

p.52 Machine Language Puzzler: Memory Meanderings

p.53 BYTE's Bugs

p.54 Technical Forum: Comments on S-100 Bus Extension

p.160 Clubs and Newsletters

p.162 BYTE's Bits

p.170 Desk Top Wonder: Some Random Games

p.176 Nybbles: A Micro Word Processor

p.179 Programming Quickies: Single Stepping the 8080 Processor

p.188 Event Queue

p.193 What's New?

p.222 Unclassitied Ads

p.224 BOMB, Reader Service

Cover Art: SCULPTING THE NEW TITANS

[author Robert Tinney]

p.14

This month's cover is entitled Sculpting the New Titans, a fantasy by Robert Tinney that emphasizes the new crop of innovative circuitry being chipped out of silicon by microcomputer engineers. Of course, in real life the tools are more likely to be a computer, plotter, and wafer fabrication facility. Among the new devices is Motorola's new 6809 processor, expected to be available in the next few months. Successor to the 6800, the 6809 is an 8 bit processor that can perform 16 bit operations. The two chief architects of the 6809, Terry Ritter and Joel Boney, begin a 3 part discussion of the new circuit in A Microprocessor for the Revolution : The 6809, Part 1: Design Philosophy. page 14

In this BYTE

p.56 This month Steve Ciarcia begins the 3 part series, Build a Computer Controlled Security System for Your Home. Part 1 covers everyth ing you need to keep your home or business secure, from the right types of sensors to detailed software examples. page 56

p.74 Of the four standard languages of the American National Standards Institute BASIC, FORTRAN and PL/1 are fa miliar. Less so is MUMPS, used for many business and science applications. Get An Exposure to MUMPS in David Sherertz' article. page 74

p.84 Implementing a mailing list on your computer is a practical application for many personal computer experimenters. If you have a floppy disk based system, read A Computerized Mailing List by Thomas E Doyle and find out how easy it is to do. page 84

p.90 Last month David Buckingham described interesting and intricate patterns that occur in John H Conway's game of Life. This month we take a look at some of the methods and schemes for implementing a Life program on your computer. Mark D Niemiec reveals a Life enthusiast's trade secrets in Life Algorithms. page 90

p.100 In The Digicast System A I Halsema describes a new technique for receiving computer programs and information broadcast over the subcarrier frequency bands of FM radio stations. Similar systems are now in operation in Europe. page 100

p.104 One of the problems in creating computer synthesized music is that many systems all ow only one note at a time to be entered - a time-consuming restriction . Steven Roberts describes a way around the dilemma in Polyphony Made Easy. page 104

p.110 Computers cannot play perfect chess, but sometimes a computer program can do surprisingly well. The human United States chess champion discovered this fact while competing against the world champion computer chess program. That confrontation was recorded by J R Douglas in Grandmaster Walter Browne versus Chess 4.6. page 110

p.116 BNF (Backus Norm al Form or Backus-Naur Form) is a standardized method for abbreviating certain statements made about programming languages. Used extensively in books and articles de aling with compiler and interpreter design, it is explained for those new to the subject in W D Maurer's article, An Introduction to BNF. page 116

p.126 In Creating a Chess Player, Part 4: Strategy in Computer Chess, authors Peter Frey and Larry Atkin describe some clever optimization techniques that can significantly reduce the amount of computer time needed to evaluate end game positions. page 126

p.146 In this issue's Languages Forum: IPS, An Unorthodox High Level Language, Karl Meinzer presents an introduction to his creation, a machine independent high level language interpreter presently implemented for the RCA 1802 and 8080 processors. page 146

p.174 Test your computer vocabulary by puzzling over Gwen Hadley's story of GOTO locks and the Three Sorts. page 174

p.182 In Elements of Statistical Computation, Alan Forsythe covers some of the dos and don'ts of determining the mean and standard deviation of a set of data. page 182

p.186 Logic probes are handy for troubleshooting digital logic. Read about James L Woodward's circuit in An Audible Logic Test Probe. It plays two tones through a speaker corresponding to high or low logic levels, and it costs very little. page 186

p.190 We tend to take the microprocessors of today for granted, forgetting the power hungry days of the 1950s. In his article, History of Computers: The IBM 704, Keith ReidGreen looks at one of the last vacuum tube computers to be commercially marketed. page 190


Vol.4 n°2 february 1979

byte_1979_02.jpg

byte_1979_02_index.jpg

Foreground

p.46 USE YOUR TELEVISION SET AS A VIDEO MONITOR

[author Timothy Loos]

The right circuit modifications can save you the price of a video monitor

p.70 THE ECLECTIC CARD READER

[author Anthony J Schaeffer]

A do-it-yourself punched card reader

p.90 A STEPPING MOTOR PRIMER: Theory of Operation

[author Paul Giacomo]

Learn about these useful devices in the first of a 2 part tutorial

p.108 FAST FOURIER FOR THE 6800

[author Richard H Lord]

Analyze speech and music with this fast FFT program

p.162 BUILD A COMPUTER CONTROLLED SECURITY SYSTEM FOR YOUR HOME

[author Steve Ciarcia]

The software for a sophisticated computerized security system-Part 2 of a 3 part series

Background

p.12 DESIGNING A ROBOT FROM NATURE: Biological Considerations

[author Andrew Filo]

The eye of the frog is the inspiration for a video scanner-Part 1 of a 2 part article

p.32 A MICROPROCESSOR FOR THE REVOLUTION: The 6809

[author Terry Ritter and Joel Boney]

Creating the 6809 instruction set, and related matters-Part 2 of a 3 part series

p.66 ANOTHER PLOTTER TO TOY WITH

[author Peter A Lucas]

Build a plotter with an Etch-a-Sketch!

p.76 ASSEMBLING THE ADM-3A

[author Paul Franson]

A user report on the Lear Siegler "dumb" terminal kit

p.84 A HOBBYIST ROBOT ARM

[author Keith Baxter and Timothy Daly]

A Luxolamp is the inspiration for this clever robot arm design

p.120 APPROACHING GAME PROGRAM DESIGN

[author H L Stuck]

Techniques for designing your own computer games

p.154 UNLIMITED PRECISION DIVISION

[author Jef Raskin]

Investigate real numbers with integer BASIC

p.180 HAMMING ERROR CORRECTING CODE

[author Michael Wimble]

One step beyond the parity bit, Hamming codes detect and correct errors

p.186 FILES ON PARADE: Types of Files

[author Mark Klein]

One of the basic building blocks of computer programming is examined-Part 1 of a 2 part article

Nucleus

p.4 In This BYTE

p.6 The Current State of Robotics

p.10 Letters

p.43 BYTE's Bugs

p.44 BYTE's Bits

p.55 Book Review

p.58 Robotics Forum

p.63 BYTE News

p.128 Nybbles: Computerized Wine Cellar

p.132 8 Queens Forum

p.150 Technical Forum: Interfacing TTL to 20 mA Current Loop

p.158 Event Queue

p.184 Clubs and Newsletters

p.201 What's New?

p.230 Unclassified Ads

p.232 BOMB, Reader Service

Cover Art: CLOSING THE LOOP

[author Ken Lodding after M C Escher]

In this BYTE

This month's cover, "Closing the Loop," by Ken Lodding, is our version of the famous original, "Drawing Hands," by the Dutch artist Maurits Cornelis Escher (1898-1969). Much of Escher's work deals with mathematical subjects, and the idea of a robot hand drawing a human hand (and vice versa) seems particularly appropriate to this month's theme of robotics.

p.12 In Designing a Robot from Nature, Andrew Filo begins a 2 part series about a robot arm and eye mechanism designed to simulate certain biological features of amphibians. Study of the frog's insect catching capability leads to some interesting design shortcuts. Read Part 1: Biological Considerations. page 12

p.32 6809 designers Terry Ritter and Joel Boney of Motorola continue their discussion of A Microprocessor for the Revolution: The 6809 in Part 2: Instruction Set Dead Ends, Old Trails and Apologies. This lively question and answer section reveals the design philosophy that went into the 6809, the successor to the Motorola 6800 processor. page 32

p.46 If you have just bought a Radio Shack TRS-80 or a similar microcomputer, you may have asked "How can I use a standard television receiver as a video display unit?" Timothy Loos answers the question with high resolution results in his article Use Your Television Set as a Video Monitor. page 46

p.66 In Another Plotter to Toy With, Peter A Lucas describes a novel approach to building a homebrew plotter using an Etch-A-Sketch® unit, which is available in toy stores. page 66

p.70 Punched cards are still very much with us. For experimenters who want to make use of this venerable storage medium, Anthony Schaeffer describes a homebrew card reader in The Eclectic Card Reader. page 70

p.76 The Lear Siegler ADM-3A "dumb" terminal can provide terminal oriented systems with this essential component in a reasonably priced kit. Paul Franson describes his experiences while Assembling the ADM-3A from a kit. page 76

p.84 The development of a hobbyist robot arm capable of being controlled by a computer will open up a new area of control applications. The robot arms available on this level today are fairly small and weak. Keith Baxter and Timothy Daly describe their design for A Hobbyist Robot Arm. page 84

p.90 The stepping motor is an attractive device for personal computer applications because of its versatility and price. Paul Giacomo begins a 2 part Stepping Motor Primer in this issue. Part 1: Theory of Operation, gives the background on the device. The second part, in next month's BYTE, will cover interfacing to a computer. page 90

p.108 We recently presented a Fast Fourier Transform program (December 1978 BYTE) written in BASIC. (FFTs are used to analyze periodic signals such as music and speech for frequency content.) This month, Dick Lord's Fast Fourier for the 6800 describes a 6800 assembly language version that is approximately ten times faster than the BASIC version. page 108

p.120 Many personal computer owners use their systems to develop game programs, one of the most exciting and creative applications of this technology. There are probably as many ways to go about developing game programs as there are people implementing them. H L Stuck is one such implementer and he has several ideas about Approaching Game Program Design presented in his article in this issue. page 120

p.154 If your computer is currently running a programming language that allows only integer manipulation, do not despair. You can still have a lot of fun exploring real numbers. Jef Raskin describes how to perform Unlimited Precision Division using only an integer BASIC package. page 154

p.162 Part 2 of Build a Computer Controlled Security System for Your Home by Steve Ciarcia concentrates on software. With a bit of effort readers can implement this sophisticated system, which uses infrared beams and ultrasonics (among other techniques) to keep their homes secure. The 3 part series concludes next month. page 162

p.180 It can be very disconcerting to have an error appear in a long string of information being loaded from a tape. Usually this means that the entire operation must be started over again. Michael Wimble describes the Hamming Error Correcting Code to help reduce this problem. page 180

p.186 With the advent of inexpensive mass storage devices such as the floppy disk, the use of files is becoming more widespread in personal computing. Mark Klein begins a 2 part discussion of what files are and how to use them in Files on Parade, Part 1: Types of Files. page 186


Vol.4 n°3 march 1979

byte_1979_03.jpg

byte_1979_03_index.jpg

Foreground

p.66 THE STANDARD DATA ENCRYPTION ALGORITHM, Part 1: An Overview

[author Robert V Meushaw]

A detailed description of a "trap door" algorithm

p.94 DESIGNING WITH DOUBLE SIDED PRINTED CIRCUIT BOARDS

[author David Lamkins]

This do-it-yourself technique can save you space

p.114 DESIGNING A ROBOT FROM NATURE, Part 2: Constructing the Eye

[author Andrew Filo]

Design details of the robot's eye in the second of this 2 part article

p.142 A STEPPING MOTOR PRIMER, PART 2

[author Paul Giacomo]

Interfacing to your computer, and other considerations

p.150 BUILD A COMPUTER CONTROLLED SECURITY SYSTEM FOR YOUR HOME, Part 3

[author Steve Ciarcia]

Ultrasonics, infrared beams and other exotic ways to make your home secure

p.196 THE POWER OF THE HP-67 PROGRAMMABLE CALCULATOR, Part 1

[author Robert C Arp Jr]

Learn to use one of the most powerful programmables

Background

p.12 BUILDING THE HEATH H8 COMPUTER

[author Dr Paul R Poduska]

A review of a popular computer kit

p.14 A MAP OF THE TMS-9900 INSTRUCTION SPACE

[author Henry Melton]

Organizing one's approach to a machine with 215.95 legal instructions

p.32 FILES ON PARADE, Part 2: Using Files

[author Mark Klein]

File protection systems and sundry other matters

p.46 A MICROPROCESSOR FOR THE REVOLUTION: THE 6809, Part 3

[author Terry Ritter and Joel Boney]

Final thoughts about the successor to the Motorola 6800 processor

p.56 CRYPTOGRAPHY IN THE FIELD, Part 1: An Overview

[author John P Costas, Phd]

A brief historical look at cryptography

p.80 PREVIEW OF THE Z-8000

[author Ira Rampil]

A look at Zilog's new 16 bit processor

p.170 COMMON MISTAKES USING WARNIER-ORR DIAGRAMS

[author David Higgins]

Avoiding pitfalls when using this alternate flowcharting method

p.194 PASSWORD PROTECTION FOR YOUR COMPUTER

[author R Jordan Kreindler]

How to keep data and information "for your eyes only"

p.230 WHAT IS AN INTERRUPT?

[author R Travis Atkins]

Learn how to use peripherals efficiently with interrupts

p.238 HISTORY OF COMPUTERS: THE IBM 650

[author Keith S Reid-Green]

A glance at a past favorite

Nucleus

p.6 Don't Overlook LISP

p.10 Letters

p.26 Desk Top Wonder: Race Car for the SR-52

p.42 Book Review

p.53 Event Queue

p.92 Programming Quickie: Inverse Trig Functions

p.92 Machine Language Puzzler: Odd Tones

p.107 BYTE News

p.182 Technical Forum

p.206 Nybbles: Computer Assisted Flight Planning

p.222 Clubs and Newsletters

p.224 BYTE's Bits

p.241 What's New?

p.270 Unclassified Ads

p.272 BOMB

p.272 Reader Service

Cover Art: THROUGH THE TRAP DOOR

[author Robert Tinney]

In this BYTE

p.12 The Heath H8 is part of the family of Heath computer kits. Dr Paul R Poduska describes his experience of assembling this well-documented kit in Building the Heath H8 Computer. page 12

p.14 One way to see what the Texas Instruments TMS-9900 processor can do is to cover the instruction set using A Map of the TMS-9900 Instruction Space by Henry Melton as a guide. His short article gives a summary of the available operations plus details for all the possible operation codes of the machine. page 14

p.32 After setting up a computer system with the hardware and software to handle files, how do you use it? In part 2 of Files on Parade, Mark Klein describes file management and programming techniques using files. page 32

p.46 In A Microprocessor for the Revolution: The 6809, Part 3: Final Thoughts, 6809 architects Terry Ritter and Joel Boney of Motorola discuss clock speed, timing signals, condition codes and software design philosophy as they apply to the 6809. page 46

p.56 In Cryptography in the Field, Part 1, Dr J P Costas gives a brief history of the fascinating world of cryptography, to be concluded next month with a programmable calculator encryption and decryption program. page 56

p.66 Robert V Meushaw's article describes the workings of and some of the theory involved with The Standard Data Encryption Algorithm, one of a class of algorithms known as "trap door" algorithms. page 66

p.80 The Z-8000 is Zilog's new entry into the field of 16 bit processors. In addition to its impressive speed, the Z-8000 in conjunction with an outboard memory management device allows programmers to employ virtual memory techniques. Read about it in Ira Rampil's Preview of the Z-8000. page 80

p.94 If you'd like to double your pleasure and double your fun, try designing with two printed circuit board sides instead of one. David Lamkins shows you how to get more for your money in Designing with Double Sided Printed Circuit Boards. Perhaps that topology course you took might come in handy after all . page 94

p.114 Andrew Filo concludes his article Designing a Robot from Nature with an overall description of the system as well as construction details for building a net convexity detector, which mimics the frog's ability to detect insect flight patterns. page 114

p.142 This month Paul Giacomo concludes his 2 part Stepping Motor Primer with a look at interfacing the stepping motor to a computer as well as a discussion of damping, inertia and other related topics. page 142

p.150 This month Steve Ciarcia completes his 3 part article Build a Computer Controlled Security System for Your Home with a discussion of burglar alarms, intrusion detectors, and the rest of the circuitry you'll need to make your home secure. page 150

p.170 First time users of Warnier-Orr diagrams consistently have many questions about the correct usage of the technique. David A Higgins describes some conceptual errors and other Common Mistakes Using Warnier-Orr Diagrams. page 170

p.794 If many people have access to your computer, you may want to protect the information contained within it. One way is to implement Password Protection for Your Computer as described by R Jordan Kreindler. page 794

p.196 This month Robert C Arp Jr begins a 2 part article about The Power of the HP-67 Programmable Calculator. Part 1 is a review of the features and performance of this powerful desk top wonder. page 196

p.230 What Is an Interrupt? In brief, it is the act of safely stopping one process and causing your computer to start (resume) another process. For some background information on interrupt processing, see R Travis Atkins' tutorial in this issue. page 230

p.238 Keith S Reid-Green continues his History of Computers with a discussion of one of the early minicomputers, The IBM 650. page 238


Vol.4 n°4 april 1979

byte_1979_04.jpg

byte_1979_04_index.jpg

Foreground

p.10 THE TOY STORE BEGINS AT HOME.

[author Steve Ciarcia]

Build a challenging musical game in BASIC

p.26 SIMULATING PHYSICAL SYSTEMS. The Two-Dimensional Ideal Gas

[author Mark Zimmennann]

Experiment with physical models on your computer

p.46 SOURCES OF NUMERICAL ERROR

[author Daniel R Buskirk]

Learn how to control errors from rounding and truncating

p.84 MARSPORT: The Three-Dimensional Celestial Mechanics Simulation for the HP 67/97.

[author D D Hinrichs]

Pilot a spaceship to a soft landing on the Martian surface

p.110 STANDARD DATA ENCRYPTION ALGORITHM. Part 2: Implementing the Algorithm

[author R V Meushaw]

The Standard Data Encryption Algorithm on a KIM-1 computer. Part 2 of two parts.

p.132 QUEUING THEORY. Part 1: Queue Representation

[author Len Gorney]

Waiting lines are so important that an entire area of mathematics is devoted to their study

p.176 THE POWER OF THE HP-67 PROGRAMMABLE CALCULATOR, Part 2

[author Robert C Arp, Jr]

An example solution of simultaneous equations

Background

p.20 CROSS-POLLINATING THE APPLE II

[author Richard Campbell]

Add an Intel 8251 programmable communications interface

p.54 SMART MEMORY, Part 1

[author Randy C Smith]

The concept of associative ("smart") memory is discussed

p.66 A SIMULATED VIEW OF THE GALAXY

[author Mark Dahmke]

Viewing constellations from other parts of the galaxy, and related matters

p.144 CRYPTOGRAPHY IN THE FIELD. Part 2: Using the Pocket Calculator

[author John P Costas]

Using a pocket calculator to implement a field cipher

p.166 LIFE CAN BE EASY

[author Randy Soderstrom]

A simple implementation of Life

p.170 AN EASY WAY TO CALCULATE SINES AND COSINES

[author Robert Grappel]

Relative sine and cosine values in one byte

p.210 AN INTRODUCTION TO MICROPROGRAMMING

[author Ben E Cline]

The fundamental level of control

p.218 A DIGITAL ALPHANUMERIC DISPLAY

[author Daniel Chester]

A 7 segment display

p.224 MICROCOMPUTER TIMESHARING: A Review of the Techniques

[author Kenneth J Johnson]

Designing multiuser systems

p.236 A BINARY GUESSING GAME

[author Mark Zimmermann and James Blodgett]

Calculator pattern recognition

Nucleus

p.4 In This BYTE

p.6 Editorial: On the Importance of Backups

p.8 Letters

p.42 Book Reviews

p.50, 247 Technical Forum

p.53, 192, 201 BYTE's Bugs

p.64, 175, 221 BYTE's Bits

p.172 Desk Top Wonders: Digital Circuit Simulation

p.190 Nybbles: BASIC Cross•Reference Table Generator

p.193 BYTE News

p.202 Event Queue

p.204 Clubs and Newsletters

p.222 Programming Quickies: Label and File Program

p.238 Languages Forum

p.249 What's New?

p.278 Unclassified Ads

p.280 BOMB

p.280 Reader Service

In this BYTE

This month's cover painting by Robert Tinney is called "Infinite Regression" - an appropriate way to introduce you to several articles in this issue dealing with computer simulation.

The term "simulation" can have a bewildering variety of meanings; we have restricted ourselves herein to simulations of galaxy projections, digital circuits, celestial mechanics, and an ideal two-dimensional gas - all using your personal computer or programmable calculator.

p.10 By adding special controls to a micro· computer, a user can input special information or information in particular forms. The addition of four switches and four colored lights allows your computer to play a memory game such as the ones found in department stores. Steve Ciarcia tells how The Toy Store Begins at Home. page 10

p.20 There is more than one way to peel an Apple, or in this case to interface an Apple II. Richard Campbell gets to the core of the problem in Cross-Pollinating the Apple II. page 20

p.26 One fascinating use of a computer is performing experiments quickly and easily. The experimenter can define properties and change parameters in a program rather than having to rebuild equipment. Mark Zimmermann discusses Simulation of Physical Systems, specifically The TwoDimensional Ideal Gas. page 26

p.46 An important area of numerical calculations is the control of errors: rounding errors, truncation errors, and so on. Daniel R Buskirk has some comments on this very necessary study in Sources of Numerical Error. page 46

p.54 Wouldn't it be nice to have a type of memory in your computer that would answer questions such as, "Which of my employees are over 35 and make more than $20,OOO?" Such a memory is known as an associative memory. Randy Smith introduces us to the world of Smart Memory in part' of this 2 part series. page 54

p.66 Have you ever wondered what our galaxy looks like from one million light years away? Perhaps you want to study the formarion of the Andromeda galaxy or incorporate a known star cluster into a space war game. In either case you'll want to have A Simulated View of the Galaxy as discussed by Mark Dahmke. page 66

p.84 Delmer D Hinrichs presents a combination three-dimensional Mars lander and introduction to celestial mechanics in Marsport Here I Come: The ThreeDimensional Celestial Mechanics Simulation for the HP 67/97. page 84

p.110 The Standard Data Encryption Algorithm by Robert V Meushaw discusses its implementation on the basic KIM-1 system . A detailed description. of the algorithm and generalized flowcharts are also given . page 110

p.132 In everyday life we wait in lines before we can do particular things. The same happens with computers. The study of waiting, called Queuing Theory, and how computers handle the situation is discussed by Len Gorney. page 132

p.144 The pocket calculator can be used to encipher and decipher messages. John Costas provides us with working examples of Cryptography in the Field , Part 2 : Using the Pocket Calculator. page 144

p.166 Randy Soderstrom provides a quick and simple Life program for the 8080 in his article Life Can Be Easy . page 166

p.170 When working with trigonometric quantities, it is not always necessary to arrive at the precise value. Often a relationship between the desired value and the entire range of allowable values is sufficient. Robert Grappel discusses such an implementation in An Easy Way to Calculate Sines and Cosines. page 170

p.176 In The Power of the HP-67 Programmable Calculator, Part 2, Robert C Arp Jr concludes his discussion of the HP-67 with a practical applications program for solving simultaneous equations. page 176

p.210 The ability to microprogram a processor increases the power and usefulness of that processor to a particular user. Microprogramming allows one machine to appear as several different processors while using the same hardware. Ben E Cline gives us An Introduction to Microprogramming and shows how it can be used. page 210

p.218 Could you use a pocket-size alphanumeric terminal? One of the main problems with this type of device is the size of the video screen used for output. By using 7 segment displays, Daniel Chester has thought of a way to make A Digital Alphanumeric Display. page 218

p.224 Is it practical to use microcomputers for timesharing? In Microcomputer Timesharing, Kenneth J Johnson reviews some of the techniques developed for large computers with an eye toward utilizing them on a microcomputer. page 224

p.236 Artificial intelligence (AI) on a programmable calculator? Why not? A Binary Guessing Game shows you how. Authors Mark Zimmermann and James Blodgett describe a pattern recognition algorithm that tries to outguess the operator, often with remarkable success. page 236


Vol.4 n°5 may 1979

byte_1979_05.jpg

byte_1979_05_index.jpg

Foreground

p.10 COMPUTER GENERATED MAPS, Part 1

[author William D Johnston]

Maps help make the arrangement of numeric data meaningful

p.14 REPRESENTING THREE-DIMENSIONAL OBJECTS IN YOUR COMPUTER

[author Richard Blum]

Using a digitizer to input graphical data

p.32 COMMUNICATE ON A LIGHT BEAM

[author Steve Ciarcia]

Transmit digital Information over a beam of light

p.52 SINGLE CHIP VIDEO CONTROLLER

[author Bob Haas]

Controlling a video display with a single Integrated circuit

p.130 THE INTEL 8275 CRT CONTROLLER

[author Chris Tennant]

This controller device eases video display design

Background

p.50 THE SUPER8OARD II. A Surprising Single Board Computer From OSI

[author Chris Morgan]

This single board computer can be expanded to a full-scale system

p.104 6800 DISASSEMBLER

[author Bob Lentz]

Decipher your machine code programs

p.110 SPACEWAR IN TINY BASIC, Navigating Through Integer BASIC

[author David J Beard]

A space navigation application

p.150 SMART MEMORY, Part 2

[author Randy C Smith]

A black box approach to associative memory design

p.164 SIMULTANEOUS INPUT AND OUTPUT FOR YOUR 8080

[author W D Maurer]

A roundabout method of I/O

p.176 QUEUING THEORY, THE SCIENCE OF WAIT CONTROL Part 2: System Types

[author Len Gorney]

Looking at realistic situations

p.184 TRIGONOMETRY IN TWO EASY BLACK BOXES

[author John A Ball]

Calculate trigonometric functions using arithmetic operations

p.196 TIC-TAC-TOE: A PROGRAMMING EXERCISE

[author Delmer D Hinrichs]

How to approach a programming task

p.218 THE HOBBY UNWRAP

[author Ralph Stirling]

How to unwrap what was previously wrapped

p.233 A MINI DISASSEMBLER FOR THE 2650

[author Edward R Teja and Gary Gonnella]

A disassembler can save countless headaches

p.238 AIDS FOR HAND ASSEMBLING PROGRAMS

[author Erich A Pfeiffer]

A personal routine helps increase accuracy

Nucleus

p.6 Editorial: Don't Forget the Hardware...

p.8 Letters

p.30, 210 Technical Forum

p.117 BYTE News

p.124 Event Queue

p.128 Nybbles: TMS-9900 Monitor

p.174, 268 BYTE's Bits

p.182 Desktop Wonder: Digits

p.204 Clubs and Newsletters

p.205 BYTE's bug

p.206 Languages Forum

p.209 Machine Language Puzzler:An added attraction

p.220 Programming Quickies

p.226 Book Reviews

p.249 What's New?

p.286 Unclassified Ads

p.288 BOMB

p.288 Reader Service

Cover Art: BENEATH THE GRID

[author Robert Tinney]

In this BYTE

This issue's theme is provided by an article on various cartographic projections by William Johnston. To emphasize this theme of mapping terrain with computer models, Robert Tinney's painting "Beneath The Grid" shows a landscape with a superimposed grid of luminescent white lines as might be projected in the mind's eye by an appropriate graphic output device.

p.10 Microcomputers allow the quick and easy performance of operations that take an extemely long time to perform by hand. One of these operations is drawing maps from accumulated tables of data. William Johnston describes the simple programs used to produce Computer Generated Maps. page 10

p.14 A data tablet is a graphical input device that enables you to enter visual images into your computer. Richard Blum has a program for Representing Three·Dimensional Objects in Your Computer. page 14

p.32 If you need to communicate digital information from one point to another through an electrically noisy environment, then optical communications may be one solution. If you are going to communicate over long distances or at high speeds, then a laser may be the best choice for a light source. This month Steve Ciarcia explains how to Communicate on a light Beam. page 32

p.50 The people interested in just wetting their feet in the field of microcomputers are usually not looking for a very big system. A single board computer is often a good first experience. The Ohio Scientific Superboard II is one single board computer which has some interesting capabilities. Find out what Chris Morgan thinks about The Superboard II. page 50

p.52 Flexible video displays have been made possible by special display controllers. Bob Haas describes four devices from different manufacturers and tells how he used a specific video display controller in a successful construction project. You can learn more about these single integrated circuit marvels in Single Chip Video Controller. page 52

p.104 If you do not have documentation for a machine language program, it is almost impossible to determine how the program works. Bob Lentz describes a 6800 Disassembler that he wrote for his SwTPC 6800 system. page 104

p.110 Possession of an integer arithmetic language does not preclude the writing of intricate programs involving trigonometric functions. David J Beard describes how he used an integer BASIC to develop navigation routines for Spacewar in Tiny BASIC. page 110

p.130 The most prevalent form of output from a personal computer seems to be a video display. Therefore, the serious hobbyist should be aware of the number of different video display controllers that are available. Chris Tennant looked at the Intel 8275 video display controller and liked what he saw. In his article he describes a video interface using The Intel 8275 CRT Controller. page 130

p.150 In part 2 of Smart Memory, Randy Smith presents a series of black box diagrams to describe the workings of an associative memory. page 150

p.164 The "wraparound" queue can save you time during input and output operations on your computer. W D Maurer explains how the queue works and how to implement it on 8080 computer systems in Simultaneous In· put and Output for Your 8080. page 164

p.176 Last month Len Gorney described how to implement a queue on a computer. This month he talks about real life queues and how the science of Queuing Theory can be applied. page 176

p.184 The CORDIC algorithm is a venerable and efficient method for calculating trigonometric functions. John A Ball gives some practical suggestions to experimenters in Trigonometry in Two Easy Black Boxes. Find out how you can streamline your number crunching with CORDIC. page 184

p.196 Good programming techniques are vital in personal computing as well as in computing in general. Author Delmer D Hinrichs, using tic-tac-toe as an example, describes the strategies of the game programmer in Tic·Tac·Toe: A Programming Exercise. page 196

p.218 Ralph Stirling describes how to turn a motorized wire wrap tool into a motorized unwrapping tool in The Hobby Unwrap. page 218

p.233 For owners of Signetics 2650 based computer systems, Edward R Teja and Gary Gonnella have provided a useful disassembler program to help make sense of those hexadecimal machine language listings. Read A Mini-Disassembler for the 2650. page 233

p.238 If your microcomputer lacks an assembler or high level language, it will be necessary to hand assemble all of your programs. To do this quickly and accurately it is a good idea to develop a consistent routine . Erich Pfeiffer describes a useful technique in Aids for Hand Assembling Programs. page 238


Vol.4 n°6 june 1979

byte_1979_06.jpg

byte_1979_06_index.jpg

Foreground

p.10 A MODEL OF THE BRAIN FOR ROBOT CONTROL. Part 1: Defining Notation

[author James Albus]

Defining the mathematical notation for a model of the brain

p.49 MIND OVER MATTER: Add Biofeedback Input to Your Computer

[author Steve Ciarcia]

Use muscle signals to produce computer input

p.100 COMPUTER GENERATED MAPS, Part 2

[author William D Johnston]

A general purpose perspective projection program

p.132 THE NATURE OF ROBOTS. Part 1: Defining Behavior

[author William T Powers]

How can behavior of an organism be described?

p.176 DESIGNING A COMMAND LANGUAGE

[author G A Van den Bout]

Using theory of finite state machines to design input command language

Background

p.36 SIMPLE MAZE TRAVERSAL ALGORITHMS

[author Sandra and Stephen A Allen]

A contestant of the IEEE Micromouse Contest discusses maze running strategies

p.60 MORE COLORS FOR YOUR APPLE

[author Allen Watson III]

Any pair of complementary colors can be displayed

p.70 A HOME FOR YOUR COMPUTER

[author Joseph Dawes]

Increase the utility and enjoyability of your equipment with a carefully planned cabinet

p.74 TALK TO A TURTLE: Build a Computer Controlled Robot

[author James A Gupton Jr]

Use your computer to control a mobile "robot"

p.86 MY COMPUTER RUNS MAZES

[author David E Stanfield]

Using simple tree searches to reach a goal

p.146 The 1802 OP CODES

[author Henry Melton]

The instruction set of the RCA/Hughes 1802 microprocessor

p.148 THE HISTORY OF COMPUTING: THE IBM 7070

[author Keith S Reid-Green]

The IBM 7070 might have been the start of a new decimal, based computer family

p.152 ARTIFICIAL INTELLIGENCE AND ENTROPY

[author R M Kiehn]

Chemistry, artificial intelligence, and the second law of thermodynamics

p.156 BASIC TEXT EDITOR

[author Fred Ruckdeschel]

The right tool for the job is often a text editor in BASIC

p.166 BUBBLE MEMORIES A Short Tutorial

[author A I Halsema]

A nonvolatile, medium speed, data storage device

p.168 STACKS IN MICROPROCESSORS

[author T Radhakrishnan and M V Bhat]

Learn the ups and downs of stacks in your microprocessor

p.228 TIMESHARING: SQUEEZING THE MOST FROM YOUR MICRO

[author Sheldon Linker]

Microcomputers come of age with timesharing

p.234 THREE TYPES OF PSEUDORANDOM SEQUENCES

[author C Brian Honess]

Use of random numbers is more than just an everyday occurrence

Nucleus

p.6 Editorial: On Beginning a New Project

p.8 Letters

p.129 BYTE News

p.188 Technical Forum

p.194 Nybbles: The Great APL Contest

p.198 Book Reviews

p.206 Programming Quickies

p.213 Clubs and Newsletters

p.133, 214 BYTE's Bugs

p.218 Languages Forum

p.223 Event Queue

p.133, 225 BYTEs Bits

p.249 Whats New?

p.286 Unclassified Ads

p.288 BOMB

p.288 Reader Service

In this BYTE

This month's cover by Ken Lodding is called "The Turing Test," after the famous test defined by Alan Turing. It was Turing's contention that a computer could be judged as intelligent if a human questioner could not differentiate between a computer in one room and a human being in another. The basis for the cover painting is the Necker cube, an optical illusion where it is unclear which end of the cube is in front. The question here is: Is it the human or the computer circuit connected to the keyboard?

In this BYTE

p.10 Before discussing the design of A Model of the Brain for Robot Control, it is necessary to define the notation that will be used in the model. James Albus discusses the overall model objectives and the notation used to describe it, drawing on control systems theory. page 10

p.36 The IEEE Micromouse contest requires that a mechanical "mouse" find its way through a maze. The winner is the mouse that makes it through the maze in the least amount of time. Sandra and Stephen A Allen discuss some of the Simple Maze Traversal Algorithms they and Tony Rossetti used for the Micromouse contest. page 36

p.48 The types of input ava ilable for your computer are limited only by the imagin ation This month Steve Ciarcia uses Mind Over Matter to control his computer. Find out how to influence your computer using muscle power. page 48

p.60 Although the official documentation for the Apple II high resolution color graphics package states that the colors violet and green are the only colors besides black and white which may be obtained, adjustment of the television controls allows any pair of complementary colors to be displayed. It is also possible to obtain four colors and black and white with appropriate adjustments. Allen Watson III explains how in his article More Colors for Your Apple. page 60

p.70 If you enjoy taking your computer system to club meetings or other events, but don't look forward to the attendant wire fiddling and fuss, read A Home for Your Computer by Joseph Dawes. Now you can have a compact computer storage and travel case that doubles as a desk. page 70

p.74 One of the most interesting applications of your computer is the control of physical devices. Perhaps you've thought of having a robot-like device that your computer could control. James Gupton Jr describes the fun that he and two of his students had when they set out to do just that in Talk to a Turtle. page 74

p.86 It's not hard to put a bit of artificial intelligence into you r computer system. David Stanfield found a way to make his system search for "food" in a maze he set up. Find out how to do it in My Computer Runs Mazes. page 86

p.100 William D Johnston develops a general purpose program with the capability to generate a wide variety of more advanced perspective projections. He includes a functional program with great versatility, as well as a number of maps generated by that program. Mr Johnston shows how Computer Generated Maps can be used in satellite communications and many other practical applications. page 100

p.132 William T Powers has a control theory approach to the simulation of human behavior. However, before we can simulate human behavior in a robot, we must determine what behavior is. William Powers takes a look at behavioral actions as he explores The Nature of Robots. page 132

p.146 When hand-assembling a program it is useful to have a table summarizing the op codes for the processor. Henry Melton supplies us with a table for The 1802 Op Codes. page 146

p.148 Keith S Reid-Green continues his History of Computing discussion with a look at The IBM 7070, a second generation computer announced in 1959. page 148

p.152 Some scientists over the years have argued that a thinking machine can not be built because it would violate the second law of thermodynamics. In Artificial Intelligence and Entropy author R M Kiehn discusses some recently completed work in chemistry that refutes this claim and opens the door once more to the possibility of intelligence in machines. page 152

p.156 When performing a lot of manipulations with text it is necessary to have the ability to perform editing functions on the file that is being used. If you have a computer system that runs BASIC, you may find that Fred Ruckdeschel's BASIC Text Editor is a very handy tool. page 156

p.166 Bubble memories are a fairly new form of mass storage medium that is available to the general public. For a quick overview of Texas Instruments' bubble memory product, see A I Halsema's article Bubble Memories. page 166

p.168 What is a stack? What does LIFO mean? Stacks can be important tools for the computer programmer. Knowing what they are and how to use them will aid you in improving your programming skills. Find out how stacks stack up in T Radhakrishnan and M V Bhat's article, Stacks in Microprocessors. page 168

p.176 An input command language is often regarded as the least important part of a system. Therefore, some excellent systems are ignored due to the inconvenience encountered when trying to use them. Finite state machine theory is one solution to this problem. For an excellent introduction to the world of finite state machines read G A Van den Bout's artic le on Designing a Command Language. page 176

p.228 Have you ever considered using your computer system in a timesharing mode? To discover what is involved in setting up such a system. read Timesharing: Squeezing the Most from Your Micro by Sheldon Linker. page 228

p.234 Calculating randomness is a very deterministic proposition, especially when pseudorandom number sequences are used. C Brian Honess in his article on Three Types of Pseudorandom Sequences gives some necessary background information on random number calculations and statistical tests of randomness. page 234


Vol.4 n°7 july 1979

byte_1979_07.jpg

byte_1979_07_index.jpg

Foreground

p.18 GRAPHIC INPUT OF WEATHER DATA

[author Stephen P Smith]

Graphical data acquisition techniques

p.34 SOUND OFF

[author Steve Ciarcia]

Interfacing a computer to external Sound generation devices

p.54 A MODEL OF THE BRAIN FOR ROBOT CONTROL Part 2: A Neurological Model

[author James Albus]

A hierarchical network that can execute tasks and seek goals

p.120 SONIC ANEMOMETRY FOR THE HOBBYIST

[author Neil Dvorak]

Measuring wind speed and direction by electronic means

p.134 THE NATURE OF ROBOTS, Part 2: Simulated Control System

[author William T Powers]

Understanding closed loop control systems

p.176 QUEST

[author Roger Chaffee]

Will you find the treasure or will the giant find you first?

p.198 MOUSE, A Language for Microcomputers

[author Peter Grogono]

Simple language to demonstrate implementation processes

p.226 SUBROUTINE PARAMETERS

[author W D Maurer]

More ways than you ever dreamed possible to give your subroutines the data they need

Background

p.105 THE MATHEMATICS OF COMPUTER ART

[author Kurt Schmucker]

Plotting figures that express mathematical relationships

p.158 CREATIVITY IN COMPUTER MUSIC

[author Hubert S Howe Jr]

Effect of computer use on music composition and theory

p.194 PHOTO ESSAY: Physical Hardware of a New Computer Backplane

[author Carl T Helmers Jr]

The beginnings of a homebrew 6809 personal computer

Nucleus

p.6 Letters

p.8 Etorial, "Computers and Eclipses"

p.36,192 Programming Quickies

p.96 Event Queue

p.98,156 BYTE's Bugs

p.99 BYTE News

p.154 Clubs and Newetters

p.155 BYTE's Bits

p.174 Nybbles: Tiny Pascal in Assembly Language

p.193 World Power Systems: A Report

p.187 Book Reviews

p.222 Technical Forum

p.231 Languages Forum

p.233 What's New?

p.270 Unclastied Ads

p.272 BOMB, Reader Service

Cover Art: AUTOMATING ECLIPSES

[author Robert Tinney]

In this BYTE

Robert Tinney's cover painting, "Automating Eclipses", symbolizes this month's theme of computers and weather. See this month's theme articles by Stephen P Smith and Neil Dvorak, and the editorial by Carl Helmers.

p.18 When entering large amounts of graph associated data into a computer , a graphic tablet that allows you to digitize the data is a great help. Stephen P Smith uses such a device, the Summagraphics Bit Pad digitizer, to perform the Graphic Input of Weather Data. page 18

p.34 This month "Ciarcia's Circuit Cellar" explores the use and interfacing of Texas Instruments and General Instrument sound generators. Find out how you can let your computer Sound Off. page 34

p.54 In part 1 of A Model of the Brain for Robot Control, James Albus defined the notation we used for his brain model . This month he describes a neurological model that can store and recall a broad class of mathematical functions. page 54

p.105 Much computer art employs the calculating ability of the machine to make drawings expressing mathematical relationships. Kurt Schmucker defines two classes of such drawings and describes methods for producing them in The Mathematics of Computer Art. page 105

p.120 To forecast weather, you need to know wind speed and direction. By using modern technology, we can do without whirling mechanical assemblies. Neil Dvorak shows us how to use electronic components and computer programs to measure the wind in Sonic Anemometry for the Hobbyist. page 120

p.134 In part 2 of The Nature of Robots, William T Powers presents a BASIC simulation of a control system . By experimenting with this simulator, the reader is able to work with the concepts of a closed loop control system . page 134

p.158 Creativity in Computer Music by Hubert S Howe Jr is a survey of some recent work in music theory, analysis, sound generation, and composition done with computers. Microcomputers can now be used for much of the work formerly done by large scale computers a decade ago. page 158

p.176 After you have successfully hunted the Wumpus, and destroyed all the Klingons, what is your next step? Roger Chaffee suggests you try your hand in some caves, searching for hidden treasure. Enter the world of suspense and danger on your Quest for riches. page 176

p.194 Building a computer from scratch as an amateur is the historical root of the personal computer field. In this issue, Carl Helmers begins an informal series of articles on a new homebrew project: a general purpose 6809 system. The computer itself has an intended application to music, but the design and construction of this homebrew project are quite general. See Photo Essay: Physical Hardware of a New Computer Backplane. page 194

p.198 Mouse is a programming language that contains many features usually associated with high level programming languages and can be implemented with minimal resources. It is of interest to people who enjoy obtaining dramatic results with little effort and to those who have a system which is too small to support a conventional high level language. Peter Grogono describes the implementation of Mouse by means of a Pascal program which can be used to write an assembly language version. Indications of how this might be done are provided in Mouse: A Language for Microcomputers. page 198

p.226 When working with subroutines, the concept of passing parameters can be confusing. W D Maurer describes three methods of passing parameters (call by value and result, call by reference, and call by name) in his article Subroutine Parameters. page 226


Vol.4 n°8 august 1979

byte_1979_08.jpg

byte_1979_08_index.jpg

Foreground

p.50 ANYONE KNOW THE REAL TIME?

[author Steve Ciarcia]

Simple methods of telling time

p.66 MODEL OF THE BRAIN, Part 3: Comparison of Brain and Model

[author James Albus]

Does CM AC accurately represent human brain function?

p.94 NATURE OF ROBOTS, Part 3: A Closer Look at Human Behavior

[author William T Powers]

Simulating a 3-muscle system

p.132 THE DESIGN OF AN M6800 LISP INTERPRETER

[author S Tucker Taft]

The theory behind one implementation

p.206 LISP APPLICATIONS IN BOOLEAN LOGIC

[author Richard Weyhrauch and Henson Graves]

Perform Boolean logical operations with LISP

p.220 AN OVERVIEW OF LONG DIVISION

[author Geoffrey Gass]

Providing real answers to division problems

Background

p.10 AN OVERVIEW OF LISP

[author John Allen]

Developing a feel for LISP

p.18 LISP BASED SYSTEMS FOR EDUCATION

[author J Laubsch, G Fischer. and H D Bocker]

Using computers as learning tools

p.26 THE LAMBDINO STORAGE MANAGEMENT SYSTEM

[author G Prini and M Rudalics]

Data storage techniques represent major design considerations

p.34 PATTERN-DIRECTED INVOCATION LANGUAGES

[author William A Kornfeld]

A data base development tool

p.82 EXPLORING TRS-80 GRAPHICS

[author George H Yeager]

Machine language access to graphic display characters

p.162 A MATHEMATICIAN'S VIEW OF LISP

[author Vaughan R Pratt]

A look at LISP as a vehicle for expressing ideas

p.170 A PREVIEW OF THE MOTOROLA 68000

[author A I Halsema]

A look at another 16-bit processor

p.176 LISP BASED SYMBOLIC MATH SYSTEMS

[author David R Stoutemyer]

The computer as an algebraic manipulator

Nucleus

p.6 Letters

p.8 Editorial: Returning to the Tower of Babel or ...

p.62 LISP Notes

p.89 BYTE News

p.126 Technical Forum

p.194 BYTE's Bugs

p.196 Event Queue

p.200 Clubs and Newsletters

p.204 BYTE's Bits

p.212 Programming Quickies

p.218 Book Reviews

p.225 What's New?

p.263 Unclassified Ads

p.264 Reader Service, BOMB

Cover Art: New Worlds of LISP

[author Ken Lodding]

In this BYTE

About the Cover

This month, Ken Lodding has created a fantasy on far-out applications with a LISP theme. The surface of some asteroid has been discovered. A monolith engraved with the S-expression form of a LISP program is gazed upon by some astronauts. We presume some archeology of this monolith will have to be done to uncover the balance of the program. We leave it to readers familiar with LISP to identify the textbook from which these S-expression fragments were taken, and the purpose of the program.

p.10 LISP is often described as a special-purpose, listprocessing language. However, there is much more to the language than list manipulation. As an introduction to this language, guest editor John Allen provides An Overview of LISP. Page 10

p.18 In LISP Based Systems for Education, J Laubsch, G Fischer, and H D Boeker discuss the evolving computer culture and they argue that the basic concepts and approach to computation that LISP represents offers significant advantages within the contemporary educational framework. Page 18

p.26 The management of memory space is very important in any computer language. To the user of a LISP system, memory seems to magically appear out of the "ether" as needed . LISP systems contain a storage reclamation package that scavenges new storage from discarded computations. Authors Gianfranco Prini and Martin Rudalics describe the Lambdino Storage Management System. Page 26

p.34 William A Kornfeld shows an application of LISP ideas in the artificial intelligence domain. Pattern-Directed Invocation Languages are powerful tools for representing and manipulating facts in data bases. The implementation of these ideas involves 2 facets of LISP: the generalized record structures, called property lists; and the ability to store procedures as data structures. Page 34

p.50 The addition of a realtime clock to your computer system expands the dimensions you can explore. A real-time clock is also the basis of any multiprogramming system. Steve Ciarcia provides several different real-time clocks in Anyone Know the Real Time 7 Page 50

p.66 In parts 1 and 2 of A Model of the Brain for Robot Control, James Albus described a neurological brain model. Part 3 shows how this structure might be used to produce perceptual and cognitive phenomena. Page 66

p.82 The mystery of graphics on the Radio Shack TRS-80 is now dispelled. George H Yeager reveals the details in Exploring TRS-80 Graphics. Page 82

p.94 In the third part of The Nature of Robots, William T Powers describes the how and whys of his particular model of human behavior. Mr Powers develops a 2-level control-loop simulation of a 3-muscle system to further the understanding of how our own control system works. Page 94

p.132 Other articles this month discuss many of the applications for LISP. It is only fitting that S Tucker Taft discusses The Design of an M6800 LISP Interpreter. Page 132

p.162 Several LISP articles have centered on some of the unique features of LISP to aid solution of nontrivial problems. Mathematician and computer scientist Vaughan Pratt views languages from a more distant perspective. He shows that features found to be attractive in special cases are instances of general principles that a programming language must observe if generality and expressibility are not to be compromised. Vaughan Pratt gives us A Mathematician's View of LISP. Page 162

p.170 A I Halsema provides us with a quick description of the M68000 and some possible applications of the new processor in A Preview of the Motorola 68000. Page 170

p.176 Are you interested in working with symbolic mathematics? Perhaps you manipulate many algebraic formulae. David Stoutemyer discusses several LISP Based Symbolic Math Systems that help perform these functions. Page 176

p.206 The actions of digital circuits may be described by Boolean expressions. These expressions can be manipulated by a program to test for correctness, simplify the equation, and many other logical manipulations. Richard Weyhrauch and Henson Graves discuss some LISP Applications in Boolean Logic. Page 206

p.220 Most processors do not have division instructions. Therefore, if you wish to perform division, you will have to write your own. In An Overview of Long Division, Geoffrey Gass provides the background needed to write a division routine. Page 220


Vol.4 n°9 september 1979

byte_1979_09.jpg

byte_1979_09_index.jpg

Foreground

p.10 JOYSTICK INTERFACES

[author Steve Ciarcia]

An interface for every purpose

p.20 INTRODUCTION TO MULTIPROGRAMMING

[author Mark Dahmke]

Some basic concepts

p.34 INTERFACE A CHESSBOARD TO YOUR KIM-1

[author Jeff Teeters]

Play chess with a computer as easily as with a human opponent

p.70 A LOW-SPEED ANALOG-TO-DIGITAL CONVERTER

[author Richard C Hallgren]

Perform real-time data analysis

p.96 THE NATURE OF ROBOTS, Part 4

[author William T Powers]

A simple, human experiment

p.118 INEXPENSIVE, OPTICAL PAPER-TAPE READER

[author Brian A Harron]

A manual paper-tape reader with no moving parts

p.130 A MODEL OF THE BRAIN FOR ROBOT CONTROL, Part 4

[author James Albus]

Decision-making procedures

Background

p.62 SOME MUSINGS ON HARDWARE DESIGN

[author Clayton Ellis]

Simple design techniques

p.84 SOLDERING TECHNIQUES

[author William Trimmer]

A picture essay

p.160 HANDY PULSER

[author Bob Chrisp]

A simple, circuit-debugging tool

p.182 THE AMSAT-GOLEM-80

[author Joe Kasser]

A modular and inexpensive S-100 computer system

p.196 ADD SOME CONTROL TO YOUR COMPUTER

[author Ken Barbier]

Let your computer influence the outside world

Nucleus

p.6 Editorial: The Rationale of Yet Another Homebrew System

p.58, 126 Programming Quickies

p.61 Unclassified Ads

p.80 BYTE's Bits

p.82 Technical Forum

p.92 Clubs and Newsletters

p.115 BYTE News

p.122, 152 Book Reviews

p.150 Letters

p.164 Languages Forum

p.176 Event Queue

p.214 What's New?

p.256 Reader Service

p.256 BOMB

Cover Art: Fantasy on Homebrewing

[author Robert Tinney]

In this BYTE

About the Cover

On this issue's cover, Robert Tinney has created a "fantasy on homebrewing." In the middle of a sylvan glade, we see the form of a computer being sculpted by some homebrewer. A couple of humanoid forest denizens look on with wonder, perhaps hoping to get a glimpse of our homebrewer on his return to the work place.

p.10 Building a joystick interface for your computer system adds a new physical input dimension. There are as many different ways to interface a joystick as there are applications. Steve Ciarcia discusses several widely varying ways to design Joystick Interfaces. Page 10

p.20 The idea of having a microcomputer work in a multiprogramming environment is becoming a reality. Already there are several multiprogramming systems on the market. Mark Dahmke provides an Introduction to Multiprogramming so we can understand how these systems operate. Page 20

p.34 If you enjoy playing chess against your computer, but dislike typing in the moves in abstract notation, you will be interested in a method of allowing the computer to detect moves made on a real chessboard . Jeff Teeters devised such a method and now tells us how he did it in Interface a Chessboard to Your KIM-1. Page 34

p.62 Some Musings On Hardware Design by Clayton Ellis provides readers with background information on picking integrated circuits and using them in homebrew work. Page 62

p.70 Although there are many applications where a high-speed analog-to-digital converter is necessary, many conversion applications can make do with a slower conversion. Richard C Hallgren has built A Low-Speed Analog-toDigital Converter for the Apple II which he uses as a real-time data analyzer. Page 70

p.84 When constructing electronic equipment, it is imperative that good Soldering Techniques are developed. William Trimmer presents a photo essay of good soldering practices and several examples of unwanted techniques. Page 84

p.96 William T Powers brings his discussion of The Nature of Robots to a close by applying the previously-discussed techniques and theories in a simple experiment with a human subject. Page 96

p.118 The search for the inexpensive paper-tape reader continues as Brian A Harron describes an Inexpensive, Optical Paper-Tape Reader. Page 118

p.130 James Albus considers the mechanisms of choice in his closing article about A Model of the Brain for Robot Control. Page 130

p.160 A Handy Pulser can prove to be very useful when testing a digital circuit. Bob Chrisp shares with us his version of a useful pulse generator. Page 160

p.182 In The AMSAT-GOLEM-80, Joe Kasser shows how your computer club (or any other group of experimenters) can economically build an S-100 microcomputer. The system is modular and expandable. Page 182

p.196 Performing simple control functions with your computer can be easy. Ken Barbier describes how to Add Some Control to Your Computer. Page 196


Vol.4 n°10 october 1979

byte_1979_10.jpg

byte_1979_10_index.jpg

Foreground

p.22 TRACING YOUR OWN ROOTS

[author Stan W Merrill]

Genealogical research with a microcomputer

p.48 POWER HELPS ANALYZE ELECTRIC BILLS

[author Karen S Wolfe]

Determine power usage from appliance ratings

p.58 SELF-REFRESHING LED GRAPHICS DISPLAY

[author Steve Ciarcia]

Add a digital display to your computer system

p.124 INTERFACING THE S-100 BUS WITH THE INTEL 8255

[author David L Condra]

Design advice for the person starting out in hardware

p.140 THE XYZ PHENOMENON: Stereoscopic Plotting by Computer

[author William T Powers]

Three-dimensional simulation using optical devices and computer graphics

p.150 CURVE FITTING WITH YOUR COMPUTER

[author Fred R Ruckdeschel]

A simplified approach to nonlinear regression

p.196 SPACE GAME

[author Loring C White]

Develop your reflexes with this fast-moving game

p.200 EASY TO USE HASHING FUNCTION

[author Don Kinzer]

Random symbol distribution aids recall process

Background

p.76 PICKING UP THE PIECES

[author Alfre d S Baker]

Recovering from disk write errors

p.90 VARIABLES WHOSE VALUES ARE STRINGS

[author Dr W D Maurer]

String variables can be easy to use

p.100 IBM COMPATIBLE DISK DRIVES

[author Jefferson H Harman]

Floppy disk sectoring rules

p.113 THE TRS-80 SPEAKS

[author Tim Gargagliano and Kathryn Fons]

Discussion of a vocal output peripheral for the Radio Shack TRS-80

p.168 LOW-LEVEL PROGRAM OPTIMIZATION: Some Illustrative Cases

[author James Lewis]

How to decrease memory requirements and increase execution speed

p.186 SOME LAWS OF PERSONAL COMPUTING

[author Dr T G Lewis]

Some unnatural, natural laws

p.206 BUDGET BUILDING ON A BARE BOARD

[author Dan S Parker]

Building computer systems inexpensively

Nucleus

p.6 Editorial

p.16 Letters

p.70 Technical Forum

p.107 BYTE News

p.162 Event Queue

p.174 Languages Forum

p.192 BYTE's Bits

p.209 BYTE's Bugs

p.210 Clubs and Newsletters Directory

p.242 Book Reviews

p.246 Programming Quickies

p.249 What's New?

p.295 Unclassified Ads

p.296 Reader Service

p.296 BOMB

Cover Art: Genealogy

[author Tina Mion]

In this BYTE

About the Cover

This month's cover theme is provided by an article on using one's personal computer for personal genealogy tasks, "Genealogy" by Tina Mion. Taking off on this theme, autumn colors, and the day of the great pumpkin at the end of October, artist Tina Mion has created an autumnal tree with some ghostly leaves reflecting a his tory of science and technology.

p.22 Putting you in touch with yourself and improving family relationships are just two of the rewards of Tracing Your Own Roots. The microcomputer is a perfect companion in the search for ancestors. Stan W Merrill introduces some simple ways to compile your genealogy, and provides a BASIC program to involve your computer in the quest. Page 22

p.48 Since your computer is using precious (and often high priced) electricity, it seems only right that it should help analyze your electric bill. Karen S Wolfe has developed a program called Power, and tells us how Power Helps Analyze Electric Bills. Page 48

p.58 There are a variety of output devices which could be added to your computer system. One such device is an LED display. Steve Ciarcia discusses several methods of interfacing an LED display to a computer, and culminates his discussion with a Self-Refreshing LED Graphics Display. Page 58

p.76 Disks provide much more convenient storage than tape. When write errors occur, however, they can also be much more catastrophic. Alfred S Baker provides a brief description of the two main data file organizations used on floppy disks, and also describes a major problem that can occur when using one of them. Don"t give up hope. A program is provided which will aid you when Picking Up the Pieces. Page 76

p.90 At some time almost every programmer has wanted to write a program containing variables whose values are strings. Dr W Douglas Maurer explores two techniques for implementing this task in Variables Whose Values Are Strings. Page 90

p.100 Jefferson H Harman describes how IBM Compatible Disk Drives should perform. Not all manufacturers who say that they are IBM compatible mean fully compatible. Page 100

p.113 The talking computer is now within the grasp of personal computer users. Tim Gargagliano and Kathryn Fons discuss the Votrax voice synthesizer that is available for the Radio Shack TRS-80 in The TRS-80 Speaks: Using BASIC to Drive a Speech Synthesizer. Page 113

p.124 The Intel 8255 programmable peripheral interface is a large scale integration part that makes interface designing easy. David L Condra gives advice on the procedure and includes a design in Interfacing the S-100 Bus With the Intel 8255. Page 124

p.140 Using a principle invented years ago, simulated threedimensional graphics may be produced on a personal computer equipped with a plotter or similar device. William T Powers explains the method in The XYZ Phenomenon. Page 140

p.150 In Curve Fitting With Your Computer, Fred R Ruckdeschel describes a simplified method for obtaining a reasonably accurate equation as a "best fit" to a collection of data points. Page 150

p.168 When working with timecritical or memory-critical programs, optimization techniques are often employed. James Lewis discusses some of these in his article on Low-level Program Optimization: Some Illustrative Cases. Page 168

p.186 What is the "Conservation of Agony?" It is one of the rules of personal computing proposed by Dr T G Lewis in his thought provoking article, Some Laws of Personal Computing. Read it and find out why Dr Lewis suggests that "software should be shared, but hardware should be replicated." Page 186

p.196 Loring C White describes a real-time Space Game which requires you to maneuver a ship within gun sights and then destroy the enemy. Page 196

p.200 Hashing is a common method of handling lists, widely used in assemblers and compilers for handling the symbol table. In this issue Don Kinzer discusses an Easy to Use Hashing Function for the 6800 microprocessor. Page 200

p.206 Many companies are offering blank S-100 compatible computer boards. Dan S Parker describes the substantial savings that can be achieved by populating these boards and following some simple guidelines in Budget Building on a Bare Board. Page 206


Vol.4 n°11 november 1979

byte_1979_11.jpg

byte_1979_11_index.jpg

Foreground

p.26 SOLVING SOMA CUBE AND POLYOMINO PUZZLES

[author D Macdonald and Y Gürsel]

The serious application of computers to game problems

p.66 PROGRAMMING STRATEGIES IN THE GAME OF REVERSI

[author Peter B Maggs]

A tutorial on using the minimax theory in designing a game

p.104 A SPACECRAFT SIMULATOR

[author Gary Sivak]

A space-navigation game

p.113 THE NATIONAL MICROPASTIME

[author Joseph J Roehrig]

Simulating baseball games using actual statistics

p.152 WRITING ANIMATED COMPUTER GAMES

[author Tony Estep]

The essentials of producing animated video games

p.222 BUILD A SIMPLE DIGITAL OSCILLOSCOPE

[author Frank DeCaro]

Display waveforms with light-emitting diodes

Background

p.14 THE INTEL 8086

[author Steve Ciarcia]

Hands-on experience with a system design kit

p.84 ALPHA-BETA PRUNING

[author W D Maurer]

A programmers approach to simulating a chess game

p.98 INTERFACING THE PET TO A LINE PRINTER

[author P K Govind]

Connection through the PET user port plus a screen image-printing program

p.140 STACK IT UP

[author Charlton H Allen]

Use your microprocessors stack to your best advantage

p.172 FIVE USEFUL PROGRAMS FOR THE SC/MP

[author Charles A Kapps]

Utility programs

p.232 THE CHERRY PRO KEYBOARD

[author Dan S Parker]

A professional keyboard for the hobbyist

Nucleus

p.6 Editorial, Is Pseudoscience Done by Computers

p.12 Letters

p.56, 192 Programming Quickies

p.81 BYTE News

p.196 Technical Forum

p.220 Book Reviews

p.221 BYTE'S Bugs

p.228 Event Queue

p.236 Clubs and Newsletters

p.244 Desk Top Wonder

p.248 Languages Forum

p.249 What's New?

p.295 Unclassified Ads

p.296 Reader Service, BOMB

Cover Art: The Magic of Computers

[author Robert Tinney]

In this BYTE

About the Cover

The theme for this issue is "Fun and Games", using the personal computer to implement dynamic in teractive forms of enjoyment not otherwise possible. In the cover by Robert Tinney, entitled "The Magic of Computers", we find the essence of an ancient shell game applied with a desk top computer as the missing pea.

p.14 One of the quickest ways to gain experience with a processor is to actually program and interface to it . The Intel 8086 16-bit processor is now available for evaluation as the SDK-86 single board computer. Steve Ciarcia evaluates the SDK-86 board. Page 14

p.26 The solution of games such as Soma Cubes and polyominoes presents the computer programmer with a nontrivial problem. Although the method of solution may seem quite straightforward, the actual implementation may use up excessive amounts of memory or time. This was one problem facing Douglas Macdonald and Yekta Giirsel when they started Solving Soma Cube and Polyomino Puzzles Using a Microcomputer. Their final program is capable of solving many problems of this sort in reasonable lengths of time on an 8 K byte machine. Page 26

p.66 Peter B Maggs takes readers behind the scenes to show how a programmer can design a board-game program using minimax theory, a technqiue used to maximize one's chances of winning a game. Read Programming Strategies in the Game of Reversi, a tutorial article with broad applicability in the field of computer games. Page 66

p.84 Implementing the data structures needed to simulate a chess game is a task that the average programmer is quite capable of performing . However, developing an effective method of defining the respective priorities for all the possible moves is a cumbersome task whose solution has eluded many programmers . W D Maurer illustrates the use of the game-tree diagram in a method called Alpha-Beta Pruning, a technique that offers a possible solution to this problem. Page 84

p.98 Owners of Commodore PETs often wish to have hard-copy printouts of data appearing on their machine's video displays. P K Govind gives advice on how to obtain hard copy in Interfacing the PET to a Line Printer. Page 98

p.104 Escape all your earthly restrictions and go into orbit with A Spacecraft Simulator. Gary Sivak has put together a BASIC program to put your celestial flight skills to the test. Page 104

p.113 One type of popular computer-game activity is the simulation of sports events. If you have ever wondered if the best baseball team of today could beat the best team of some long-past season, you may now be able to get at least a theoretical answer. Joseph Roehrig developed a system that uses real statistical data to simulate the play of baseball games, and he now shares it with us in The National Micropastime. Page 113

p.140 Using stacks can help to simplify otherwise very complex programming problems. In Stack It Up, Charlton H Allen demonstrates a simple procedure for evaluating mathematical expressions that employ stack control . Page 140

p.152 Have your recent endeavors with your personal computer been all work and n o play? Tony Estep discusses some of the basic principles involved in Writing Animated Computer Games. The software was written for the SOL-20, but with minor modifications will run on any VDM-based 8080 computer. Page 152

p.172 Even if you own a minimum computer system, you can still do interesting things with it. Charles A Kapps gives Five Useful Programs for the SC/MP which are suitable for minimum systems . The routines can be converted to other systems, such as the COSMAC VIP and KIM. Page 172

p.222 Do you need a simple device to show logic signals compared to the system clock? Frank DeCaro can help you to Build a Simple Digital Oscilloscope. Page 222

p.232 Where most people are particular about the computer they buy, they don't think twice about the most frequently used component of a system: the keyboard. The Cherry PRO Keyboard is Dan S Parker's choice and he tells us why. Page 232


Vol.4 n°12 december 1979

byte_1979_12.jpg

byte_1979_12_index.jpg

Foreground

p.10 FREQUENCY ANALYSIS OF DATA USING A MICROCOMPUTER

[author F R Ruckdeschel]

Application of the Fast Fourier Transform (FFT)

p.36 ADD NONVOLATILE MEMORY TO YOUR COMPUTER

[author Steve Ciarcia]

Using electrically alterable read-only memory as a "read-mostly" memory

p.54 FASTER AUDIO PROCESSING WITH A MICROPROCESSOR

[author William J Dally]

Selected hardware circuits make possible higher-fidelity processing systems

p.120 ANALYSIS OF POLYNOMIAL FUNCTIONS WITH THE TI-59 CALCULATOR

[author Pierre Chance]

A hand-held approach to numerical analysis

p.134 MINIMIZING CURVE-PLOTTING CALCULATION

[author Timothy G Bowker]

Curve-plotting routine for the Hewlett-Packard 9825A computer

p.144 NONITERATIVE DIGITAL SOLUTION OF LINEAR TRANSFER FUNCTIONS

[author Bryan Finlay]

The analysis of the response of dynamic systems

Background

p.106 TEXT COMPRESSION

[author James L Peterson]

Decrease necessary storage space with Huffman codes

p.196 A USER'S LOOK AT TINY-C

[author Christopher O Kern]

Commentary on tiny-c

p.222 SOME NOTES ON MODULAR ASSEMBLY PROGRAMMING

[author James Lewis]

Modular programs aid design and implementation

p.241 TWENTY-FOUR WAYS TO WRITE A LOOP

[author W D Maurer]

Dr Maurer takes you through a loop

p.247 MORSE CODE TRAINER

[author Mark Bernstein]

Use your computer to train with Morse code recognition

p.250 THIRTY DAYS TO FASTER INPUT

[author Arthur Armstrong]

Improve your touch typing skills

Nucleus

p.6 Editorial, On the Importance of Casting Abstractions

p.78 Letters

p.82 Technical Forum

p.87 Programming Quickies

p.88 Languages Forum

p.100 BYTE's Bits

p.102, 210, 249 BYTE's Bugs

p.103 BYTE News

p.228 Event Queue

p.252 What's New?

p.287 Unclassified Ads

p.288 Reader Service, BOMB

Cover Art: Numerical Analysis

[author Robert Tinney]

In this BYTE

About the Cover

This month's cover features artist Robert Tinney's concrete realization of the theme for several articles in this issue: today's tools of analysis and design are computers, both as calculating-engines and as nontraditional symbol-manipulators. By implication, if Leibniz were alive today he would be employing a friendly desktop computer as a tool for examination of concepts ranging far beyond the calculus he helped shape.

p.10 The Fast Fourier Transform (FFT) is a unique algorithm that is necessary for the analysis and reproduction of signal waveforms. However, performing a complex mathematical derivation of the concept is not necessary. Fred Ruckdeschel has formulated a nonrigorous mathematical treatment of the FFT and demonstrates how it may be applied to synthesize a variety of waveforms in the Frequency Analysis of Data Using a Microcomputer. Page 10

p.36 Does data evaporate from your computer's volatile programmable memory when you turn the power off? Perhaps you could benefit from having some nonvolatile memory in your machine. Steve Ciarcia explores the useful properties of electrically alterable read-only memory as he tells how to Add Nonvolatile Memory to Your Computer. Page 36

p.54 After finding softwareintensive approaches to audio processing too slow for high fidelity sound, William J Dally set out to develop a system that uses hardware to speed up processing of audio signals. He explains his ideas in Faster Audio Processing with a Microprocessor. Page 54

p.106 Huffman code is a method for compressing text characters by exploiting their relative frequency of occurrence in text. Space savings of up to 50% can be realized using this technique. James Peterson discusses the advantages and tradeoffs involved in this and other types of Text Compression. Page 106

p.120 Numerical analysis techniques are quite often simplified by the use of powerful number handling algorithms available on large computer systems. A reasonable alternative to such analysis for the small-scale computer user lies in the utilization of the hand calculator. Small calculators continue to expand their capabilities as proven by Pierre Chance in his investigation of Analysis of Polynomial Functions with the Tl-59 Calculator. Page 120

p.134 Most methods of estimating a particular function and plotting it require an analysis involving calculus. Timothy Bowker has written a program that performs a simple trigonometric analysis of a function which will yield an accurate approximation of the function and then print the curve on a HewlettPackard 9872A plotter. See his article entitled Minimizing Curve-Plotting Calculation. Page 134

p.144 In the analysis of system response, the utility of the transfer function is immeasurable. The transfer function will convert a time domain relationship into a frequency domain relationship, a manipulation that can prove to simplify the solution process . Bryan Finlay presents a clear picture of the concepts involved in a Noniterative Digital Solution of Linear Transfer Functions. Page 144

p.196 The usefulness of microcomputers is increasing as more powerful and varied programming languages are implemented. Christnpher Kern provides A User's Look at Tiny-c, one of the more recent languages to appear. Page 196

p.222 Some Notes on Modular Assembly Programming presents several examples of well-written assembler programs. James Lewis feels that a structured approach to program writing helps both the design and implementation processes. Page 222

p.241 Many people use loops in computer programs without really thinking about how they work. In Twenty-four Ways to Write a Loop, W D Maurer illustrates the endless variety of program loops and shows you how to get the most out of them. Page 241

p.247 If you're interested in using your computer to learn Morse code, Mark Bernstein's Morse Code Trainer can help you to practice. His program translates plain text into Morse code and then outputs it through a speaker. Page 247

p.250 Does it take you ten minutes to enter twenty lines of code at your terminal? Are your index fingers worn out from hours of hunting and pecking? Why not use your own computer to learn the useful art of touch typing. Read Arthur Armstrong's article, Thirty Days To a Faster Input. Page 250