[editor : Carl T. Helmers Jr.] [publisher : Virginia Londoner (Virginia Londner), Gordon R Williamson] [art : Ellen Bingham, Wai Chiu Li, Christine Dixon, Nancy Estle] [cover : Ken Lodding] [nota bene : Some missing pages in archive.org. Full version in vintageapple.org] #Magazine
#Abstract
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?"
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 article on Designing a Command Language. page 176
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
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
[author : Carl Helmers] #Edito
Extract : « This week, I began a new project. It is one which could be begun by many of our readers, that of building a new computer system. In photo 1 we see what my last project turned into after four years of effort at various levels: a 6800 processor with some 28 K of programmable memory, sockets for 8 K of 2708 read only memory, a Sykes 9000 series floppy disk subsystem, a tape subsystem, and communications via parallel ports to two other computers: an Altair and my ALF Products AD-8 music synthesizer. As can be seen by the photo, this system is a packaging nightmare. [...] »
Defining the mathematical notation for a model of the brain
[author : James Albus] #Mathematics #ArtificialIntelligence #Book
Extract : « In order to build a computer model of the brain for robot control we must start with a clear understanding of what the brain is for (ie: its primary function). If one examines what most brains do all of the time, and what our own brains do most of the time, it is clear that the brain is not used primarily for thinking.
The brain is first and foremost a control system. All brains, even that of the tiniest insect, control behavior. Some brains can produce very complex behavior, but only the most sophisticated and highly developed brains exhibit the phenomenon of thought. Clearly then, thought is not the central purpose of the brain, but is, rather, an artifact that arises out of the complex computing mechanisms required to generate and control extremely sophisticated behavior.
This implies that would-be brain modelers should first attempt to understand, and if possible, reproduce the control functions and behavior patterns that exist in insects, birds, mammals, and, in particular, primates. Only after these control systems are success- fully modeled can we expect to understand the mechanisms that give rise to intelligence and abstract thought in the human brain. [...] »
Use muscle signals to produce computer input
[author : Steve Ciarcia] #Interface #Electronic #Listing #BASIC #DataAcquisition #HealthCare
Extract : « I wouldn't want you to get the wrong idea from photo 1. I haven't given up computers and taken up telling fortunes. Just consider the photo as a slightly dramatized introduction to a topic we've all heard of, but know so little about: biofeedback. In layman's terms, this simply means having the capability to monitor (in this case electronically) physiological processes.
There are a variety of devices on the market referred to as brain wave monitors. Brain waves are but one of the many sources of energy categorized under biofeedback. Their common relationship is that they are all electrical pulses which run through the body as a result of brain or muscle activity. Nerves and muscles within the body generate electricity by electrochemical action similar to that in a battery.
When we want to lift an arm, the brain sends an electrical pulse to the muscles in the arm. Proper magnitude and duration of the signal result in coordinated activity. The actual energy that is transmitted from the brain is very small: on the order of a few hundred microvolts at the most. The most familiar of these signals is the voltage generated by the pumping of the heart. A graph of this voltage versus time is called an electrocardiogram (abbreviated EKG or ECG). An EKG looks like a spiked waveform, with periodic response equivalent to a heartbeat. Many individual muscle contractions contribute to a frequency spectrum of 0.1 to 100 Hz, with an amplitude of about 5 mV. [...] »
A general purpose perspective projection program
[author : William D Johnston] #Listing #BASIC #Cartography
Extract : « In part 1 (May 1979 BYTE, page 10) we discussed the fundamental techniques involved in the production of computer generated maps and how to apply those techniques to some common map projections. We also presented several simple programs in BASIC which could be easily implemented in your own system to create maps for a variety of purposes. Nevertheless, these simple programs do have their limitations. In this installment we will develop a map projection program which is only slightly more complex, but far more versatile in what it can accomplish.
One of the most interesting projections mentioned in part 1 was the perspective projection, whereby the Earth is shown exactly as it appears to an observer at some specified height above the surface. Several perspective projections were illustrated, but all of these were simplified examples where the observer (or point of projection) was at infinity. It would be much more useful to have a program which would generate maps of the Earth as it appears from any chosen altitude and over any desired location. Such a program would give enormous flexibility to displays for space war games and other such practical applications as creating map overlays for weather satellite photographs.
Although details of a program to produce this type of projection were not discussed, the reader was encouraged to investigate the subject of perspective (or projective) geometry to see how the task could be accomplished. By this time many of you have, no doubt, learned that the solution is really quite simple. [...] »
How can behavior of an organism be described?
[author : William T Powers] #HowItWorks #Listing #BASIC #Robotics
Extract : « A scientific revolution is just around the corner, and anyone with a personal computer can participate in it. The last time this happened, 250 years ago, the equipment was the homebrew telescope and the subject was astronomy. Now, astronomy belongs just as much to amateurs as to professionals. This time the particular subject matter is human nature and in a broader scope, the nature of all living systems. Some ancient and thoroughly accepted principles are going to be overturned, and the whole direction of scientific investigation of life processes will change.
The key concept behind this revolution is control theory. Control theory has been developing for almost 40 years, and has already been proposed (by Norbert Wiener) as a revolutionary concept. It has not been easy, however, to see just how control theory can be made part of existing scientific approaches although many people have tried. Most of these attempts have tried to wedge control theory into existing patterns of thought. To apply any new idea in such a way, while ignoring the new conceptual scheme made possible, is to deny the full potential of the new idea.
Many life scientists who have tried to use control theory have tried to imitate the engineering approach, dealing with human beings as part of a man-machine system instead of complete control systems in their own right. Others have used control theory directly to make models of human and animal behavior, but have concentrated on minor subsystems, failing to see that the organism as a whole can be dealt with in terms of the same principles. The result has often been a strange mixture of concepts — a patchwork instead of a system. [...] »
Using theory of finite state machines to design input command language
[author : G A Van den Bout] #Algorithm #Listing #Lex #Programming #Book
Extract : « Nearly every system, whether it is composed of ten lines of code or ten thousand lines of code, will perform three distinct functions. It will receive input from the user, it will process this input and it will output the results. Of these three functions, the one which undoubtedly receives the least attention from the system designer is the communication from the user of the system to the system itself.
Hours and hours may be spent perfecting a processing algorithm and computing field lengths so that the resulting output can be instantly understood, yet due to the lack of consideration put into the input stage of the system, the user may be forced to plow through a series of questions and answers directed to him by the system. This is a situation which would try the patience of even the most tolerant person. Sometimes a situation even worse than this series of questions may be caused by the designer who is very familiar with the system. In an effort to save time and memory space, the designer may decide to reduce or even entirely omit any prompting by the program. This leaves the decision of what information must be entered to the intuition of the user, or to a system manual which will probably not be around when it is needed.
A good solution to the problem would be a well designed command language which would allow the user to supply all of the information which is needed by the program at one time, in a single command. Then, if any of the required data has not been entered, the computer can prompt the user for the remaining items. [...] »
A contestant of the IEEE Micromouse Contest discusses maze running strategies
[author : Sandra and Stephen A Allen] #Algorithm #Robotics
Extract : « This article is a discussion of some solutions to the problem of traversing a maze. The algorithms here represent neither an exhaustive nor a high-powered study of the problem, but rather an intuitive approach. The ideas reflect our thought processes and those of Tony Rossetti in our efforts to compete in IEEE Spectrum magazine's ongoing Micromouse contest.
Problem Specification
The IEEE Spectrum's Micromouse Maze contest began time trials last June at the 1978 National Computer Conference in Anaheim CA. A mechanical "mouse" (ie: robot) must find its way under its own power from the entrance of a maze to the exit. Each mouse is given three tries through the maze, with a time limit on each attempt. The mouse with the shortest logged time wins the contest. The solution to the problem, then, is to find the path through the maze that yields the shortest time.
An important consideration in finding a solution is the characteristics of the maze. The corridors are of uniform width. There are only five types of intersections: right angle; left angle; T; U turn; and mousetrap. These are shown in figure 1. There are no cross-intersections, nor are there any king's chambers, which are large vacant areas in the maze. This simplifies the traversal algorithms somewhat. Finally, there are exactly one entrance and one exit on the perimeter of the maze, but not necessarily on opposite sides.
Characteristics of the mouse should also be taken into consideration. It must be completely self-contained, having an on board computer and any required memory. Since the mouse must carry its own battery, available power is a limiting factor. [...] »
Any pair of complementary colors can be displayed
[author : Allen Watson III] #Graphics #Listing #BASIC #Book
Extract : «
The sales literature for the Apple II lists
the specifications for the high resolution
color graphics mode this way:
• 280 horizontal by 192 vertical resolution.
• Four colors: black, white, violet, and green.
• Displays 8 K bytes.
The specifications don't sound all that exciting. The resolution seems about right, but why are there so few colors? And why did they pick green and violet instead of, say, red and blue? Well, as it happens, the colors in the Apple II high resolution graphics can be red and green, or blue and yellow, or almost any two complementary colors you want. What's more, on many color television sets you can obtain as many as four colors along with black and white, as demonstrated by the accompanying photograph.
The classic approach to computer generated color is to generate separate signals for the red, green, and blue inputs of a color monitor. However, color monitors are expensive; it's more economical to use an ordinary color television set. Now instead of generating three simultaneous video signals, we have to generate a composite signal that resembles the standard broadcast signal the television set was designed to receive.
It's not merely that the signal has to be put onto a regular television channel by means of a radio frequency modulator; although that's certainly necessary, there's a lot more to it. Since all the fascinating features of the Apple II high resolution color graphics are the results of the way the Apple II designers solved this problem, let's take a look at just what they did. [...] »
Increase the utility and enjoyability of your equipment with a carefully planned cabinet
[author : Joseph Dawes] #Build
Extract : « If you're good at woodworking, here's a project that will save you a lot of time and trouble: build a cabinet for your computer! A carefully planned cabinet, as any ham or hi fi buff knows, serves to increase the utility and enjoyability of the equipment inside it.
I started planning my computer system cabinet as soon as I scattered my components around the cabinet I had made for my amateur radio gear. First of all, the cassette unit had to be fastened down: I quickly tired of holding it in place with one hand while unplugging something or changing a cassette. The power supply was constantly running warm and I knew it should be on stilts to increase heat loss. My separate video monitor could have ended up either beside the processor-keyboard cabinet or on top of it, but I quickly decided to reserve the top of the processor cabinet for a desk. The monitor would be beside the processor but angled toward the operating position for improved visibility. The keyboard had to be at a comfortable typing height, somewhere from 28 to 30 inches from the floor. [...] »
Use your computer to control a mobile "robot"
[author : James A Gupton Jr] #Electronic #Build #Robotics
Extract : « What do personal computer experimenters do with their microcomputers when computer games lose their appeal and they tire of programming things like, "140 FOR X = 1 to 500: PRINT X: NEXT X " ? The exciting idea of adding a computer controlled robot suggests building your own R2-D2 robot from Star Wars. It might not be wise to start with a project as sophisticated as duplicating R2-D2, but there is a way you can begin a robot project on a smaller scale. It works, too!
The Terrapin Turtle is a fascinating robot project that most experimenters can fully assemble in four hours. It runs forward, backward, turns left or right, blinks light emitting diode eyes, and can talk in a two tone beep. Its shell is mounted on a spindle that engages one of four microswitches. These relay a signal back to the computer over its 10 foot umbilical cord, indicating when the Turtle has run into something from either front, right, left, or rear side. If you direct the Turtle on an exploratory trip around the room, its journey can be recorded by your microcomputer. On completing its journey, the Turtle can actually draw a map of its path using an internal ball point pen. The Terrapin Turtle illustrated in this article was assembled by high school students at the Union County Career Center in North Carolina. The total assembly time was four hours from start to initial test. This article is not intended for use as a construction project, but rather to introduce you to computer controlled robots. [...] »
Using simple tree searches to reach a goal
[author : David E Stanfield] #Algorithm #Listing #Assembly
Extract : « Few people have ever had the experience of attempting to trace their way through a real maze, so I'm going to ask you to settle back and allow your imagination plenty of freedom.
The absolute darkness surrounding you is barely broken by the candle you carry in your hand. You see enough to know that you are in a featureless corridor, but how far it extends, you can only guess. Somewhere within this maze is a massive gold plate. If you can find this plate, it will become yours and you will be removed to safety.
You are allowed to leave any kind of signs you wish to mark your trail. You know that any corridor you are in will eventually come to a dead end, but it may have any number of similar corridors branching off it. The overall dimensions of the maze are such that the average person could explore it in its entirety before becoming exhausted, if he or she didn't waste a lot of time and energy going in circles.
What follows is the story of how I created a program that would allow my computer to run through mazes similar to the one I've just described. I've included a general description of how the program operates, instructions for using it, and a complete listing of the program.
I regret that I am unable to give you a motion picture of this program in operation. The best I can do is to explain that I first create a maze as simple or complex as I wish on the screen of my video display. I have the cursor operating in its optional nonblinking mode and it therefore appears to be a solid rectangle. As soon as I turn control over to the program, it begins to maneuver the cursor in and out of the various pathways of the maze. The cursor will dodge up and down, back and forth until it eventually finds its goal. The sight of this mad little cursor zooming around the walls of the maze is absolutely fascinating.
Even if you don't intend to get this program up and running, I invite you to come along and explore some areas I found to be quite interesting. [...] »
The instruction set of the RCA/Hughes 1802 microprocessor
[author : Henry Melton] #Microprocessor #Programming
Extract : « The RCA/Hughes 1802 is an 8 bit microprocessor with a small but growing following. Its ease of interface and low CMOS power requirements make it attractive for many small applications. The accompanying chart of op codes for the 1802 illustrates all of the 255 variations. I have used the RCA mnemonics. [...] »
The IBM 7070 might have been the start of a new decimal, based computer family
[author : Keith S Reid-Green] #History #Computer
Extract : « The second computer generation is said to have begun with the advent of the transistor. An equally important advance was the realization that most programmers would soon be programming not in symbolic machine language but in machine independent high level languages. This led hardware designers to build instructions that simplified compiling of programs, such as editing, table lookup and string scanning instructions. Some of these instructions are found in the IBM 7070, announced in 1959.
The 7070, like the 650, was built around a 10 digit signed decimal word. Signs and digits were stored in a two-out-of-five code; five bits were used to represent a digit, of which exactly two were "on". The five bits were assigned values of 0,1,2,3 and 6, so a little fudging had to be followed in order to represent 0. Since 3 can be represented two ways, 0-3 or 1-2, the former was used as the value for 3 and the latter for 0. Alphabetic characters were represented by digit pairs; hence, only five letters could be stored in a word. To distinguish between alphabetic and numeric representation, three signs were allowed: + , — , and @, represented by the codes for 9, 6, and 3, respectively. [...] »
Chemistry, artificial intelligence, and the second law of thermodynamics
[author : R M Kiehn] #ArtificialIntelligence #Book
Extract : « Although this article is written with a sense of science fiction creativity and speculation, the concepts involved are based on sound ideas that recently won for Ilya Prigogine the 1977 Nobel prize (see reference 1). No longer can it be said that the laws of thermodynamics prohibit the creation of artificial intelligence.
Computer intelligence has long been a hazy dream in many enthusiasts' eyes, but so often that gleam has been glazed over by a rational response from the scientific community: "You can get out of any computer only what you put in. The computer, after all, has to be told what to do. It can't think."
These valid scientific arguments are based, essentially, on the laws of thermodynamics, especially the second law, concerning entropy. The second law says in effect that for all (isolated) systems at or near equilibrium, any process will have a tendency to increase the system's entropy.
Shannon has developed the idea that entropy is related to the inverse of information (see reference 2); so as entropy goes up, information goes down. The second law of thermodynamics seems to demand that this decrease in information shall always happen for mechanical or electrical machines.
The conclusion that machines will never be capable of thinking seems irrefutable. [...] »
The right tool for the job is often a text editor in BASIC
[author : Fred Ruckdeschel] #Listing #BASIC #DataEntry #Office
Extract : « Like many an individual who uses computers at work and for personal purposes, I have a tendency to write. At work, this tendency is expressed in the usual ways as memos, project oriented documentation and more general papers. In personal life, this tendency is expressed by the existence of this article and several others which preceded it.
After some considerable chicken scratching it became apparent that my method for collecting ideas and creating a final manuscript was not optimum. The problem became clearly defined when one day I looked up from my note pad only to see my IMSAI arrogantly sleeping while I worked.
The literary approach I had been using was reasonably conventional. First in the procedure was the generation of an outline which contained ideas organized by section. Then a handwritten rough draft was composed in which these thoughts were structured within each section and expanded upon. The draft was then reviewed and changes made until legibility was threatened. If the writing had been for "work" the next step would have been to have the draft retyped. However, as writing for microcomputer journals is a private pursuit, a paid typist is used sparingly. [...] »
A nonvolatile, medium speed, data storage device
[author : A I Halsema] #Memory
Extract : « In the first quarter of 1977 Texas Instruments announced the availability of a 92,000 bit magnetic bubble memory, making bubble memories a commercial reality ten years after the effect was discovered at Bell Laboratories. The bubble memory provides nonvolatile, medium speed data storage at a price close to that of the floppy disk, but without either moving parts or the problems of reliability that moving parts entail. Future memories will provide storage densities of up to one million bits per chip and faster data rates, as the technology matures. [...] »
Learn the ups and downs of stacks in your microprocessor
[author : T Radhakrishnan and M V Bhat] #HowItWorks #DataStructure #Programming #Book
Extract : «
The stack or the "last in first out"
(LIFO) data structure has become an essential
tool in computer systems. There are
two major operations associated with this
data structure:
PUSH: places a new data item on
top of the existing ones in the stack.
POP: removes the topmost element
of the stack for succeeding operations.
A spring loaded plate holder in a cafeteria is a good example of a "stack," since addition and removal of items occur at the same end in a last in first out sequence (see figure 1)
When the capacity of a stack is "n" items, then n+1 consecutive PUSH operations will cause the stack to overflow. Similarly, popping an empty stack creates an underflow. Even though stack underflow may not occur intentionally, programmers should account for this condition. Stack overflow is more probable when the stack capacity is not large enough to accommodate all the occurring conditions simultaneously.
Stack size is one of the major design parameters in processor architecture. [...] »
Microcomputers come of age with timesharing
[author : Sheldon Linker] #OperatingSystem #HowItWorks
Extract : « Although one normally thinks of timesharing as only working on large computer systems, it is possible to run even on small systems. Many of the newer large scale timesharing systems use virtual memory and swapping, which is not possible or practical on smaller machines. Virtual memory requires mapping hardware (a machine with interruptable instructions, such as an IBM 370). Swapping requires a reasonably fast disk, which will cost at least $2000. What we are left with is an in core system that keeps everything running in real memory at all times. [...] »
Use of random numbers is more than just an everyday occurrence
[author : C Brian Honess] #Listing #BASIC #Mathematics
Extract : « Random numbers are extensively used in virtually all areas of data processing, from the simplest games for a hobby microprocessor, up to the most complex business and scientific applications. Deterministic games programmed without the benefit of some random parameter soon become boring and easy to "beat," so it would seem that random number generation and testing should be of interest to even the neophyte programmer or computer hacker when trying to get a simple game up and running. Random numbers are used extensively in various business applications. For example, random numbers would be used by an auditor faced with a large number of transactions to audit, and using a sampling technique to only look at a certain percentage of representative transactions. The number of checkout stations at your local discount department store may have been determined by using a mathematical model of the store, wherein the arrival and departure of "customers" was simulated using random numbers. Market research makes extensive use of random numbers, in selecting the people, streets, blocks, households, etc, to interview or to mail questionnaires. A mathematical model can also be "built" of an element, molecule or compound, and a particle introduced at random and collisions counted. Suppose further that you had a photograph of some obscure planet, covered in an extremely irregular way with areas you assumed to be water. You could divide the photograph into small squares, or maybe overlay with a piece of graph paper, and then "take shots" at the grid with a random number generator, wherein the random number would determine the coordinates of the "shot" and you could then tally the number of "hits" and "misses" and thereby determine the number of hits out of the total number of shots, and get an approximation of the percentage of the surface covered by water. [...] »
#Book
Extract : « The BASIC Handbook: An Encyclopedia of the BASIC Computer Language by David A Lien CompuSoft Publishing, San Diego CA, 1978 360 pages, paperback $14.95 [...]
Structured Programming and Problem-Solving with Pascal by Richard B Kieburtz Prentice-Hall, Englewood Cliffs NJ 1978 365 pages paperback $10.95 [...]
Revolution in Miniature by Ernest Braun and Stuart MacDonald Cambridge University Press, 1978 231 pages hardcover $16.95 [...]
How to Program Microcomputers by William Barden Jr Howard W Sams and Co, Indianapolis 1977 256 pages paperback $8.95 [...] »
#Association