[editor : Carl T. Helmers Jr.] [publisher : Virginia Londoner (Virginia Londner), Gordon R Williamson] [art : Stephen Kruse, Wai Chiu Li, Dorothy Shamonsky, Ellen Shamonsky] [cover : Robert Tinney] #Magazine
#Abstract
The advent of the personal computer has made possible the calculation of the fast Fourier transform (FFT) on the small system. Applications of this powerful design tool include speech and music analysis as well as circuit design and development. Read Fast Fourier Transforms on Your Home Computer by William D Stanley and Steven J Peterson. page 14
Quite often a software approach to a problem is easier to implement than a hardware approach to the same problem. Tom Munnecke describes the software used in Designing a Universal Turing Machine and compares it to a comparable hardware approach. page 26
Steve Ciarcia describes a simple but useful addition to your computer in Build an Octal/Hexadecimal Output Display. This circuit can help you to convert from octal to hexadecimal (and vice versa) or give you the status of a byte during program execution. page 32
Our cover theme this month (painted by Robert Tinney) is the game of Life. In Life with Your Computer, Justin Milliun, Judy Reardon and Peter Smart give a starting point for developing your own version of this exciting game. page 45
Researchers probing cellular automata have used Conway's game of Life as a tool in creating a collection of strange and exciting patterns. In David Buckingham's article Some Facts of Life we find a description of discoveries made since the original flurry of activity several years ago. page 54
One-Dimensional Life is an intriguing variant on John Conway's famous game. Out of this restricted format comes a surprising variety of familiar Life figures such as the flip flop and glider. Dr Jonathan K Millen leads us down the Life line in One-Dimensional Life. page 68
The same folks who brought you Chess 4.6 now bring you a new, improved version, Chess 4.7 . Read the story of the epic battle of the mighty computer and the tenacious, clever human chess master in an article by J R Douglas, Chess 4.7 versus David Levy. page 84
In many microcomputer applications it is desirable to have a cheap method for printing numerical data. Robert H Astmann describes a way to interface a Texas lnstruments 5050M printing calculator to an 8080A based computer in Interface Your Computer to a Printing Calculator. page 94
When building a computer system it is frequently advisable to have your most often used basic routines stored in read only memory so that they will always be readily available. To make the best use of read only memory, the experimenter should be able to program his own. G H Gable describes one system for programming read only memory in his article, Zapper: A Computer Driven EROM Programmer. page 100
Are you having trouble affording enough hardware to support a high level language such as BASIC? Are you finding it difficult to program in your machine's assembler language? If your answer to either of those questions is "yes," then what you're looking for is An Easy Programming System. In this article, Joe Weisbecker gives an introduction to hexadecimal interpretive programming, an alternative to high level languages and assemblers alike. page 108
Computer aided instruction is an excellent microcomputer application. To perform this function correctly, it helps to have a programming language designed for the purpose. Prof George A Gerhold describes some of the features such a language should possess in Teaching with a Microcomputer. page 124
If you have a need for multiplication and division circuits and don't want to worry about timing diagrams, read Mike Weed's discussion of some Clockless Multiplication and Division Circuits you can work with. page 128
This month we present the second half of Chess 0.5 in the series Creating a Chess Player by Peter W Frey and Larry R Atkin. The program was written by Larry Atkin, who is coauthor with David Slate of the world championship computer chess program, Chess 4.6. The program is written in Pascal and is readily adaptable to personal computers having Pascal systems such as the UCSD Pascal project software. page 140
To get the most out of your floppy disk units, you should know how to handle the data that will be stored on them efficiently. A I Halsema introduces us to the concept of Partitioned Data Sets and briefly describes a method for implementing them. page 168
What is the world going to be like in twenty years? That's a difficult question to answer, but the chances are that microcomputers will be part of it. Lawrence Willard takes a lighthearted look at one possible future in his story, The Mother Chip. page 186
FORTRAN is one of the antecedents to a number of computer languages. The ever popular BASIC is in some respects a simplification of FORTRAN. A number of later languages build upon the computer science learning experience which was FORTRAN and its compilers in the late 1950s and early 1960s. FORTRAN is even now becoming available in floppy disk based systems at the high end of the personal computing performance range. In this issue, W Douglas Maurer provides readers with an article on FORTRAN and Its Generalizations, good background reading on an important and still much used language. page 194
[author : Carl Helmers] #Edito
Extract : « In recent months, trends in the development of integrated circuit technology have reached new highs of accomplishment, such that it is possible to note some exciting possibilities for design in the next year or so. These new highs are on a broad front of semiconductor technology which is required for the small computers our readers buy and use. The effects of this new technology may not be seen in the retail marketplace for another year or so, since there is a finite design delay time between the availability of a part's design specification and its appearance in finished products.
The first new high in semiconductor technology is the announcement of several new 64 K bit dynamic memory parts (see the Texas Instruments TMS 4164 described on page 209 of this issue). What are the implications of this technology for personal computers? Quite simply, they are new lows in prices for the same functions we see now in the marketplace. Eventually the prices of the 64 K parts will fall to the under $20 level now seen in 16 K chips purchased in volume. Where it once took 32 chips of 16 K bits per chip to saturate a personal computer's address space, it will now take only eight chips (and perhaps a dynamic memory controller chip) to do the same thing. It is now possible to combine a current model microprocessor, a video controller chip, a dynamic memory interface chip, a floppy disk controller chip, and one or two parallel interface chips with eight memory chips and obtain a very complete electronics module for a small computer that uses only 13 or 14 integrated circuits, yet has the performance of a large scale minicomputer of several years ago. In short, the memory address space potential of the current 8 bit microprocessors has effectively become saturated. [...] »
[theme : Software] [author : Stanley-Peterson] #Mathematics #Listing #BASIC #Book
Extract : « The advent of the home computer makes possible many new and varied applications both of a general nature and of a scientific or mathematical nature. One of the latter applications we have successfully implemented on a personal computer is the fast Fourier transform, which we will subsequently refer to as the FFT, according to standard usage. Some of the most important properties of the FFT are described in this article, and an FFT program written for the Digital Group Z-80 System using BASIC is provided. [...] »
[theme : Software] [author : Munnecke] #Simulation #Listing #Assembly #Book
Extract : « Hardware or software; which is best? This question faces many designers when creating new systems. This article describes a software version of a hardware project detailed in December 1976 BYTE by Jonathan K Millen in his article "A Universal Turing Machine," page 114.
The universal Turing machine (UTM) is elegantly simple and capable of emulating the instruction set of any computer. The Turing machine was invented by Alan Turing (1912-1954). It is an abstract computing device that contains all the fundamental properties a computer system must possess and is used to study computer concepts. Although difficult to program, its back-to-basics nature is alluring to anyone interested in the fundamentals of computers.
The universal Turing machine designed by Jonathan Millen has two memories: one for program storage and the other for the main storage or "tape." The tape is a supposedly infinite (but actually 1024 bits long) memory which is a series of 1s and 0s. A bit on the tape is pointed to by a counter known as the head. A program counter points to a state in the program being executed. Each state consists of two instructions: one to be used if the current bit under the head of the tape is a 1 , the other if it is a 0. Each instruction contains fields describing whether to write a 1 or a on the tape, which direction to move the tape (left or right one position), and the address of the next state to be executed. [...] »
[theme : Hardware] [author : Ciarcia] #Display #Electronic
Extract : « [...] Some people may consider hexadecimal displays a trivial addition to an expensive computer system, but sometimes these little add-ons make program debugging easier. I can't help but wonder whether other computer experimenters would have need for such a display. I don't expect it to replace the video display; but often, when debugging a program, it's nice to be able to display a byte here and there to verify proper program execution. It will never replace the stepper and breakpoint monitor I now use, but it's great to display keyboard or IO data quickly with a single output instruction.
There are many methods to display hexadecimal numbers on a 7 segment LED. Figure 1 and table 1 show an example of the usual brute force method using a read only memory as a hexadecimal decoder. Programming the 82S23 was described in the November 1975 BYTE ("A Versatile Read Only Memory Programmer" by Peter H Helmers, page 66). While this is a viable approach, an excessive number of components is needed in this stand alone display, and most people would rather not have to program an EROM. The alternatives are to allow a computer to perform the decoding and drive the 7 segment display through the transistors from a latched 8 bit output port, or to put additional logic around a standard 7 segment decoder driver for the extra requirements. The former case necessitates a computer program while the latter can involve as many components as those in figure 1. [...] »
[theme : Hardware] [author : Astmann] #Interface #Printer #Listing #Assembly
Extract : « There are many microprocessor applications in which it is desirable to produce a hard copy of numeric information being measured or computed, yet even the cheapest of today's low cost printers could easily be the most expensive component of such a system. A solution to this problem is to use one of the thermal printing calculators now available. By means of an interface to a microprocessor, the calculator integrated circuit can be given stimuli identical to those received during the normal pushing of the calculator keys. In this article I describe such an interface which was implemented using an Intel 8080A processor and a Texas Instruments 5050M printing electronic calculator. [...] »
[theme : Hardware] [author : Gable] #Storage #Programming #Electronic #Listing #Assembly
Extract : « One of the most fascinating and useful products of recent technology is the read only memory (often abbreviated as ROM) and especially useful for the experimental systems designer is the erasable and electrically programmable read only memory, variously abbreviated EROM or EPROM.
In designing my first microprocessor based system, a read only memory was a must to contain the operating system and the floating point arithmetic firmware. I did extensive research into read only memory systems and after a week or so I was ready to make a specification. I had previously chosen the processor for the system to be the MOS Technology 6502 which requires a memory access time of about 500 ns when running with a 1 MHz clock. It was very desirable to have the read only memory meet this specification for two reasons. First, because of the dynamic nature of the 6502, it does not wait for slow memory very readily. Second, and by far most important, I wanted my arithmetic routines in read only memory to run as fast as possible since I would be using them very often. These considerations ruled out the older 1702 type memories as too slow. [...] »
[theme : Hardware] [author : Weed] #Mathematics #Electronic
Extract : « Digital integrated circuits that multiply binary numbers without the use of clock pulses have been available for several years. One such 4 bit by 4 bit multiplier is illustrated in figure 1. The 8 bit product appears on the output lines about 40 ns (the propagation delay) after the input lines are set. Larger numbers may be multiplied by first sectioning the inputs into 4 bit words, forming the products of each word of one input with every word of the other input, and summing these products in the appropriate manner. The propagation delay increases approximately linearly with the number of input bits. The number of integrated circuits required increases roughly as the number of bits in the multiplier times the number of bits in the multiplicand.
Multipliers are readily constructed from simpler integrated circuits. A 4 by 4 multiplier is illustrated in figure 2. The four bits of the multiplicand are gated into the adder M places from the right if the Mth bit of the multiplier is 1. If this bit is 0, only is added in. The parts count is minimized by bringing the carry output of the last adder back to a previous adder input. This system costs less than the circuit in figure 1. Its disadvantages are a higher components count and a 60 percent increase in power requirements. The two systems have comparable propagation delays. [...] »
[theme : Computer Chess Software] [author : Frey-Atkin] #GameBoard #Listing #Pascal
Extract : « This month we conclude the listing and commentary of Chess 0.5 begun last issue. The program was written by Larry A thin, who is coauthor with David Slate of the world championship chess program, Chess 4.6. The program is readily adaptable to personal computers having Pascal systems such as the UCSD Pascal project software. Part 4 concludes the series with a discussion of chess strategy and tactics.
Evaluating Terminal Positions
Another important aspect of any chess program is the function which provides a static evaluation of terminal positions in the look-ahead tree. In the present program, this routine also doubles as a preliminary scoring function for sorting moves at the first ply, at the beginning of the look-ahead search. Since the evaluation function is used repetitively in the search, efficiency demands that it be carefully engineered. We have left this task as an exercise for the reader. Our function presently includes only a few basic essentials. [...] »
[theme : Tutorial] [author : Halsema] #Storage #Algorithm
Extract : « If you have a floppy disk and are having trouble keeping track of where your programs and data are written on it, this simple file organization technique may provide the automated management of disk space you need.
A partitioned data set (PDS) is a file divided (or partitioned) into areas, each area containing data not related to data in other areas. For example, a system library might contain a source editor, assembler and linkage editor. Each of these programs could be stored in a separate partition in a partitioned data set. The partitioned areas in which these programs would be stored are called members of the data set, so the partitioned data set just described would contain three members, as in figure 1. [...] »
[theme : Applications : Life Games] [author : Milliun-Reardon-Smart] #Simulation #Algorithm #Initiation
Extract : « What can you do with your computer? After hearing about the game of Life, you may never ask the question again. Within the capabilities of a very minimal system, Life gives the computer the kind of job it does best: an enormous amount of repetitive logical operations. [The authors' system demonstrates this point: it had 2 K memory and a video terminal at the time of this writing.] This leaves you, the user, free to apply your creative energy on this fascinating game.
Developed by John Horton Conway, a British mathematician at the University of Cambridge, Life was first described in the October 1970 Scientific American by Martin Gardner in his "Mathematical Games" column. Its name comes from its resemblance to changing societies of living organisms which can grow, move and occasionally die out. [...] »
[theme : Life] [author : Buckingham] #Simulation #Algorithm #Initiation
Extract : « Life is a game that was developed by Prof John H Conway at the University of Cambridge and first presented by Martin Gardner in the October 1970 "Mathematical Games" column in Scientific American. The game is derived from a field of mathematics known as automata theory (in this case cellular automata). In the February 1971 "Mathematical Games" column the game was described again along with a good introduction to automata theory.
The game is played on a uniform cellular grid (in this case an area divided into squares, such as graph paper) where every cell is surrounded by eight immediate neighbors (ie: cells touching the center cell under consideration). Each cell, or automaton, can be in either a 1 or state (on or off — alive or dead). The population of cells is changed by a set of predetermined rules. These changes proceed in intervals called generations. [...] »
[theme : Life Games] [author : Millen] #Simulation #Algorithm #Initiation
Extract : « The game of Life is known to many computer experimenters for its beautiful, symmetrical two-dimensional displays and for its imaginary population of blinkers, beehives, gliders, and other strange, pseudoliving organisms. Invented by the British mathematician John Conway, the game was described in the "Mathematical Games" section of Scientific American in October 1970 and February 1971. A series of articles on how to program it for a home computer also appeared in three of the earliest issues of BYTE ("LIFE Line 1, 2, and 3," BYTE September 1975, page 72; October 1975, page 34; December 1975, page 48). It is an attractive home computer software project, but the program requirements in memory capacity, processor speed and display capability were more than I possessed in my homebrew machine. The programming effort also looked formidable. I developed One-Dimensional Life as a small scale substitute. [...] »
[theme : Computer Chess] [author : Douglas] #GameBoard #Experience
Extract : « After 29 years, computer chess finally achieved a victory in human competition at the master class tournament level. During the fourth game of a match held at the Canadian National Exhibition from August 26 to September 4 1978, International Master David Levy resigned to Chess 4.7/ CYBER 176 after 56 moves, although he did win the tournament, 3½ to 1½.
David Levy was three years old in 1949, when the American mathematician and computer science pioneer Claude Shannon produced the first paper describing the methodology for producing chess playing computer programs. Not until 1956 did any machine win a game against a human opponent: MANIAC, a system developed at the Los Alamos Scientific Laboratory, won a greatly simplified chess game against a novice player in 23 moves. [...] »
[theme : Software] [author : Weisbecker] #Languages #Programming #Algorithm
Extract : « This article describes a hexadecimal interpretive programming system which requires less hardware than high level languages such as BASIC, and which I feel is much easier to use than machine language. In my experience, hexadecimal interpretive programming is ideally suited to real time control, video graphics, games or music synthesis. It can be used with inexpensive computer systems consisting of a hexadecimal keyboard and only 1 K or 2 K of programmable memory. Expensive terminals and large memories aren't required. You can quickly and easily write useful programs that require five to ten times less memory than conventional high level languages without resorting to the tedious complexities of actual machine language.
Interpretive Programming
This programming approach isn't new, but surprisingly few people seem to be using it. The technique consists of designing a high level pseudomachine language that is more powerful for specific applications than conventional machine language. An interpretive program is then written to execute this new set of pseudoinstructions. Each pseudoinstruction is really just a code that specifies a machine language subroutine. This set of subroutines can be designed to perform any functions you might need for your application. By staying with a machine language format, and not using labels or English words for instruction codes, memory requirements are lower. By limiting the addressing range and number of variables, you can limit each pseudoinstruction code length to several bytes for further memory space savings. Interpretive programs for these powerful pseudomachine languages can require as few as 512 bytes of memory. It has seldom taken me more than a week to implement a new hexadecimal interpretive language, and I can then use it for years. The approach can be thought of as vertical microprogramming with the microprocessor machine language used as the microcode representation. [...] »
[theme : Applications] [author : Gerhold] #Education
Extract : « Who doesn't want a tutor who is infinitely patient, expert on almost any subject under the sun, available at your beck and call, adapted to your learning speed and style, and cheap? This has attracted the attention of a number of the manufacturers of personal computers, and several of them make prominent reference to educational applications in their advertising. But the customer who uses educational applications to justify raiding the family budget for a computer will have some explaining to do, for good teaching software on microcom- puters is not available, nor is it easy to write. Why?
If you examine the 20 years of development of computer assisted instruction (CAI) on mainframe computers, you'll see that the computer can be an effective teaching tool when used properly. Students taught with a computer perform as well or better than comparison groups; they may learn two or three times faster. Their failure rate is lower and they express satisfaction with the technique. Why then is the technique not more widely used? There are three main reasons. [...] »
[theme : Fiction] [author : Willard] #Anticipation
Extract : « Jonathon Witherspoon Twombly floated up out of a warm and comfortable world of drifting, unconnected images to begin, unfortunately, a new day. He stared at the cream colored ceiling, as he always did, to read the wedge of light that fanned from the top of the window shade to intersect a discolored area of the ceiling in a fairly significant manner. Nine o'clock, he guessed, disdaining for three and a half seconds the absolute accuracy of his Minnie on the bedside table. He rolled over and looked at it, stubbornly translating 24 hour time to his own archaic measure. His guess was a mere four minutes and ten seconds slow. Pretty close, he noted contentedly.
The mini-mini-micro-processor, his own personal computer link to the vast and complex world of 1997, winked at him with a softly glowing numeral 3. Not much larger than a deck of playing cards and half as thick, Minnie rested upright in her umbilical slot, absorbing power for her batteries and sharing her thoughts with the house computer in its basement hideaway. A rather old microprocessor, Mike ran the house, but Minnie was boss as long she was plugged into the table, or as long she was on Twombly's person and not more than a mile distant from the house. Beyond that range she could integrate with Mike up to a distance of 40 miles using the high power car facilities, and beyond the 40 mile radius she could use the worldwide network of relay stations. But that cost money and was rarely necessary. Jonathon Twombly did not travel very much or very far. [...] »
[theme : Language Tutorial] [author : Maurer] #Fortran
Extract : « The average small system user will not be able to use FORTRAN as a programming language for his or her system. Some small systems have BASIC, and there is at least one FORTRAN system for the 8080 (available from Microsoft), but FORTRAN is still chiefly a language for large computers (including minicomputers and mid-size computers). Nevertheless, there are many situations in which a knowledge of FORTRAN is important even to the small system user. The most important of these is in the description of algorithms. It is of no use to describe an algorithm in, say, INTEL 8080 assembly language, since this would not make sense to users of Motorola and other microcomputers; so algorithms are very often described either in FORTRAN, or in some other algebraic language. FORTRAN, though, seems to be the one that is used most often for this purpose, since more people know FORTRAN than any other algebraic language.
There are hundreds of books on FORTRAN today, all of which are written for the large system user who is, presumably, actually going to use FORTRAN to solve problems. It is very rare that one finds a description of FORTRAN written for those who merely need to understand algorithms written in FORTRAN, but who are going to rewrite those algorithms in some other language themselves. The present article is written to fill this need. [...] »
#Book
Extract : « The Pocket Calculator Game Book by Edwin Schlossberg and John Brockman William Morrow and Company Inc New York 1975 158 pages hardbound $6.95 [...] »
#Association