[editor : Christopher Morgan] [publisher : Virginia Londoner, Gordon R Williamson, John E Hayes] #Magazine
#Abstract
"Future Computers" is our cover theme this month and the subject of the editorial. Before you write to comment on our cover's "unusual" design approach (created by artist Robert Tinney), keep in mind the proximity of April 1.
Elsewhere in this issue we describe Steve Ciarcia's latest project, a low-cost logic analyzer, and tell how to build your own Turing machine. Other articles include: a follow-up to our earlier review of the Sinclair computer, this time a description of the MicroAce kit version; a reformatter for CP/M and IBM-format floppy disks; a closer look at the TI Speak & Spell; a fascinating review of three different APL packages for the patient (but eager) APL fans in our audience; details about data compression; all about intercomputer data links and the game of Go; and the conclusion of an article from last month about 3-D computer graphics.
[author : Chris Morgan] #Edito
Extract : « Future Computers — what will they be like?
Some exciting developments have been occurring in the industry lately that should give us some clues. I attended the Consumer Electronics Show in Las Vegas this past January, where Toshiba introduced what could be the most significant product of the year for the personal-computing market: a pocket-size flat-screen television set. While no specific mention was made of its possible use with a personal computer, it takes only a moment's thought to see the potential of this engineering marvel. [...] »
Recurrence can be used to simplify the calculation of Bessel functions.
[author : James J Davidson] #Listing #BASIC #Book #Mathematics
Extract : « Although Taylor's series are the most universally useful method of computing higher mathematical functions, they do have their drawbacks. In particular, many functions have representations only in the form of alternating series. This can cause great difficulty in maintaining accuracy if large arguments are required. Often, so many significant digits are lost in the process of computation that the results are, at best, useless. At worst, if you do not suspect that gross inaccuracies are occurring, you may make severe engineering mistakes.
If the various remedies such as argument scaling are ineffectual in improving accuracy, the only recourse is to seek alternate methods of computation. Of those alternatives, recurrence relations have the widest applicability.
What's a Recurrence Relation?
Various functions have the mathematical property that if you know two consecutive values, you can use those to find a third. This process can be repeated to find a fourth from the second and third, and so on. Of course, you need to pick the right pair to start from, but if you do, you can get to any value you want.
The simplest illustration of a recurrence relation is the Fibonacci series. This is a series of special numbers known in medieval times to Leonardo of Pisa, surnamed Fibonacci (1175-1230). Fibonacci numbers are found in botany and other natural sciences, as well as in certain mathematical theories of aesthetics. They are interesting in their own right, and there is at least one society devoted to study of their mathematical properties.
The Fibonacci series proceeds in the following fashion: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...
Each term is obtained by adding the two previous terms. [...] »
Turn your computer into a powerful diagnostic tool.
[author : Steve Ciarcia] #Electronic #Algorithm #Listing #BASIC #Diagnostic
Extract : « The Digital Age has spawned a variety of electronic troubleshooting aids, including logic probes, integrated-circuit test clips, multi-trace oscilloscopes, and logic analyzers. All are useful, up to a point, but it is important to know when to use a particular test instrument and how much you can depend on it.
If the logic states of signal lines were the only information needed, a simple voltage measurement would suffice in digital troubleshooting. But timing, rather than absolute voltage level, is the more important consideration in digital systems. Most digital systems operate by setting discrete logic conditions on bus lines and then strobing that data through the system at the occurrence of edges of specific clock pulses. A system operates correctly only if all the parallel states are set correctly at a specific instant in time. The system fails if any single logic state is in error at any clock time during program execution. [...] »
Up-to-date information on the conference, the city, and much more.
Use an intelligent peripheral controller to lighten the load on your computer system.
[author : James Kahn] #Electronic #Algorithm #Storage
Extract : « The microcomputer-system designer has had a difficult time finding low-cost storage devices. Frequently, the choices have been limited to either standard Phillips audio cassettes or floppy disks. Although these are relatively inexpensive storage media, the transport mechanisms, or drives, are not. In addition to the transport, a controller and data formatter is required to interface the transport to the microcomputer system. The controller may either be a dedicated LSI (large-scale integration) device or be built up discretely from SSI (smallscale integration) logic consisting of TTL (transistor-transistor logic) gates and flip-flops. There is now another choice besides the floppy disk and the Phillips cassette: the digital minicassette. Not only is the storage medium inexpensive, so is the transport (about $140, versus $400 for a floppy-disk drive). As a bonus, the transport is extremely compact (only 23 cubic inches) and requires little power (1 watt). This makes it suitable for a wide range of low-end applications ranging from experimental systems to data logging for test instrumentation.
There is one problem with designs using a minicassette: controlling it. [...] »
Even though Go is much harder than chess, a microcomputer Go program can produce surprisingly good play.
[author : Jonathan K Millen] #GameBoard #Listing #Book
Extract : « Go is a board game. Like chess, it is a game of pure skill; moreover, a considerable body of literature has been devoted to it. Go was invented in China around 2000 BC. Since its introduction into Japan around 700 AD, it has flourished there to the extent that the most accomplished masters of the game are now Japanese. However, the game has spread world-wide. In the United States, one can find Go clubs in the vicinity of large cities and universities, and most large bookstores have at least one substantial book on the game.
Go is played on a 19 by 19 square grid having black spots on nine intersections, as illustrated in figure 1. The traditional board, called a Go Ban, is a wooden block about 17 inches square and several inches thick, with four short feet. It stands alone as a table at just the correct height for players sitting on floor cushions.
One player has a supply of black stones; the other, white stones. The stones are disks about the same size as the grid spacing; they are approximately three-eighths of an inch thick in the middle and almost sharp around the edge. The black stones traditionally are made of slate, and the white stones of clam shell. [...] »
Three different practical versions of this theoretical tool produce the same output.
[author : James Willis] #Algorithm #Electronic #Listing #Assembly #Fortran #History #Book
Extract : « In 1936, Alan M Turing gave the following description of a computing machine: The machine is supplied with a "tape" (the analog of paper) running through it, and divided into sections (called "squares"), each capable of bearing a "symbol." At any one moment there is only one square, say the rth, bearing the symbol G(r) which is "in the machine." We may call this square the "scanned square." The "scanned symbol" is the only one of which the machine is, so to speak, "directly aware." However, by altering its m-configuration, the machine can effectively remember some of the symbols which it has "seen" (scanned) previously. The possible behavior of the machine at any moment is determined by the m-configuration g(n) and the scanned symbol G(r). This pair g(n), G(r) will be called the "configuration." Thus, the configuration determines the possible behavior of the machine. In some configurations in which the scanned square is blank (ie: bears no symbol) the machine writes down a new symbol on the square; in other configurations, it erases the scanned symbol. The machine may also change the square which is being scanned, but only by shifting it one space to right or left.
Turing's description has become the definition of computability. That is, if a Turing Machine can work the problem, then the problem is said to be computable. If no Turing Machine can eventually find an answer to the problem, then the problem is not computable. John von Neumann and others have tried to establish a relationship between a Turing Machine and human neural networks. (See Michael Arbib's book, listed in the references at the end of this article.) An overview of these concepts along with some history of the problem is given in an article by Jeremy Bernstein (reference 2). An example of hardwired version may be found in Jonathan K Millen's article (reference 3).
As with other problems involving computing machines, the first step is to carefully define the problem or task. Once a careful definition has been given that defines and limits the scope of the project, we may then attempt a solution. The solution may take on many forms depending on the intended use of the project.
In this article, I will describe a finite (theoretical) Turing Machine (TM) and the implementation of a Practical Turing Machine (PTM) in hardware, in a program for the 6800 microprocessor, and in a FORTRAN program. These implementations are equivalent in that they accept the same input and, for that input, produce the same output. [...] »
The author expands on Michael Rigsby's September 1980 BYTE article.
[author : Peter Vernon] #GameEducational #HowItWorks
Extract : « Congratulations to Michael Rigsby on his article "Dissecting the TI Speak & Spell" (September 1980 BYTE, page 76). He is not alone in desiring an economical voice-output device for his computer, and the Speak & Spell is an excellent choice. Economy is one reason, and the circuitry of this device has features that make it potentially one of the most flexible and comprehensive speech synthesizers available.
The problem is how to interface the Speak & Spell to a computer. Mr Rigsby's approach is the first step, but it allows only a spelling computer, not a talking one. In order to achieve more, it is necessary to know something about the workings of the device. This information is difficult to obtain. Texas Instruments has not been very informative, although considering the investment it has in speech technology this is perhaps understandable. Thus, the Speak & Spell is an irresistible challenge to the experimenter.[...] »
Information can be transmitted and stored using fewer data bits by appropriate techniques.
[author : Harold Corbin] #Algorithm #Listing #Assembly #BASIC #Encoding #Book
Extract : « Even though the cost of data storage continues to decrease fairly rapidly, there are still a number of situations where it is desirable to squeeze more data into a physical storage device. Often the typical microcomputer has limited memory, small disks, or slow cassettes. With any of these storage limitations, data compression may offer a method of using the existing device to store larger quantities of data or to provide improved access time to the data. The use of data compression can also provide significant improvement in the transmission of data over communication networks since there are fewer bits to send in order to convey the information.
The basic idea in data compression is to use more efficient codes to represent the information in a file or to remove redundant and unnecessary information from the file. With data compression in effect, the system stores or sends only the minimum data necessary to convey the original information.
In a typical file, the individual characters are represented by fixed-length codes such as ASCII (American Standard Code for Information Interchange). This representation does not consider that the frequency of occurrence of the characters in the file is not uniform. In typical English text, E is the most common letter and Z is the least frequently used letter. Table 1 presents a frequency analysis for letters in English text. Using a code such as ASCII for storing or transmitting text means that the same number of bits is used for the most frequently occurring letter as well as for the least frequently occurring letter. This method of encoding data uses more bits to represent the information in the file than is necessary. In this article, I will illustrate ways to store data more efficiently.
Encoding the data in a more efficient form is called data compression. There are a variety of methods that have been used to compress data, but all of them attempt to reduce the redundancy of the original data. Most large data-processing systems provide some form of file compression, since storage costs money. Also, it is often less expensive to pay for the computer time to compress and expand the data than to pay for mass storage. The user of a large system usually has PACK and UNPACK commands available to allow compression and expansion of his files.
Typical data-processing systems use some form of zero or space suppression to do their data compression. This method is easy to implement and not very expensive to run, and produces fairly good compression for many types of data. The efficiency of this compression method is dependent upon how many spaces or zeros occur in the file. Typically, a source file of assembly-language statements is a good candidate for data compression. Fifteen to twenty percent compression of an assembly-language source file is not uncommon. [...] »
Using this software, systems based on the 6800 microprocessor can communicate with other systems.
[author : Mike Wingfield] #Algorithm #Listing #Assembly #Interface #Protocol
Extract : « Have you ever wanted to share a program or data with someone, but had no way to get it from your machine to his without typing it by hand? While this facility is lacking on most microcomputers, it is so necessary to scientific and business computers that it has long been taken for granted. The power of a computer is greatly enchanced when it can communicate with geographically distant computers. Computers can attain increased efficiency by sharing both resources and data, or by distributing the work load among connected computers. These capabilities also increase the versatility of the computer as a tool, and make possible such services as electronic mail and quick access to data. These and similar advantages will become available to the hobbyist and the small businessman through the use of intercomputer data links.
This article describes a specific implementation of a connection beween two computers that provides a symmetrical facility for terminal linking and memory-to-memory file transfers. Terminal linking implies that the output from each terminal is echoed on the remote terminal. File transfer implies the error-free transmission of a block of data from one computer to the other. The purpose of this article is to provide insight into the requirements of largescale network design through an examination of one specific implementation. [...]
Reliable data transmission between two computers over a noisy channel is a primary concern of communication engineers, who have developed a spectrum of elaborate protocols to ensure that errors are detected and corrected. The simple data link described here is not overly robust. For example, the computer will "hang up" waiting for a valid response when an ACK or a NAK is received in error and discarded. One solution is to include a timeout interrupt that causes the send routine to retransmit its data if an ACK or NAK is not received within a certain period of time. Although the routines shown here were written with simplicity and minimal software in mind, the reader is encouraged to add this feature.
The protocol presented here is computer independent and could just as well be implemented in the machine language of any microprocessor. As long as there is agreement on the electrical interface and on the data-transfer protocol, a computer can pass data of any kind to any other computer. »
Software to display solid objects without hidden lines and surfaces.
[author : Franklin C Crow] #Listing #Pascal #Graphics
Extract : « [...] Listing 1 contains a complete Pascal program that incorporates the individual graphics procedures presented in Part 1. I have used this program with the Heath/Zenith H-19 video terminal (which has limited semigraphics) and the UCSD (University of California, San Diego) Pascal system. I have also used it (very satisfactorily) with a 500-line raster graphics display and a Pascal interpreter running under the UNIX operating system on a DEC (Digital Equipment Corporation) VAX 11/780 computer.
The program includes facilities for all of the basic functions necessary for three-dimensional representation :
• acquisition of machine-readable data
• transformation to the proper perspective
• scaling
• elimination of hidden lines and faces [...]
»
Designing and implementing breadboard circuits is greatly eased with the use of these standardized modules.
[author : Roger J Combs and Paul Field] #Algorithm #Electronic #Interface #Listing #Asssembly
Extract : « Often, microcomputer interfacing is a simple task requiring only a basic knowledge of digital electronics. The availability of breadboarding sockets has made building and testing of digital electronics circuits relatively easy. (Breadboard sockets considered here are the E & L Instruments SK-10 and the AP Products Super Strip.) The ease of digital-circuit testing with breadboards can be extended to microcomputer interfacing by use of functional modules which plug into these breadboards. We call these modules PADDLEs (Peripheral Analog/Digital Device-Logic Extensions).
The various PADDLE modules perform the following functions: address decoding for device selection, D/A (digital-to-analog) conversion, A/D (analog-to-digital) conversion, displaying data, and debouncing switches. Once you have built these circuits in modular form, you will not have to build them from scratch for every breadboard project, and you will not have to use valuable breadboard space that could otherwise be delegated to the project at hand.
It is best to avoid constructing modules so complex that their use becomes cumbersome and their utility limited. For this reason, we shall consider building PADDLEs to perform only those functions which are often called for in digital circuits and which are easily integrated into prototype interface circuitry.
We have found a minimum configuration of five PADDLEs most useful both for interfacing projects and for instruction. These consist of (1) a set of three switchdebouncing circuits, (2) a set of eight logic switches having a latched-pulse output for interrupt generation, (3) a dual seven-segment display, (4) an A/D-D/A converter and comparator for either analog-to-digital or digital-toanalog conversion, and (5) a device decoder capable of generating eight unique outputs from an 8-bit input.
A single 8-bit address decoder PADDLE can be used to select devices, provided the microcomputer uses accumulator I/O (input/output). In order to decode a 16-bit memory address, two decoder PADDLEs would be necessary. Though the PADDLEs can be used with other microprocessors, our focus is on the 8080 family. In the following text we consider each of these PADDLEs in terms of function and design. [...] »
[author : Delmar Searls] #ComputerDesktop #Review
Extract : « The MicroAce is a small, Z80-based microcomputer in kit form. When completed it measures 23.2 cm by 18.8 cm by 4.1 cm (9 1/8 inches deep, 7 3/8 inches wide, and 1 5/8 inches high). It features an integer BASIC in ROM (readonly memory), touch-sensitive keyboard input, cassette I/O (input/output), and video output through an onboard UHF modulator. The video display consists of 24 lines of 32 alphanumeric and graphics characters.
The kit comes in two forms, depending on the amount of user-programmable memory purchased. For $149 (ineluding shipping) you get a unit with 1 K bytes of programmable memory, expandable to a maximum of 2 K bytes with the purchase of an upgrade kit for $29. You can save $9 by buying the second version of the kit for $169.
Depending on the sources available, you can save even more by buying the 1 K-byte kit and purchasing the extra components from local or mail retailers. You would need to buy three integrated-circuit sockets, two memory circuits, a 74LS32 integrated circuit, and one capacitor.
If my experience is typical, you can expect to wait about a month for your MicroAce to arrive if you mail your order; less if you order by phone. [...]
the MicroAce is essentially the kit version of the Sinclair ZX80, which is made in England [...] »
[author : John Lehman] #Software #Review #Encoding
Extract : « In the "old" days of personal computing (ie: five years ago), the transfer of programs or data between large and small computers was not a major problem. You simply turned on the paper-tape punch in your Teletype ASR33 terminal and listed the program on the source computer. You then took the paper tape to the second computer, inserted it in the paper-tape reader, and read it in. This was slow, noisy, and did not encourage transfer of long programs, which microprocessor-based computers didn't have enough memory to run anyway.
The situation has changed quite a bit. Small computers are no longer mere experimenter's toys, but serious tools for science and business. Instead of being programmed only in machine language or BASIC, they are now programmed in FORTRAN, Pascal, PL/I, COBOL, and many other popular high-level languages. The fact that small machines can now run the same programs as the larger ones has increased the demand for program transfer between machines. For example, it is not uncommon for me to take a 1000-line FORTRAN program from a large timesharing system and run it (virtually unchanged) on my CP/M system. However, a program of that size is too large to dump to paper tape, even if any of the systems I use still had a Teletype terminal with a papertape reader.
This is where Microtech Exports' Reformatter for floppy disks comes in. IBM originally intended the floppy disk to be a replacement for punched-card data entry. The IBM 3740 Data-Entry System Basic Exchange Format (BEF) is a fixed-field, uncomplicated standard for data transfer between IBM equipment. Many machines that use floppy disks do not use BEF for normal use, because it is inefficient. However, almost all IBM equipment can use it to transfer files. Reformatter allows the transfer of data both ways between CP/M and BEF files.
Reformatter is a useful product for anyone who wants to take programs developed on one system and run them on another. For example, I have put a number of published FORTRAN packages onto my CP/M system. Going the other way, to avoid being charged for development time, I use my system to develop FORTRAN and PL/I programs to run on larger systems [...] »
[author : Gregg Williams] #Listing #APL #Review
Extract : « When BYTE magazine published its APL language issue in August 1977, APL was far beyond the capabilities of any microcomputer. To show how rapidly things have evolved since then, the Digital Group, in that same issue, was advertising a 32 K-byte static-memory board for $995, and another advertisement began, "Introducing Apple II...." Times have changed: 32 K bytes of dynamic memory, now commonly used in several major microcomputer lines, can be bought for less than $120 — and Apple is one of the oldest computer lines in the industry.
Times have changed for APL as well: several companies have announced software and hardware supporting this unique programming language. This review compares three versions of APL: Softronics APL, Ramware APL80 for the Radio Shack TRS-80, and Vanguard APL/V80. [...] »
MicroShakespeare Revisited or Kilobard
An ADM-3 Emulator for the Hazeltine 1500
Challenger Writes on Comprint
On the Use of Fourier Transforms to Explore Biological Rhythms
#Book
Advanced Micro Devices Condensed Catalog. Sunnyvale CA: Advanced Micro Devices Inc, 1981; 18 by 24.5 cm, 147 pages, softcover, no ISBN, free of charge.
COBOL, A Vehicle for Information Systems, Robert T Grauer. Englewood Cliffs NJ: Prentice-Hall Inc, 1981; 19 by 24.5 cm, 432 pages, hardcover, ISBN 0-13-139709-5, $18.95.
The Creative Kid's Guide to Home Computers, Fred D'Ignazio. Garden City NY: Doubleday & Company Inc, 1981; 16 by 24 cm, 130 pages, hardcover, ISBN 0-38515313-9, $9.95.
Digital Electronics Troubleshooting, Joseph J Carr. Blue Ridge Summit PA; Tab Books Inc, 1981; 13 by 21 cm, 350 pages, softcover, ISBN 0-8306-1250-5, $9.95; hardcover, ISBN 0-83069677-6, $16.95.
The Effective EDP Manager, Michael R Frank. New York: AMACOM, 1980; 16 by 23.5 cm, 197 pages, hardcover, ISBN 0-8144-5635-9, $17.95.
Experiments in Amplifiers, Filters, Oscillators, and Generators, Morris Tischler. New York: McGraw-Hill Book Company, Gregg Division, 1981; 22 by 28 cm, 170 pages, softcover, ISBN 0-07-064780-1, $6.95.
Experiments in General and Biomedical Instrumentation, Morris Tischler. New York: McGraw-Hill Book Company, Gregg Division, 1981; 22 by 28 cm, 201 pages, softcover, ISBN 0-07064781-X, $8.95.
Experiments in Telecommunications, Morris Tischler. New York: McGraw-Hill Book Company, Gregg Division, 1981; 22 by 28 cm, 186 pages, softcover, ISBN 0-07-064782-8, $7.95.
The FORTRAN Cookbook, Thomas P Dence. Blue Ridge Summit PA: Tab Books Inc, 1980; 13 by 21 cm, 334 pages, softcover, ISBN 0-8306-1187-8, $8.95; hardcover, ISBN 0-8306-9914-7, $14.95.
Guide to Microcomputers, Franz J Fredericks. Washington DC: Association for Educational Communications and Technology, 1980; 15.5 by 23 cm, 152 pages, softcover, ISBN 0-89240-038-2, $11.50.
How to Build Your Own Working Microcomputer, Charles K Adams. Blue Ridge Summit PA: Tab Books Inc, 1980; 13 by 21 cm, 308 pages, softcover, ISBN 0-83061200-9, $9.95; hardcover, ISBN 0-8306-9684-9, $16.95.
Introduction to Computer Design and Implementation, S Imtiaz and Kwok T Fung. Rockville MD: Computer Science Press Inc, 1981; 16 by 23.5 cm, 271 pages, hardcover, ISBN 0-914894-11-0, $19.95.
Introduction to Computers and Data Processing, Gary B Shelly and Thomas J Cashman. Fullerton CA: Anaheim Publishing, 1980; 21 by 27 cm, 498 pages, softcover, ISBN 0-88236-115-3, $15.95.
Accompanying the textbook are a Teacher's Guide and Answer Manual, Test Bank, and transparency masters. Student Workbook and Study Guide for above, 21 by 27 cm, 247 pages, softcover, ISBN 0-88236-116-3, $5.95.
Introductory Structured COBOL Programming, Gary S Popkin. New York: Van Nostrand Reinhold Company, 1981; 19.5 by 24 cm, 471 pages, harcover, ISBN 0-442-26771-1, $18.95.
The MC6809 Cookbook, Carl D Warren. Blue Ridge Summit PA: Tab Books Inc, 1981; 13 by 21 cm, 176 pages, softcover, ISBN 0-83061209-2, $6.95; hardcover, ISBN 0-8306-9683-0, $11.95.
Microprocessor Background for Management Personnel, James Arlin Cooper. Englewood Cliffs NJ: Prentice-Hall Inc, 1981; 16 by 23.5 cm, 163 pages, hardcover, ISBN 0-13-580829-4, $14.95.
Microcomputer Interfacing Handbook: A/D & D/A, Joseph J Carr. Blue Ridge Summit PA: Tab Books Inc, 1980; 13 by 21 cm, 350 pages, softcover, ISBN 0-83061271-8, $8.95; hardcover, ISBN 0-8306-9704-7, $14.95.
Motorola Optoelectronic Device Data, Motorola Technical Information Center. Phoenix AZ: Motorola Inc, 1980; 17.5 by 23.5 cm, 302 pages, softcover, no ISBN, $3.25.
Operating Systems, Harold Lorin and Harvey M Deitel. Reading MA: Addison-Wesley Publishing, 1981; 17 by 24 cm, 378 pages, hardcover, ISBN 0-201-14464-6, $19.95.
People and Project Management, Rob Thomsett. New York: Yourdon Press, 1980; 15 by 23 cm, 106 pages, softcover, ISBN 0-91707221-9, $10.50.
PET/CBM Personal Computer Guide, Second Edition, A Osborne and Carrol S Donahue. Berkeley CA: Osborne/McGraw-Hill, 1980; 16.5 by 23.5 cm, 501 pages, softcover, ISBN 0-93198855-1, $15.
The PLL Synthesizer Cookbook, Harold Kinley. Blue Ridge Summit PA: Tab Books Inc, 1980; 13 by 21 cm, 279 pages, softcover, ISBN 0-8306-1243-2, $7.95; hardcover, ISBN 0-8306-9707-1, $13.95.