[editor : Carl T. Helmers Jr.] [publisher : Virginia Peschke, Manfred Peschke] [art : Wai Chiu Li, Ellen Shamonsky, Dorothy Shamonsky] [cover : Bruce Holloway] [nota bene : Some missing pages in archive.org. Full version in vintageapple.org] #Magazine
#Abstract
In this issue, author Steve Ciarcia begins what we expect to become a regular feature in BYTE: Ciarcia's Circuit Cellar. Steve, a senior engineering consultant to the aerospace industry by profession, is a rare combination of writer and tinkerer. The conceptual model he brings to his interactive column format is that of the late C L Stong's stewardship of "The Amateur Scientist" in Scientific American, but with an emphasis on hardware and software combinations to accomplish interesting applications of personal computing systems. Steve welcomes feedback from readers ...CH
Games and models which employ moving objects require some attention to details of motion as simulated by a computer program. Beginning a series of articles on the subject of moving objects, Stephen P Smith's Simulation of Motion : An Improved Lunar Lander Algorithm shows how a real time game can incorporate models of motion in more than one dimension.
Donald T Piele shows that a computer fair doesn't have to be big to be good . A Minicomputer Fair: Tiny and Personal describes the University of Wisconsin's efforts to produce their own micro extravaganza, which drew over 700 attendees. Readers may get some ideas about putting on shows of their own based on Professor Piele's experiences.
What might not be appreciated by the neophyte is the fact that an interrupt driven clock suggests other uses besides keeping time. In M F Smith's article on Using Interrupts for Real Time Clocks you 'll find a simple timekeeping algorithm, and a sketch of how it can be extended to share processor time between two different processes.
Do you occasionally find incorrect data in your computer when you know you entered the correct information and processed it with a reliable program? Does your computer do strange things every time the washing machine or furnace turns on? Perhaps your problem is voltage transients. John McCain writes about Spikes: Pesky Voltage Transients and How to Minimize Their Effects.
If you want to post a calendar of events in your computer's memory with a resolution of 1 second, a mere three integrated circuits added to an existing LSI digital clock can turn it into a source of time information for your computer. Use Robert Grappel 's article in this issue to find an answer to the metaphorical question: "Does Anybody Know What Time It Is ?"
Any regular source of interrupts can be used as the key element in a simple real time clock for the typical personal computer. James R Sneed shows how to create such an interrupt source, then program a 6502 to generate internal variables for hours, minutes, seconds and 1/15th seconds of the day in his article on Adding an Interrupt Driven Real Time Clock.
If you do a lot of mathematical calculations on your microcomputer, you'll enjoy reading Floating Point 'Arithmetic by Burt Hashizume. Find out how to add an economical floating point package to your system and improve your number crunching facilities.
An excellent way to learn about computers is to build one yourself. Hilary D Jones shows that this is not such a terrifying task. Read Building a Computer From Scratch and find out how to construct a working (albeit limited) computer for under $70 (plus the price of a power supply).
Occasionally readers ask for detail plans of computer systems. David Brader, a BYTE reader from Electric City WA, has implemented an excellent piece of homebrew craftsmanship in his Kompuutar system based on the MOS Technology 6502 processor. In this issue, we provide David's complete design for the central processor, control panel interface, and serial terminal interface of a general purpose computer.
Frequency counters are useful tools for a variety of applications. Perry Lynne shows you how to add one to your microcomputer in Implementing an LSI Frequency Counter. His design takes advantage of the Intel 8253 programmable interval timer (as well as the power of the microprocessor) to produce a design that is both accurate and economical.
How do you make an 8 bit machine emulate a more comprehensive design? In his article, SWEET16: The 6502 Dream Machine, Stephen Wozniak details the design and functions of a low level interpreter for 16 bit operations which extend the functions of the more limited 8 bit 6502 processor.
Continuing the theme of real time and how to keep track of it, G A R Trollope provides an example of the interrupt driven approach, implemented through the IRQ interrupt line of a 6800 processor with a PIA port. Do You Need Real Time? If so, turn to th is article.
The game of NIM is well-known in the annals of computer lore, but many people have had no contact with it. Irwin Doliner presents us with a version of the game and supplies us with the design theory behind it in his article, NIMBLE: The Ultimate NIM?
[author : Carl Helmers] #Edito
Extract : « On August 16 1977 I received one of those refreshing and intoxicating articles (or rather group of articles) which makes the combined intellectual and emotional joys of creating a magazine once a month rise to new heights. This group of articles is a basic background tutorial on biological inputs to the field of robotics and artificial intelligence, written for the personal computing experimenter by Ernest W Kent, a professor in the department of psychology of the University of Illinois at Chicago Circle. It is one of those articles, like Ralph Hollis' article on NEWT in the June 1977 BYTE, which gets instant high priority due to the subject matter and style of presentation. (Readers should see the beginning of the series in early 1978.)
I call the twin subjects of robotics and artificial intelligence "hot" ideas for BYTE based on reader interest as expressed in the BOMB poll's responses to Ralph Hollis' article on NEWT and Mike Wimble's articles (among others) on various artificial intelligence concepts. Inspired by receipt of Dr Kent's articles, the theme of this editorial is the concept of smart machines and related robotic mechanisms as a fertile field for experimentation with design and implementation. What are the categories and classes of experimentation which are relevant to artificial intelligence and robot design? Why are we (experimenters all) so fascinated by the simulation of life? What are the topics of study needed to become "the complete robotics experimenter?" What will we see over the course of the next decade or so, as personal computers become the refined personal software development systems needed to support private robotics research? [...] »
[theme : Hardware] [author : Ciarcia] #Electronic #Memory #Listing #Assembly
Extract : « I don't want to get into a fight over which microprocessor chip is better. They all have their favorable and unfavorable features. But, if you look a little closer, you may find that some of these extra features can be added with very little expense.
I was speaking with a fellow computer nut recently, and he was arguing about the merits of the 6800 versus the 8080. I really didn't care to continue the conversation nor to justify why I had an 8080 and Z-80. But, when he said that one reason was that the 6800 had memory mapped IO and the 8080 didn't, I knew he didn't know what it was.
This of course made me curious, and I approached a number of 8080 users to ask if they knew what memory mapped IO was. They assured me that they did, and that it was in fact one of the main features of the 6800. But such a feature is hardly exclusive to the 6800!
First of all, memory mapped IO means simply that a portion of memory address space has been reserved for interfacing with external devices. [...] »
[theme : Real Time Techniques] [author : M F Smith] #Electronic #Listing #Assembly #Algorithm #Time #Book
Extract : « We have developed several software timekeeping routines for oceanographic data systems which may be of more general interest. These routines are based upon the Motorola M6800 and have been tested on SwTPC 6800, MITS 680b and Motorola MEK6800D1 evaluation kit systems. The routines require little memory or hardware and do not slow program execution appreciably. Features of the routines are:
• packed BCD storage of time values: days, hours, minutes and seconds.
• little interference with user routines through use of interrupts.
• usable with a wide range of clock frequencies.
• minimal hardware complexity.
• possibility of event scheduling. [...]
[...] REFERENCES
1. Westinghouse Electric Corporation, Electrical Transmission and Distribution Book, East Pittsburgh PA.
2. G J Hahn and F D Martzloff, July 1970, "Surge Voltages in Residental Power Circuits," IEEE Transactions on Power Apparatus and Systems, 89 (6) 1049-1056.
3. General Electric Company, Transient Voltage Suppression Manual , Syracuse NY. »
[theme : Peripherals] [author : Grappel] #Electronic #Listing #Assembly #Time
Extract : « One of the earliest products of LSI technology that filtered down to the hobbyist was the "clock chip." This little "beauty" divided the 60 Hz line signal down to seconds, minutes and hours... and displayed the results on 7 segment LED or other displays. Today these "clocks" come in a great variety of types, sizes and functions. They come tiny for watches. Some have extra timers and alarm capabilities. They are inexpensive, and require little in the way of external circuitry. For long term timing applications, they form an ideal solution for computer experimenters. [...] »
[theme : Real Time Systems] [author : Sneed] #Electronic #Listing #Assembly #Time
Extract : « Whenever a computer is interacting with the real world, either through sensors or actuators, a real time clock can be valuable. Using a real time clock, the computer can run programs at specified times or intervals, or the computer may record the times at which events are sensed.
There are two basic types of real time clocks used in computing systems: the external (hardware) clock and the internal (software) clock. An external clock uses hardware to keep track of time, and periodically or on command transmits the time to the computer. [Robert Grappel's article on page 68 of this issue shows one approach to such a clock...CH/ An internal software clock has hardware which interrupts the computer at regular intervals, and software which keeps track of time by incrementing a register whenever the computer receives a timing interrupt. [...] »
[theme : Software] [author : Hashizume] #Encoding #Algorithm #Mathematics
Extract : « Many computer hobbyists are finding 8 bit integer arithmetic inadequate for a variety of mathematical applications. 16 and even 32 bit fixed point calculations are being used with increasing frequency because of their greater accuracy. However, these techniques are still inherently inadequate for calculations performed over a wide range of numbers.
Using a 16 bit integer format, only numbers from to 65,535 can be represented. Larger or smaller numbers can be represented by moving the implicit radix point, but the range of discrete values still remains constant. The fractional part of the quotient in a division of one large number by another could be lost.
If one could dynamically slide the radix point, the number range would be dramatically increased. Using the same format, very small fractions and very large integers can be represented as floatingpoint numbers. This is made possible by keeping track of the radix point's position separately with an exponent.
Floating Point Formats
There are many ways to represent floating point numbers, but there are only three basic formats; the others are variations. Two of these (the dominant ones in the traditional computer industry) use different binary representations. The third format, the one with the most variations, uses a binary coded decimal (BCD) representation, and is widely used in the electronic calculator and home computer industry. [...] »
[theme : Hardware] [author : Jones] #Electronic #Algorithm #Build
Extract : « With so many excellent microprocessors available today, the experimenter needs a good reason to design and build a personal computer from scratch. That reason will certainly not be one of economy. The best available microprocessors offer so much capability at such a low price that one cannot hope to save money by building a computer from scratch. For many, the reason will simply be the challenge of doing it. For others, the reason will be more practical (perhaps to gain some capability not readily available from an off-the-shelf microprocessor). And for still others, the reason will be to learn more about the techniques of computer design.
While any of these reasons is certainly valid, the design of a computer from the ground plane up is still generally regarded as an art that only the foolhardy would undertake. In reality, though, the job is not nearly as mysterious as it seems. For proof I offer the fact that when I began this project I had no design experience with TTL (or experience with any form of electronics design for that matter). Indeed, I chose this project to learn how to use TTL parts, on the assumption that the microprocessor I planned to buy would eventually become bored talking to my TV set. [...] »
[theme : Hardware] [author : Brader] #Experience #Build #ComputerKit
Extract : « Kaveat Kompuutar
It is with some trepidation that we present the details of the Kompuutar design. The design is complete and comprehensive, but Murphy is addicted to complete and comprehensive designs. Thus we'd like readers to be aware that there is a nonzero probability that errors exist in this magazine representation of author David Brader's design. We suggest that serious homebrewers of Kompuutar treat these pages as a detailed design guide, to be used with the standard design documentation of the chips involved. But as with any road map, do not be afraid to question and verify what you see with your own knowledge and experience.
David Brader reports that a local friend of his has built a second Kompuutar from the same set of blueprints which were the source of the circuit in this article. The experiences of the second builder were reflected in his corrections and changes to the drawings which are part of the normal "author proof" cycle applied to articles. Based on our own experiences with microprocessors, this report from David, and a tremendous amount of "desk debugging" of the article, we believe the information presented here is complete and buildable. However we highly recommend that readers who attempt to duplicate the design have sufficient experience with digital hardware and logic so that detailed understanding of its operation is possible. This is not a novice's project. [...] »
[theme : Hardware] [author : Lynne] #Electronic
Extract : « The new generation of programmable large scale integration (LSI) IO devices is proving to be as exciting as the microprocessors to which they are connected. With the aid of these LSI devices, complete functions can be added to a microprocessor system with only a few integrated circuits. One example of an LSI device with this kind of capability is the 8253 programmable interval timer which can be easily interfaced to almost any microprocessor. Using this device, a complete frequency counter can be constructed with just a couple of integrated circuits. [...] »
[theme : Software] [author : Wozniak] #Listing #Assembly #Simulation
Extract : « While writing Apple BASIC for a 6502 microprocessor I repeatedly encountered a variant of Murphy's Law. Briefly stated, any routine operating on 16 bit data will require at least twice the code that it should. Programs making extensive use of 16 bit pointers (such as compilers, editors and assemblers) are included in this category. In my case, even the addition of a few double byte instructions to the 6502 would have only slightly alleviated the problem. What I really needed was a hybrid of the MOS Technology 6502 and RCA 1800 architectures, a powerful 8 bit data handler complemented by an easy to use processor with an abundance of 16 bit registers and excellent pointer capability. My solution was to implement a nonexistent 16 bit "metaprocessor" in software, interpreter style, which I call SWEET16. This metaprocessor was sketched at the end of my article in May 1977 BYTE, and the purpose of this article is to fill in the details of SWEET16. [...] »
[theme : Real Time Systems] [author : Trollope] #Electronic #Listing #Assembly #Time
Extract : « There are a number of ways of implementing a real time clock for a microcomputer system. With the many different clock chips available on the market, it would seem natural to try to interface to one of these. If the requirements set for a real time clock design are: the computer should be able to read the clock when necessary, the clock should keep time while other programs are executing, and one should be able to set the clock by computer commands, then use of external hardware can be a most difficult challenge. Taking a software approach using minimal hardware can be a most attractive alternative. In the implementation described here, the computer itself counts 1/10 second pulses, derived from the 50/60 Hz line, in four memory bytes, one each for hours, minutes, seconds and deciseconds. Setting the time becomes a process of writing the correct time to memory; reading the time, one of reading memory. [...] »
[theme : Modelling] [author : S P Smith] #Listing #BASIC #GameRacingPiloting #Simulation
Extract : « One of the most delightful applications for personal computers is games, not just playing them, but creating them. If you are like most enthusiasts, you will have begun with random number games like blackjack, but sooner or later you will want to work with games involving moving objects. To describe that motion using a microcomputer you will need to use a form of simulation. The simulation could involve detailed mathematical models solved with elegant numerical techniques. [...] »
[theme : Computer Fairs] [author : Piele] #Event
Extract : « If you start planning in April for a computer fair in June, you are probably either a novice, mini-minded, crazy, or all of the above. But sometimes a bit of insanity is just what is needed to make one jump in and do something new. Uncertain of what would happen, we plowed ahead with our fair, and we're glad we did.
The "us" I am referring to is the Center for the Application of Computers, a small group of faculty members at the University of Wisconsin-Parkside who share a common interest in computers and their many uses. We decided, rather late in the year, that an excellent way to proselytize our colleagues and generate interest among students and the general public would be to sponsor a computer fair. Our broad objective was to provide a forum for the rapidly developing field of personal computing with all its associated implications and applications. [...] »
[theme : Hardware] [author : McCain] #Electronic
Extract : « (pages 54 and 55 are missing...) [...]
We can expect to adequately protect the hardware without much trouble (or cash). The best procedure is to use a combination of the above methods as shown in figure 2.
I've tried to explain a little about voltage transients without getting into the physics of semiconductor failure or transient generation analysis. If you want to become better versed in this field, read several of the references. They all offer good background material and references 2 and 3 give detailed information. Hopefully, you are among the many who haven't had any problem with spikes. The best time to prepare for them is before they give you trouble. »
[theme : Software] [author : Doliner] #Listing #BASIC #GameBoard
Extract : « NIM is a 2 player game in which the players alternately remove counters from a pile according to some rule. The player removing the last counter is either the winner or loser depending upon the variation. One important characteristic of NIM is that exactly one player has a winning strategy available to him at the start of the game. That is to say, if the game is played "perfectly," the winner will be determined before the game begins.
Two examples will better illustrate these points. Suppose that there are 100 counters and that each player in his turn must take at least one, but no more than ten, counters. In case 1 consider the player taking the last counter as the winner and in case 2 the loser. [...] »
#Book
Extract : « A Collection of Programming Problems and Techniques by H A Maurer and M R Williams, Prentice-Hall Inc, Englewood Cliffs NJ, 1972, 256 pages, 6 by 9 paperback. $6.95. [...]
The Thinking Computer: Mind Inside Matter by Bertram Raphael, W H Freeman and Company, San Francisco, 1976. Softbound $6.95.
The Anatomy of a Compiler by John A N Lee, D Van Nostrand Company, New York, 1974, 470 pages. Paperbound, $11.95. »
#Association