[editor : Carl T. Helmers Jr.] [publisher : Virginia Peschke, Manfred Peschke] [art : Mary Jane Frohlich, Wai Chiu Li, Ellen Shamonsky] #Magazine
#Abstract
One of the most exciting aspects of experimentation with computers is using the computer to make objects move. Distilling this excitement to its simplest form, Leon Sweer, Thomas Dwyer and Margot Critchfield at the University of Pittsburgh's Project Solo have designed a "one-dimensional plotter" which is used as the output display for the familiar Lunar Lander simulation game. Read Controlling Small DC Motors with Analog Signals.
The small computer field is expanding fast. Growing with it is a need for more microprocessor oriented courses in our universities. In his article, A Microprocessor Course, Mark E Fohl explains how he helped initiate a microprocessor course at Franklin University in Columbus OH and details some of the difficulties instructors might expect to run into.
Read Joe Weisbecker's COSMAC VIP, the RCA Fun Machine, a personal description of his new COSMAC VIP kit. This article conlains some background information on one man's design philosophy and its result in a new product from RCA.
The lead article of our special section on APL (A Programming Language) was written, appropriately, by the man who developed it at IBM during the early 1960s: Dr Kenneth E Iverson. In Understanding APL Dr Iverson analyzes some basic APL operators through a series of questions designed to test your powers of induction. The article concludes with some challenging APL "thought experiments" for your decoding pleasure.
An excellent way to become more familiar with APL is to read David D Keefe's Here's APL in Action! David has written an APL version of the popular Lunar Lander game along with a detailed description of the entire program to help the reader decipher those high information density APL statements.
Have you ever wanted to own a truly powerful computer? APL may be an answer to this quest for an ultimate language when it is added to an otherwise mundane computer. Mike Wimble's An APL Interpreter for Microcomputers can help you implement APL if you have a flair for do it yourself software. With a little effort you can use any of the popular processors to produce your own APL interpreter from Mike's design.
Have you always wanted to have an elegant looking computer art program for graphic display, but didn't want to spend the time required to program it? Try Serendipitous Circles! Authors Galway and Anderson have discovered a simple algorithm to create beautiful and unusual moving pattems in no time at all.
The ability to handle and manipulate text is a very useful function. It allows programs to be changed very quickly without having to manipulate large amounts of data (and it is certainly better than an IBM correcting Selectric typewriter for writing and manipulating text). In his article, Editorializing with Your Computer, Gary McGath describes some of the properties of simple text editing programs.
What makes APL such a heavily discussed topic among small system enthusiasts? How does it differ from BASIC, and why should you use it at all? Allen Atwood discusses all of these topics and more in Why People Get Hooked on APL. Find out what you've been missing by programming in BASIC.
Often it is necessary to determine the data that is present on a particular port or set of lines of a computer for purposes such as debugging. The usual indicator bit pattern consisting of individual lamps can be very confusing and lead to errors if read quickly. R R Burns offers a solution to this problem. In his article, An 8 Digit Hexadecimal Readout, he describes a test rig that can monitor 32 lines in groups of four bits.
In this issue, Ralph Tenny describes some of the tricks (some call them kluges) which can be done with pulse waveform edges, Schmitt triggers, resistors and capacitors. Turn to Look What You Can Do ... with an Edge as a Cue to understand some of the design practices you may occasionally find in a processor.
In two earlier articles in BYTE W Douglas Maurer described an algorithm for processing algebraic expressions when implementing compilers or interpreters. In his latest contribution to BYTE's ongoing flow of tutorials on computer science problems and techniques, Dr Maurer presents an ingenious extension of the BauerSamelson algorithm which will enable the do-it-yourself compiler writer to create efficient object code for expressions involving logical operators and comparisons of operands.
Many people use their computers as number crunchers and want quick, accurate algorithms for determining some fairly involved mathematical functions. Typical examples are trigonometric functions, hyperbolic functions and exponentiation. In his article, Simple Algorithms for Calculating Elementary Functions, John Rheinstein details several algorithms to calculate these functions quickly.
How do you get rid of bugs? Set out a few traps using techniques outlined in John M Schulein's article on A Trapping Technique for the 8080.
[author : Carl Helmers] #Edito
Extract : « I am sometimes asked by persons new to the field, "What is the best way to approach the problem of learning enough about computers and their intricacies to allow the neophyte to accomplish useful tasks?" Some thoughts on this subject, with an aside on simplicity and system design, provide the theme for this essay on the philosophy of personal computing usage and experimentation. My point of departure for this thought journey is an old but useful princle (principle) adapted to a modern context.
The Principle of Simplicity
There is a famous rule of thumb which is well-known to philosophers, logicians, mathematicians and natural scientists, which might be called the "Principle of Simplicity." The familiar name for this principle is the rule of "Occam's Razor" after a medieval logician (William of Occam) who has become identified with the concept. Paraphrased from the typical undergraduate philosophy course, the elements of this principle are:
Given multiple, equivalent logical formulations of an argument, that argument is best which is both complete and of the simplest structure.
Complete means that the argument takes into account all the necessary details of the point being made.
Simplest structure means that the argument in some sense is the most compact or easiest to understand.
The whole point of this principle is that in order to reduce the complexity of long and involved logical constructions, one should choose paths of explanation which are direct and concise rather than long and convoluted. However, the principle says nothing about the need for complicated logical structures to describe complicated concepts. It merely says that for a given level of complexity the simplest argument, which accounts for all features of the point being made, is the best argument to adopt. [...] »
[theme : Display Hardware] [author : Sweer-Dwyer-Critchfield] #Electronic #Interface
Extract : « Microcomputers are starting to show up in an unexpected variety of places: engineering labs, businesses, factories, golf courses, radio stations, the home, and most recently, the classrooms of adventuresome teachers.
One consequence of this growth has been a rapid expansion in what might be called "blue sky" thinking about how computers might be used. Amateurs aren't afraid to fantasize a bit, knowing that's where half the fun lies. Even when these ideas are too ambitious for immediate implementation, they often suggest simpler partial projects that will eventually fit in as components of a bigger system. For example, getting simple black and white graphics to work on CRT monitors could be the prelude to running a more ambitious sound and color "spectacular" under computer control. [...] »
[theme : Programming Techniques] [author : Iverson] #APL #Programming #Mathematics #Book
Extract : « Adin Falkoff, in his review of APL conferences to be published in Computer Reviews (as of this writing), indicates the "widely ranging subject matter" covered in APL papers by listing dozens of applications, covering such areas as word processing, convex geometry and database systems, to name a few. Because of this potential breadth, it is necessary, in a short paper, to focus more narrowly on some one aspect of APL.
In scanning previous issues of BYTE to identify some aspect which would be relevant to its readers, I concluded that, however diverse their interests, this audience held one thing in common: a penchant for experimentation and exploration, for playing around with ideas and things. I have therefore chosen to emphasize these aspects of APL: the use of experimentation on an APL computer in learning the language itself, and the exploration of other topics both with and without the aid of a computer. [...]
REFERENCES
1. Falkoff, AD, Computing Reviews (to appear).
2. Iverson, K E, An Introduction to APL for Scientists and Engineers, APL Press, Pleasantville NY, 1976.
3. Iverson, K E, Introducing APL to Teachers, APL Press, Pleasantville NY, 1976.
4. Blaauw, G A, Digital System Implementation, Prentice Hall, Englewood Cliffs NJ, 1976.
5. Iverson, K E, Algebra: an algorithmic treatment, APL Press, Pleasantville NY, 1972.
6. Iverson, K E, Elementary Analysis, APL Press, Pleasantville NY, 1976.
7. Orth, D L, Calculus in a new key, APL Press, Pleasantville NY, 1976.
8. Spence, R, Resistive Circuit Theory, McGraw-Hill, New York, 1974.
9. Iverson, K E, APL in Exposition, APL Press, Pleasantville NY, 1976.
10. American Heritage Dictionary, American Heritage Publishing Co, 1969. »
[theme : Software] [author : Keefe] #Listing #APL #GameRacingPiloting
Extract : « This APL version of the Lunar Lander program is developed from a BASIC version called LEM, published in the November- December 1976 issue of Creative Computing magazine ("LEM" contributed by Bill Cotter). The program has been restructured to use vector operations within the force equations, resulting in a simplified program structure. Vector operations also allow the game to be easily expanded: For example, the user can now specify Coriolis force elements, seen as an effect on the horizontal and transverse velocities as a result of the rotation of the target planet. These forces are applied as a part of the same equation which applies the gravitational force. [...] »
[theme : Interpreter Design] [author : Wimble] #Algorithm #Programming #Book
Extract : « Under the sponsorship of the National Science Foundation, Bernard J Robinet produced an NTIS report entitled, "Architectural Design of a Directly-Executed APL Processor". Although at a detail level the paper is fraught with logical and typographical errors, it presents an excellent and complete plan for implementing an APL interpreter via software, firmware or hardware. This article is a description of just such an interpeter. The program was originally written in the PL/I language but is presently being enhanced and translated for execution on a TMS 9900 microprocessor. No attempt will be made herein to describe APL, and the information is aimed at the experienced programmer who can use flowcharts and diagrams as a starting point. Emphasis is placed on architecture, rather than on actual code so that, while the more experienced programmer should have enough information to program his or her own interpreter, even the neophyte can still learn many of the techniques of interpreter design. [...]
REFERENCES
John Coake and J T Schwartz, Programming Languages and Their Compilers, Courand Institute of Mathematical Science, New York, 1970, pages 601-642.
Leonard Gillman and Allen J Rose, APL 360: An Interactive Approach, Wiley and Sons, New York, 1974.
IBM APL/1130 Primer, Student Text, IBM Publications, White Plains NY 1969. Highly recommended.
Kenneth Iverson, A Programming Language, Queens University, Kingston, Ontario, 1968.
Harry Katzan, APL Programming and Computer Techniques, Van Nostrand Reinhold, New York, 1970.
Harry Katzan, APL User Guide, Van Nostrand Reinhold, New York, 1971.
Sandra Pakin, APL/360, Science Research Associates, Chicago, 1972. A manual for the IBM 360 implementation of APL.
Sandra Pakin, APL: A Short Course, Prentice-Hall, Englewood Cliffs NJ, 1973.
Raymond P Palivka and Sandra Pakin, APL: The Language and Its Usage, Prentice-Hall, Englewood Cliffs NJ, 1975.
William Prager, Introduction to APL, Allyn and Bacon, Boston, 1971.
Xerox APL Reference Manual, Xerox Corp, El Segundo CA 1973. »
[theme : Software] [author : Galway-Anderson] #Listing #Assembly #Algorithm #Graphics
Extract : « In this article we describe a simple algorithm which produces beautiful computer art. The algorithm was written to draw circles, but when we tried to draw large circles, we saw strange complex patterns. The screen was filled with wildly oscillating jelly bean shapes which would periodically explode in a beautiful sparkling flash and collapse back into new jelly beans. Experimenting with different diameters, we discovered many new dynamic patterns. [...] »
[theme : Software] [author : Schulein] #Listing #Assembly #Programming
Extract : « If you have got your 8080 system up and running and you are starting to write some programs for your system then the trap routine discussed in this article may be just what you need to assist you in debugging your own software or other software you have keyed in or relocated. This trap routine is in PROM in my system and has been invaluable in locating bugs in various programs. [...] »
[theme : Education] [author : Fohl] #Experience #Microprocessor #Education
Extract : « In August 1975 Franklin University made a commitment to offer a program in microprocessors. I would like to describe what has happened since then, both in terms of Franklin's goals in offering the course and of my experience in developing and teaching the course. [...] »
[theme : Product Description] [author : Weisbecker] #Review #ComputerKit
Extract : « Most beginners think of computers only in terms of solving equations or processing data in English language format. Ask someone with limited exposure to computers about their use in homes and they invariably mention kitchen recipe files, meal planning, income tax preparation or checkbook balancing. I don't think any of these applications has really caught on so far. This view of computers as super calculators or data processors is apparently shared by many people currently involved in the home computer movement. This orientation keeps prices higher than necessary for the majority of potential hobby users who could have just as much fun with much less sophisticated machines. [...] »
[theme : Software] [author : McGath] #Method #DataEntry
Extract : « One of the basic requirements of a software system is a way to get text input. Programs need data to work on; and you need some way to turn this data from markings on a piece of paper to bits inside the machine. The most obvious examples, if only because you have to use them before you can have any other programs of your own creation, arc assemblers and compilers. The source program to be translated is just the data for the translating program. Other kinds of programs, tabulations, statistical analyses, and so forth, also cry out for a convenient way to get a large amount of text into the computer. This is where the text editor comes in.
A text editor is a program which allows the user to enter and modify encoded character data. With it, you can enter a program or a list of figures or anything else, go back and make corrections, and finally output the text onto a storage device or leave it in memory for your next program to work over. A text editor is a fairly simple program to write, and the 8 bit machine which you are probably using actually has one advantage for editing over many big computers: Its unit of information is just the right size for holding one ASCII character. [...] »
[theme : Software] [author : Atwood] #APL #Listing #Experience
Extract : « APL, A Programming Language, is one of the most powerful interactive languages in use today. Its rich set of operators is oriented toward operating on groups of data with the same freedom that other languages operate on single data items. These operators give the language the breadth to handle an amazingly wide range of computing problems. This article explores APL's applicability to personal computing, and looks at some of the ways that APL can be practically implemented on the small system. Particular attention is given to the problem of storage management. References in the article to the internal workings of an APL interpreter for a microcomputer pertain to the APL interpreter currently under development by the Microsoft Company for use with the Intel 8080 chip. This interpreter (being implemented as this is written) will include a significant subset of APL, designed to contain most of the features available on large APL systems, except for those parts of the language which pertain to a multiuser environment. [...] »
[theme : Hardware] [author : Burns] #Electronic #Display
Extract : « While working or playing with a microprocessor the logic state of many lines must be studied simultaneously in order to understand and debug the system. Typically, 16 address lines, eight data lines and possibly some IO lines are of interest. Each line can be individually checked with a meter or oscilloscope, but it is much more convenient to measure the states of the lines in parallel. Most microprocessor front panels have many LED indicators to simultaneously read out the address and data lines. [...] »
[theme : Hardware] [author : Tenny] #Electronic
Extract : « There are hundreds of digital integrated circuit functions, some highly specialized and others perfectly general. So long as simple digital functions are involved, logic cookbooks, truth tables and functional descriptions explain what various integrated circuits do and show how to apply "standard" solutions to problems. But it is often possible to combine integrated circuits and other components to provide clever solutions to various problems, taking advantage of the characteristics of the integrated circuits. In this article, we concentrate upon several different ways to generate pulses or time delays on cue, using analog, asynchronous and synchronous (clocked) digital methods. [...] »
[theme : Algorithms] [author : Maurer] #Algorithm #Programming
Extract : « In a previous two part article, "Processing Algebraic Expressions," we presented the Bauer-Samelson algorithm and applied it to expressions involving the arithmetic operators and parentheses. Here we shall extend these ideas further and show how code can be generated in cases where relational operators ("greater than," "greater than or equal," and so on) and logical operators ("and," "or," "not" and so on) may be present. [...] »
[theme : Algorithms] [author : Rheinstein] #Algorithm #Listing #BASIC #Mathematics #Book
Extract : « Several years ago, shortly after obtaining an HP-35 calculator, I became interested in the algorithm utilized by Hewlett-Packard to calculate the sine and cosine functions. Upon looking through the literature I found that the simple elegant algorithm employed is based upon the CORDIC technique developed by Voider. The basic algorithm was first described by Henry Briggs in 1624 in Arithmetica Logarithmica. This algorithm, which does not seem to be widely known, should be easily implemented in a microcomputer. Further, a simple variation of the algorithm, described by Walther in "A Unified Algorithm for Elementary Functions" (see bibliography), allows the calculation of hyperbolic functions and, more interestingly, the exponential function. Inverting the procedure allows the calculation of the inverse trigonometric and hyperbolic functions and the logarithm. These algorithms are generalizations of the well known add and shift algorithm used for multiplication. [...]
[...] 1. Jack E Voider, "The CORDIC Trigonometric Computing Technique," IRE Transactions on Electronic Computers, September 1959, page 330.
2. J S Walther, "A Unified Algorithm for Elementary Functions," Proceeding, Spring Joint Computer Conference, 1971, page 379. »
#APL #Book
Extract : « [...] BIBLIOGRAPHY
1. Falkoff, A D and K E Iverson, "The Design of APL," IBM J Res Develop 17:324-334, 1973.
2. Forsythe, G, "What to Do Until the Computer Scientist Comes," Amer Math Monthly 75:454-462, 1968.
3. Iverson, K E, "APL in Exposition," Tech Rept 320-3010 IBM Philadelphia Scientific Center, 1972. A section of this excellent little volume entitled "The Computer: A Device for the Automatic Execution of Algorithms" is particularly appropriate to your journal and should be reprinted if at all possible. »
#Book
Extract : « Expanding Your Computer Library
What do you do with your system? Where is all the applications software? These are questions frequently posed by people who are trying to find out about small computers. Aside from games, which are a challenge to write as well as play, applications software seems somewhat scarce. In this article, I recommend some books that can introduce you to the world of computer applications. Most of the books discussed below contain program listings in BASIC or FORTRAN. Others do not, but are useful for the wealth of ideas or methods presented.
At the head of my list is a remarkable book, Scientific and Engineering Problem- Solving with the Computer, by William Ralph Bennett Jr (Prentice-Hall, NJ, 1976, hardcover, $17.95). [...]
Numerical Methods for Scientists and Engineers, by Richard W Hamming (McGraw-Hill, New York, 1962, hardcover, $18.50) [...]
Numerical Methods for Digital Computers, Volumes 1 and 2, by Anthony Ralston and Herbert S Wilf (Wiley, New York, Volume 1, 1960; Volume 2, 1967, $17.25 and $19.25 respectively) [...]
Applied Numerical Methods, by Brice Carnahan, H A Luther and James O Wilkes (Wiley, New York, 1969, hardcover, $21.95). [...]
Mathematical Elements for Computer Graphics, by David F Rogers and J Alan Adams (McGraw-Hill, New York, 1976, paperback, $9.95) [...]
FORTRAN IV in Chemistry, by G Beech (Wiley, New York, 1975, hardcover, $23.50) [...]
Biometry, the Principles & Practice of Statistics in Biological Research, by Robert R Sokal and F James Rohlf (W H Freeman, 1969, hardcover, $18.50) [...]
FORTRAN Programming for the Behavioral Sciences, by Donald J Veldman (Holt, Rinehart and Winston, New York, 1967, paperback, $5.98) [...]
Computer Techniques in Biomedicine and Medicine, edited by Enoch Haga (Auerbach, Philadelphia, 1973, hardcover, $24.95). [...] »
#Association