[editor : Carl T. Helmers Jr.] [publisher : Virginia Peschke] [art : Wai Chiu Li, Ellen Shamonsky, Dorothy Shamonsky] [cover : Robert Tinney] #Magazine
#Abstract
This month's cover is based on Kurt J Schmucker and Robert M Tarr's article, The Computers Of Star Trek (page 12). It is an appropriate topic for computer people, many of whom are science fiction aficionados, Trekkies, and users of the Force. The theme, interpreted by artist Robert Tinney, is: What would happen if the crew of the Enterprise visited a holographic museum of ancient technology that had an exhibit devoted to personal computing, circa 1977? Robert used Willard Nico and his 8080 based computer system with dual floppy disk, video terminal and DECwriter as models for the diorama. The cassette recorder, made obsolete by the disk drives, is shown unused.
The floppy disk can give your computer the extra storage power needed for many applications such as advanced music and voice synthesis, artificial intelligence and robotics. Find out more about the ubiquitous floppy in Ira Rampil's A Floppy Disk Tutorial.
Microprocessor operation code structure is sometimes incompletely documented, as is demonstrated in two articles: Gerry Wheeler's commentary on Undocumented M6800 Instructions and H T Gordon's commentary on The XF and X7 Instructions of the MOS Technology 6502. The effects of the undocumented op codes are interesting, even if you don't want to use them as part of normal coding practices.
In a neat combination of tutorial and practical information, Bill Struve's article A $19 Music Interface (and Some Music Theory for Computer Nuts) provides a way to generate square wave musical tones for four channels as a result of an investigation of the theory of harmony.
Transform your computer into a powerful 8 channel 3½ digit voltmeter. Steve Ciarcia shows you how in the latest installment of Ciarcia's Circuit Cellar. Let a BASIC program do all your calculations and get results that compare favorably with expensive digital voltmeters. Read On a Test Equipment Diet? Try an 8 Channel DVM Cocktail!
Once upon a time, Jack and the Machine Talked; now Jack and his friendly 6800 have moved onto better things like debugging the programs issued by the assembler described in an earlier article. Turn to Jack and the Machine Debug by Grappel and Hemenway for a humorous (but tutorial) account of the development of a program called Tracer 6800 which uses software breakpoint techniques to provide an instruction by instruction machine code execution trace on a terminal or hard copy device.
To write well conceived programs easily, you have to design them in a disciplined and structured fashion. David A Higgins begins describing one useful method in the article on Structured Programming with Warnier-Orr Diagrams, Part 1: Design Methodology.
As a second installment in a series of articles, Stephen P Smith turns to the problems of motion in which effects of the motion's current state feed back into the model. Turn to Simulation of Motion: An Automobile Suspension for a more detailed model which features damping (shock absorbers) and bounce (springs) in response to external conditions (bumps in a road).
The use of interrupts allows you to keep track of several devices at the same time. If you are not familiar with the use of interrupts read Robert Wier's article, A Little Bit on Interrupts.
Constructing and interfacing a PolyMorphics Video Interface is described by Wayne Wenzlaff. Wayne describes his experiences with his video interface and how he modified a television set for use as a monitor in Using the PolyMorphics Video Interface.
Multiprogramming allows your computer to seemingly perform several tasks at the same time. It can save processor time by always having a program executing while another program waits for some type of input. Prof Irwin Lahasky's article, Multiprogramming Simplified, explains the basics of multiprogramming.
Many experimenters, including the editors of this magazine, have discovered the real advantages of purchasing used but eminently usable gear. Sol Libes gives valuable pointers to frugal hackers in Where to Get Bargains in Used Computer Equipment.
As personal computer users acquire more and more memory for their processors, thoughts can be turned to more powerful languages for the expression of programs. Gary McGath feels that small computer users should have nonnumeric, symbolic data manipulation abilities in their langusages. In A Look at LISP, Gary describes one of the candidates for such symbolic manipulations in the small computer.
Relative addressing allows jumps within a program to be made independent of the location of the program in memory address space. But what about such position independent code in processors like the 8080 which have no relative branch addressing? Read James P Gaskell's Relative Addressing for the 8080 and learn how to simulate this feature for the 8080.
Handshaking is the process of coordinating two asynchronous processes, such as serial communication operations and a program. In a short article, Thomas McGahee shows how to Save Software: Use a UART for Serial IO.
What do you do if you're an oceanographer and want a microprocessor to help collect data at the bottom of the sea for eight weeks? One solution is to use a watertight titanium sphere and a battery powered processor. Henry Lahore shows how he did it in A User's Report on Intercept Jr.
[author : Carl Helmers] #Edito
Extract : « One of the most interesting phenomena in the academic world of computer science of late is the language PASCAL. This language is the subject of much intense activity, and is rapidly gaining acceptance as the language of choice for training and illustration of computer concepts to new students of the field. Characteristic of this phenomenon is the existence of on the order of 100 different implementations of the language for various computers and a very active "PASCAL User's Group."
PASCAL began in the late 1960s as a tutorial experiment of Professor Niklaus Wirth: a method of teaching the concepts of programming in a systematic fashion using a consistent and highly structured program representation. Historically, PASCAL has antecedents in the ALGOL language but with the addition of concepts such as record and file structures which were missing in ALGOL'S definition. The following passage by Professor Wirth gives the essence of PASCAL'S purposes...
The development of the language PASCAL is based on two principal aims. The first is to make available a language suitable to teach programming as a system- atic discipline based on certain fundamental concepts clearly and naturally reflected by the language. The second Is to develop implementations of this language which are both reliable and efficient on presently available computers. [...] »
[theme : Music Systems] [author : Struve] #Electronic #Algorithm #Audio
Extract : « "It's all Relative." So it is in physics as it was in music. About 600 BC Pythagoras discovered that strings under equal tension sounded harmonious if their lengths were in ratios of small whole numbers like 2/1, 3/2, 4/3, 5/3, etc. Many experiments throughout the world since that time have told us that in music, it is the ratios of the frequencies of the notes that count, not the absolute frequencies. It has only been in recent times that there has been international agreement that A above middle C is 440 Hz. Musicians call the "distance" between two notes an interval. Musical intervals are actually the ratios of the frequencies of two notes, and are so important in music that many of the ratios, or intervals, have names. For example, 2/1 is called the octave, 3/2 is called a perfect fifth, 4/3 is called a perfect fourth, 5/3 is called the major sixth, etc. [...] »
[theme : Test Equipment] [author : Ciarcia] #Electronic #Listing #Assembly #BASIC #Algorithm #Diagnostic
Extract : « About three weeks ago, I was testing a new 8 bit analog to digital converter which I had just built for an upcoming magazine article: this one, in fact. It was a high speed successive approximation analog to digital converter which performed 200,000 conversions a second, and it worked fine. I had intended to use it for some speech digitization experiments. During the testing phase, however, I became exasperated from continually moving my digital voltmeter (DVM) probes around the circuit to take readings and having to stop to make the same calculations repeatedly. To speed the process up, I wrote a BASIC program which would do the number crunching, provided I typed in the voltage values correctly. More often, though, all I wanted was to monitor a few voltage levels simultaneously. [...] »
[theme : Hardware] [author : Wenzlaff] #Electronic #Interface #Display
Extract : « I recently purchased one of the PolyMorphic Video Terminal Interface units from a local computer store. After opening the plastic bags included with the kit and checking the parts against the packing list, I sat down to the task of assembling the kit. The instructions looked simple enough, the parts were all there, and there was a parts diagram, except I couldn't read it.
Well, being no stranger to electronics, I armed myself with a pen, the schematic, and a bottle of Dr Pepper. (The Dr Pepper is important!) Some four hours and many bottles later, my board was complete. Tracing circuit diagrams is OK if you have a lot of time and know your electronics, but there have to be a lot of nonelectronics people who bought this board and had the same problem. The more I thought about it, the more curious I became. A call to PolyMorphics gave me the answer. [...] »
[theme : Interfacing] [author : McGahee] #Electronic #Listing #Assembly #Interface
Extract : « In my opinion suppliers of software for microprocessors should refrain from writing their software for serial IO. Before you beat me over the head with your expensive Teletype, let me explain myself further.
Much of the software for serial devices such as Teletypes is written in such a way that the software itself provides the parallel to serial and serial to parallel conversion and timing necessary to allow the Teletype to communicate with the computer. [A prime example is the Motorola 6800's MIKBUG program.] This may save the price of a UART, but it also ties down a complicated memory program to emulate a UART. I propose that instead of writing the software for a serial device, all software be written for parallel IO. If provisions are made for the "handshaking" status information, then the parallel information can be easily converted to serial information if desired by using a UART. With proper handshaking and a UART, the speed of serial IO can be made independent of the software, allowing the user to choose 110 bps or any other desired speed as presented to the UART clock inputs. All the user has to do is provide the desired clock rate. Further, such parallel handshaking would allow parallel devices such as the SwTPC TVT II to be used at speeds of several hundred characters per second instead of 10 per second. [...] »
[theme : Speculation] [author : Schmucker-Tarr] #Anticipation
Extract : « The world of Star Trek represents many things to many people. To the majority it is an escape into a time when man is once again challenged by the vastness of his known universe and can assume the now lost role of the explorer of unknown territories with their inherent, but also unknown, dangers. To others it is the tale of man's final triumph over his own inhumanity; a world where race (human, humanoid or other), color and background are not points of contention and disunity, but are rather different reference points from which the society can grow together in peace. In this case "infinite diversity in infinite combinations" yields a whole which is greater than the sum of its parts. To yet others it is a time when science and the mysteries of nature are more clearly understood, an understanding which brings forth a technology beyond one's wildest imagination. [...] »
[theme : Floppy Disks] [author : Rampil] #Initiation #Storage
Extract : « What peripheral device most often defines the home hacker's ultimate system? It is, of course, the floppy disk. But what are these devices that seem to have the ability to transform the smallest microprocessor system into a full-fledged computer? How do they work, and are they worth the cost? I slowly uncovered the answers to these questions as I sought to upgrade my system by adding floppies.
Basically, the floppy disk is the little cousin of IBM and other manufacturers' huge hard disk drives. As far as any computer is concerned, the floppy is a real disk drive. The differences between it and (for example) an IBM 3330 disk are mainly specifications of speed and storage capacity. Floppies, like other disks, are relatively fast random access memories. If the last three words sound familiar, it should be no surprise. Semiconductor random access memories store (if programmable) and read data by address, with a unit quantity of data (typically one bit) at each address. The data at any address can be quickly and easily changed without disturbing the contents of any other address. [...] »
[theme : Software Techniques] [author : Grappel-Hemenway] #Experience #Programming
Extract : « "It has to be done by now. That subroutine can't take much more than a few milliseconds per entry, and there aren't many entries. I'll give it a few more seconds." Jack sat nervously puffing his cigar. "It can't take this long," said Jack, his patience exhausted. He punched the RESET button.
"What do you want now, Jack? Here I am, faithfully running your program, and you interrupt me. Find a mistake in your code?" [...] »
[theme : Software] [author : Higgins] #Method
Extract : « Any successful program design methodology must be able to do several things: it must produce consistent, low cost, high reliability results; it must produce them quickly, while still allowing for easy maintenance later and, it must be simple enough to allow anyone (and I do mean anyone) to use it. Warnier-Orr diagrams (after Jean- Dominique Warnier in France and Kenneth T Orr in the United States) satisfy all of the above requirements with an added bonus; they produce structured programs that nearly always run correctly at the first effective trial. They allow people to produce superprograms without being superprogrammers.
The purpose of this article is to show how to develop and code a structured program using the Warnier-Orr methodology from start to finish. The technique is a straight- forward approach to producing correct programs. It is just as valid and successful for personal microcomputer applications as it is for megacomputer applications in the world of business, science and industry. I feel that this method of designing a program is one of the most advanced state of the art software development techniques in existence today. It is a concise, step by step method with predictable results. [...] »
[theme : Modelling] [author : Smith] #Listing #BASIC #GameRacingPiloting #Simulation
Extract : « Have you ever taken your system out to a club meeting or demonstration, only to find that something is ruining your car's handling? Was it because of the heavy power supply in the back seat? Would heavy duty shock absorbers help? You can answer these questions using your personal computer and the simulation techniques found here. [...] »
[theme : Tutorial] [author : Wier] #Microprocessor #OperatingSystem #Book
Extract : « While talking with fellow enthusiasts attending meetings of computer clubs, there seem to be several aspects of small computer systems which are particularly confusing to newcomers to the hobby. One of these is interrupts. This article explains how the mechanisms of interrupts work, and what can be done with them in a personal computer system.
History
When computers first came into widespread use, they ran primarily on card or tape batch principles. The operator had long lists of instructions which told him which card decks to use to run which jobs. Each job had to be set up independently, which was okay as long as this setup time was short in relation to the amount of time each job ran. A desired goal was to keep the machine running as much as possible. As technology advanced and job run times became shorter, setup time became a significant fraction of the total job run time. It was clear that if the machine could take over some of the chores of the operator, but at machine speed, the utilization of the system could be increased. Accounting and setup procedures could be accomplished by programs stored inside the machine, and then the computer could request the operator to perform only those duties that actually required human intervention (such as mounting a disk pack). Thus programs called "operating systems" came into use. [...]
[...] REFERENCES
1. Intel 8080 Microcomputer Systems User's Manual, Intel Corporation, Santa Clara CA, July 1975.
2. M6800 Systems Reference and Data Sheets, Motorola Semiconductor Products Inc, Phoenix AZ.
3. MCS6500 Microcomputer Family Programming Manual, MOS Technology, Norristown, PA. »
[theme : Software] [author : Lahasky] #OperatingSystem
Extract : « Multiprogramming is the ability of the computer's operating system to handle and execute several programs concurrently. In this article, I've set out to explain in a simple fashion the concept of how the operating system of a computer handles more than one job (program) at one time. Only the essential elements are included in this simple model, which is based on a "typical" large scale computer's programming environment. The same general concepts are of course applicable as well to the much smaller memory regions of the typical personal computer. [...] »
[theme : Hardware] [author : Libes] #TradeAndLaws
Extract : « Once they have their computers up and running, computer experimenters start hunting around for peripherals. They look for things like Teletypes (usually ASR-33s), video terminals, printers, paper tape readers and punches, etc. The big problem here is cost. In fact, those electronic and electromechanical IO gadgets can often cost several times the price of the processor itself. New video terminals can cost you $1500 and up. Printers can cost as much as $2000. What can a hobbyist do to save money? One way is to buy used equipment. The question is, where do you find it? [...] »
[theme : Software] [author : McGath] #Lisp #Programming
Extract : « Today BASIC is the universal language of the microcomputer hobby. It is easy to learn, can run in a small amount of memory, and provides a common ground for people with different processors. But many microcomputers are no longer so "micro," and they need a more powerful language to use their full capabilities.
What properties should this language have? It should work well interactively, since most hobbyists use their machines that way. It should be simple in form, so that implementing and understanding it are easy. It should be good at handling non-numeric data, since most computer hobbyists aren't interested in "computing" in the literal sense (ie: numerical calculations) as much as in graphics, information management and other such applications. It should run efficiently. And it should make programming easy.
A prime candidate, on all but one of these counts, is LISP. LISP was developed at MIT in the early 1960s; it has never attained widespread use, perhaps because of its unusual syntax, or else because it tends to run slowly. It is oriented not toward production work, but toward program development and experimentation. [...] »
[theme : Software] [author : Gaskell] #Microprocessor #Listing #Assembly #Programming
Extract : « An essential characteristic of any computer is the ability to branch as a result of a decision. These jumps, or branches, can be done with target addresses determined in a number of ways. Examples include absolute (direct) jumps, indirect jumps, indexed jumps and relative jumps.
The instruction set for the 8080 processor includes explicit absolute jumps, both unconditional and conditional. It also has one indexed jump (although it allows for no offset). Unfortunately, the instruction set does not include any relative jump instructions, instructions which are necessary if position independent programming is to be accomplished. However, a routine can be used that simulates the desired result, thus enhancing the 8080's usefulness to programmers. [...] »
[theme : Applications] [author : Lahore] #Experience #Computer #DataAcquisition #Sciences
Extract : « In August 1976 Intersil Inc brought out Intercept Jr, a battery operated microcomputer system using Intersil's IM-6100 12 bit CMOS microprocessor, which has been described in the May and June 1976 issues of BYTE and the June 1976 IEEE Proceedings.
At the time, we in the oceanography department at the University of Washington needed a microcomputer for underwater data acquisition. This required a battery operated system which would have to operate for several months. We had to choose between the Intercept Jr or the RCA COSMAC processor, the only battery powered systems available at the time. Because the Intersil processor recognizes the instruction set of the Digital Equipment Corporation PDP-8E minicomputer, and because we had cross assemblers and programmers available on campus who were familiar with the PDP-8 language, we chose the Intersil product. [...] »
#Book
Extract : « Principles of Interactive Computer Graphics by William M Newman and Robert F Sproull, McGraw-Hill, New York. $22.50. [...] »
#Association