[editor : Carl T. Helmers Jr.] [publisher : Virginia Londoner, Gordon R Williamson] [art : Wai Chiu Li, Christine Dixon, Holly Carmen LaBossiere, Deborah Porter] #Magazine
#Abstract
On May's cover, Robert Tinney has formed an abstraction of the most important medium of mass storage in today's era of small computers, the floppy disk. Heightening its shimmering mystery, we find a disk wavering in the heat above some desert landscape. To enlighten you, this issue features several articles that present valuable information about floppy-disk technology. This technology is no mirage - it will even work well in a similar, hot environment of East Africa, as the editorial describes.
[author : Carl Helmers] #Edito #Listing #Pascal
Extract : « [...] In connection with the program design of my experiment, a number of crucial points had to be verified. With the time allocation procedures completed as described in the March 1980 editorial, writing the real-time procedures to execute the time line proved trivial. These were the procedures left in dummy form in the listing 1 published with the March 1980 editorial. In listing 1 accompanying this editorial, readers will find the final form of the program I used. In approaching this final form I implemented the execution routines using a module named "milli" to carry out time delays of an integer number of milliseconds. The program itself was verified by driving the camera interface using a first approximation to "milli" in the form of Pascal dummy loops used to count time.
Since program development time was limited by a departure schedule, it soon became apparent that the lesser of two evils (imprecision or assembly language) was to write an assembly-language routine called "milli" that links to Pascal with a single integer parameter specifying a loop delay time in milliseconds. I finished this necessary step sometime in the wee hours of February 4. I checked the accuracy with various simple test programs written in Pascal. Of course, my timing assumption was that zero time would be spent outside of "milli" executing the Pascal code of the actual program. This assumption was verified with test runs of the whole eclipse photography sequence, which showed about 1% error. By adjusting the constants in the delay routine slightly, this error was compensated at the gross level of the entire eclipse sequence's 241-second execution time. [...] »
Here's a simple converter that uses a standard integrated circuit for producing a 25 mA bipolar source from a single-ended power supply.
[author : Michael Picco] #Electronic
Extract : « Have you ever had the need for a bipolar power source, but had only a positive voltage available? With the help of a timer and a few external components, this problem can be overcome. The circuit in figure 1 is sufficient for powering op amps or similar devices requiring a supply current of 25 mA or less at -12 V. [...] »
This month Steve explains the operation of parallel input/output as a prelude to next month's design for an economical RS-232C interface.
[author : Steve Ciarcia] #Electronic
Extract : « I receive a lot of mail: enough that I'm beginning to feel like the "Dear Abby" of the personal computer ranks. The sources of the letters range from high school students asking for advice on science fair projects to major corporations seeking consultant services. Even though it takes considerable time to answer this mail, I regard it as a significant opportunity to gauge reader interest. Every letter in some way contributes to my choice of article topics, either through suggestions or by continued occurrence of similar questions.
Recently, my mail has been dominated by owners of the Radio Shack TRS-80 Model I thirsting for hardware expansion by means other than Tandy Corporation equipment. The majority of questions concern connection of my interfaces to the TRS-80 expansion connector.
In general, I have tried to present projects that are computer independent. That is, the interfaces described are driven through parallel input/ output (I/O) ports rather than directly from a computer bus. This had not been a problem in the past, because virtually all of the early personal computers incorporated some parallel I/O capability. For those experimenters interested in enhanced I/O capabilities, I presented the article "Memory-Mapped I/O" in the November 1977 BYTE on page 10 (reprinted in Ciarcia 's Circuit Cellar Volume I, BYTE Books), which detailed parallel-port construction. [...] »
Using the LFD-400 disk-controller board, the KIM-1 can access up to 87.5 K data bytes on several 5-inch hard-sectored floppy-disk drives.
[author : Joel Swank] #OperatingSystem #Listing #Assembly
Extract : « Any owner of the MOS Technology KIM-1 knows the utility of the KIM's built-in audio-cassette interface. But, any KIM-1 owner who has expanded his system knows just as well how inappropriate the cassette is for storing long files. The standard KIM cassette format is intolerably slow, and even using the Hypertape method (a faster cassette-storage format for the KIM), a 4 K-byte file takes a minute and a half to load, not counting the time needed to position the tape.
The natural storage alternative is, of course, the floppy disk. However, there are some difficulties. A floppy-disk system requires a considerable amount of software to make it useful. In addition, many floppy-disk systems available today come with proprietary software for the 8080/Z80 or 6800 processors. Interfacing such systems to a KIM-1 requires the hobbyist to write his or her own 6502 software, working from the machine code for the other processor. While it is possible to do this, few hobbyists are willing to translate machine code to get their disk system up and running.
I decided to interface a Percom LFD-400 disk system to my KIM-1. The LFD-400 system contains a disk controller capable of controlling up to three 5-inch floppy-disk drives. It comes with complete, annotated source code for the 1 K-byte MINIDOS disk-operating system, written for the 6800 processor. MINIDOS allows the reading and writing of contiguous memory files, and is the nucleus of MINIDOS-PLUSX, a 6800-based disk-operating system sold by Percom.
KIMDOS is a KIM-1-compatible version of the Percom MINIDOS. It allows a KIM-1 to read and write files that are compatible with the Percom format. This article will concentrate on explaining the workings of the KIMDOS software. The LFD-400 system easily interfaces to the bus lines of any KIM-1 system (see table 1); because of this, hardware interfacing will not be discussed here. [...]
I have been independent of cassette tape for over two years now. It has been a great pleasure to be able to load even the largest file in 1 or 2 seconds. I no longer leave my KIM system on for days to keep from spending the time necessary to write all of memory to tape and verify that the tape is good. The Percom LFD-400 is a viable and cost-effective answer to the mass-storage problem.
KIMDOS should be easily converted for use on other 6502 systems. An interface for the Apple II should be straightforward. KIMDOS is available in a 2708 read-only memory from Percom. (See below.) I would like to express thanks to Bob Haas for his valuable consultation on this project. »
Building a disk-controller board for a Shugart SA400 disk drive can be done easily and with commonly available parts.
[author : John Hoeppner] #Interface #Electronic #Listing #Assembly #Storage #Book
Extract : « The audio cassette has been used by most of us for off-line storage of programs and data. It has two advantages: it is inexpensive, and it is easy to implement because of the wide variety of cassette interfaces available.
However, I grew tired of waiting for the BASIC interpreter and all my data to be loaded every time I powered up my system. Even then, I sometimes had to load and reload the data until the interpreter and my programs were transferred correctly. I decided to try an alternative.
On one hand, the Shugart minifloppy 5-inch disk drive, which costs about $350, was a little more expensive than my cassette recorder; but, on the other hand, the 5-inch floppy disk it uses costs about the same as a quality cassette tape — around $4. And, despite a higher initial investment, the floppy disk is more reliable, and it can transfer programs and data as much as thirty times faster than the audio cassette. It seemed the more programs that were developed, the more worthwhile the additional investment would be. Also, with a recently introduced integrated circuit from Western Digital, the FD1771 floppy-disk formatter/controller, I could design a controller myself that could be interfaced to my 8080A-based microcomputer system. This article describes the hardware developed to connect a Shugart floppy-disk drive to an 8080A-based system using the Western Digital FD1771 chip, as well as the software routine necessary to drive the FD1771. [...] »
With the Soundex code, you can locate people's names in your data base by similar, but not exact, spellings.
[author : Tom Munnecke] #Listing #BASIC #Algorithm #DataEntry
Extract : « One of the major criticisms of the computer is that it is too literal (ie: unable to accept minor errors from fallible human operators). When the computer asks a question, if an answer is not exactly right the computer rejects it, even if the answer was nearly correct. The computer does not apply a human's reasoning ability to determine the intent of the operator. Instead, it works only with the exact response.
There is a technique which has been used since the turn of the twentieth century to retrieve names based on pronunciation, rather than their spelling. It is called the Soundex code, and was originally developed to search for names in the 1890 census files. The technique is to give each name a four-character code, consisting of the first letter of the last name followed by three digits representing the sounds found in the rest of the name. This code is then used to group together all names which "sound like" each other.
The Soundex code allows the user to enter a name in a form believed to be the proper spelling. The computer responds with a menu listing all sound-alike names, allowing the user to make a selection. If only one name is found, the computer could confirm the name identity and proceed. [...] »
An electronic sketchpad? Even a small system like the COSMAC ELF can draw designs using a video display.
[author : Jeff Duntemann] #Electronic #Listing #MachineCode #Graphics
Extract : « When the COSMAC ELF microcomputer first appeared several years ago, its designer called it a microcomputer trainer. That meant that you had a few hexadecimal displays and a light-emitting diode (LED) to play with in your programs, and nothing else. Clever people managed to make the ELF play music or even generate Morse code without much additional hardware.
As far as I know, the ELF is the only microcomputer that has often been built from scratch by hobbyists without using a predesigned printed- circuit board. There is no better way to learn microprocessor hardware than to buy a handful of parts and wire-wrap all of the connections. In ironing out your mistakes, you will become familiar with every processor timing signal, every kink in every system timing diagram, and every little architectural quirk that can grow up to be a big bug in later programs. It is a rigorous education, I promise you, but an excellent one.
Then RCA released the CDP1861 video-display-controller integrated circuit for sale, and suddenly the ELF could do something no comparable computer could do for triple the price. With the CDP1861, the ELF displays a bit-map of 1024 bytes of memory on a video screen (in black and white), with no hardware needed except the CDP1861 and several resistors, and with software consisting of a 30-byte interrupt routine. [...] »
Storage devices can introduce data errors. The system presented here can increase reliability and speed of these peripherals.
[author : Gregory J Walker] #Encoding #Electronic #Book
Extract : « An active error-checking and correcting system can go a long way toward solving the occasional problems that hamper the usefulness of low-cost data-storage devices (such as audio-cassette recorders). It offers a means of improving reliability in problem-plagued situations, and in cases where the error frequency is already sufficiently low, the checking and correcting system allows increased data densities and transfer rates with an overall gain in storage system performance. In a well-designed system, error detection and correction schemes can lead to marked reductions in loading times due to higher average data rates.
Figure 1 shows the connection of the active error-checking and correcting apparatus between the computer and the peripheral data-storage device.
The theoretical development of error-trapping and correcting codes is largely due to the efforts of Richard W Hamming, a mathematician who first published on the subject in the Bell System Technical Journal early in 1950. (See reference 1.) Now, thirty years later, Hamming codes still represent one of the more practical approaches to the error-correcting problem.
A particularly important aspect of Hamming's work focused on his formulation of the concept of code distance (indicated by the letter D). This relates the uniqueness of (or "distance between") meaningful codes to the number of simultaneous errors (indicated by the Greek theta, θ) that can be detected and corrected. [...] »
Floppy disks may be the glamorous way to store programs and data, but the cassette is far from obsolete.
[author : Emory Cook] #Electronic #Storage
Extract : « In a world where floppy and hard disks are becoming more affordable for the average small-business user and hobbyist, sequential mass storage in the form of cassette tape is gaining disfavor. Still, many disk users get into trouble when something happens to a floppy disk and they have not made backup copies. Although any backup system requires the time and inconvenience of regularly carrying out the file-copying procedure, one problem with using floppy disks for file backup is the cumulative cost of the number of disks needed to maintain backup copies of all records. [...] »
The conclusion of this article sets forth the routines to create and use the various arrays described in part 1.
[author : Randolph Nelson] #Graphics #Audio
Extract : « The Commands
With what commands should the editor provide the user in order to make the program easy to use, and how does the nature of these commands affect the structure of the program?
Mode Commands
We begin to answer this question by distinguishing three major ways in which the user will use the program. The first is when the user creates a score of music. Here the editor must establish a file for the score and allow the user to overwrite the default values for the music, such as the key and time signatures. The second major use consists of editing the score. The program needs to provide facilities for locating the measure to be edited, reformatting the pages after editing, and writing the finished version out to a file. The third and hardest facility the editor must provide is the ability to display the score on the screen.
A multitude of problems must be handled automatically by the editor in adjusting the format of the score as it will appear on the screen. The above discussion leads to a definition of three separate modes of operation for the editor called the CREATE, EDIT, and DISPLAY modes. Switching between modes is done by issuing a command through the graphics tablet as discussed in part 1. The editor also switches modes automatically to display the contents of a measure while the user creates or edits the score. [...] »
Part 2 continues the examination of the subtle problems encountered when translating information from performance to written score.
[author : Jef Raskin] #Audio
Extract : « More Problems with Rhythm and Tempo
The would-be Composer's Aid designer plummets into another pile of programming problems when tempi change. The beat, sometimes constant within a piece, may abruptly slow down, as may happen in a reflective refrain in a blues number, or gradually accelerate, as in a Greek folk dance. Changes of tempo present problems that are worse than the problems in transcribing rhythms that we have already seen.
It is not difficult to see that an abrupt change in tempo cannot be detected the instant that it happens, but only after a few notes have been played at the new speed, establishing, as musicians say, the new tempo. This brings up the concept that rhythm does not exist only in relation to the length of individual notes, but exists also in a much larger musical context. [...]
About the Author
Jef Raskin's credentials in music include his years as a professional musician and a music teacher. He is presently the manager of Advanced Systems at Apple Computer Co. His personal music and computer equipment includes a piano, a harpsichord, an organ, a PDP-11, and three Apple II computers. »
Now you can get some idea of the relative performance of different units by simulating their mechanical functions in a BASIC program,
[author : Dennis Nendza] #Simulation #Storage #Listing #BASIC
Extract : « Large companies learned long ago that preliminary performance specifications of systems can be predicted reasonably well by computer simulation. The National Aeronautics and Space Administration (NASA) saved much money and effort by simulating numerous systems that have been developed for the space program. In a somewhat smaller way, microcomputers can be used to simulate a variety of operational systems. Complex equations and analysis are not always required.
Here I shall present a practical simulation. I have chosen a topic of interest to myself and many small-computer enthusiasts: a comparison of the operating speeds of floppy-disk drives. This article will explain basic mechanical drive movements and illustrate the transformation of these physical events into the algorithmic steps of a computer program. Estimating one drive's performance in relation to others is the goal.
To do such a comparison, we need
some knowledge of the operational
parameters of floppy-disk drives.
These parameters are the lengths of
time required for a drive to perform a
given function. All drives have at
least these four parameters:
• head load
• seek
• rotational latency
• data-transfer rate
I shall look at each function in detail. [...] »
If your club is considering to form a program- and data-exchange network, the telephone and amateur radio links described here will be a valuable source of ideas.
[author : Joe Kasser] #Network
Extract : « Does a club need a computer network? What are its uses? What are the advantages of having such a network?
This article attempts to answer these questions and provide ideas on the techniques used in implementing the network.
Basic Communications Needs
An important aspect of any hobby is communication. The sharing of information and experiences can add a great deal of enjoyment and save much time. If the techniques used to solve some problem are made available by the solvers to others, the recipients of the solution can advance the state of the art. This is done by building upon the foundations developed by the original solvers, rather than by rebuilding the same foundations.
In the computer field, communications fall into two similar but distinct categories: the exchange of personal messages and the exchange of computer data (programs or data bases).
Personal messages may contain any plain language text. Computer data may contain programs, data bases, and instructions for processing files. [...] »
Simplifying the Curve-Plotting Calculation by Geometric Means
Alpha Locking in Software
Maintaining a Single Exit Point
Decisions, Decisions
Formatted Program Output for the KIM-1
#Book
Extract : « TRS-80 Assembly Language Programming William Barden Jr Radio Shack, 1979 224 pages, softcover $3.95 [...] »