Home | Trips | Motor Home Projects |
House Projects | Machine
Shop Projects |
Automotive Projects |
Early Computer Days |
About |
My Early Computer Days (pre DOS)1975 to 1984
Beginnings My
experience with computers started in the early 1970's when the company
where I worked installed a Timeshare computer system.
This consisted of an ASR-33 Teletype connected to a
110 baud acoustic modem, which connected to the Timeshare company's
mainframe computer over the telephone line.
When my supervisor asked if any of us were
interested in taking training for this system, I immediately
volunteered. I learned to use the BASIC programming language on this system and began to really wish that something like this was available for the home user.
An article in the January 1975 issue of Popular Electronics heralded the new MITS Altair computer as the first practical home computer. The Altair was a box containing a power supply, a motherboard, and a front panel with lots of switches and lights. Into the motherboard were installed the CPU card, memory cards, input/output cards, etc. Input output was usually by means of a serial terminal. If you bought it as a kit, you had to assemble and solder all the components to their boards before you could use it, however it was also available assembled. To start the computer you needed to toggle the front panel switches forming binary numbers and enter them. You repeated this for a number of bytes as needed to program the boot program. Then you could enter your larger program using a punched tape reader, or a cassette player. It was quite a tedious process.
Sphere Computer In
July 1975 I saw an ad for a Sphere computer.
This was a system based on the Motorola 6800
processor, and unlike the Altair which had to be booted up by toggling
front panel switches, the Sphere came with a boot ROM, a keyboard, and
a CRT driver. This
provided a self contained, auto booting computer - a true revolution
for that time. After
driving to a location where they had a demonstration of their system
and seeing it, I placed an order.
I bought the kit system with no monitor, but paid
extra for the monitor case and a 16 kB RAM card.
In
October, my kit finally arrived! The
system carried serial number 00013. In addition to the sheet
metal for the computer case and the power supply, there were several
Styrofoam blocks, each with a printed sheet on the top.
Through this sheet were poked many IC's, resistors,
capacitors, etc. Each
package also included a printed circuit board.
There were instructions, but they were really scanty! The keyboard consisted of
a printed circuit board, a bag of key switches, and a bag of key caps,
along with a few other components. After
spending many evenings with my magnifying goggles and soldering iron, I
had a series of assembled circuit boards and a huge power supply box
assembled and ready to try. I
connected all the cables, hooked up a modified TV set and turned it on. Nothing but random
characters on the screen! What
a disappointment! A
friend of mine, an electrical engineer came over and after a couple
hours of oscilloscope probing, we found a shorted trace on a circuit
board and a solder short.. After
correcting these we tried it and IT WORKED!
Of course I didn't have any software to run, but it
did include a minimal "operating system", and I could type and see the
results on the TV screen. For it's time
the Sphere was a very advanced system.
The CPU board contained the 6800 processor, 4 KB of
RAM, 1 KB of EPROM. It
also provided a serial and a two parallel input/outputs. A
separate board provided the interface for dual audio cassette tape
recorders. The
EPROM contained the keyboard and video drivers, a small editor, a
debugger, a mini-assembler, and drivers for the cassette tape interface. All this was contained in
a miniscule 1024 bytes! The
video card provided 16 lines of 32 upper-case characters output to a TV
monitor using a composite video signal.
I modified an old TV to accept this input for my
initial use. Later
I got an honest to goodness video monitor. The
cards, including the keyboard were connected using 4 ribbon cables,
which daisy chained from card to card.
One cable was for the power distribution, one for
the data bus, and two were for the address bus. The power supply was a linear supply producing +- 5 volts and +- 12 volts. The supply was large and heavy and had a heavy cable to the computer where it attached to a ribbon cable for distribution to the various cards.
Sphere Firsts The Sphere computer was
acknowledged by Byte magazine in its 5 year
commemoration issue as the first true home computer. They
based
this on the requirement that a home computer needed a keyboard, a
numeric keypad, a built in monitor, and external storage.
Steve
Jobs from Apple bitterly contested this announcement, but the fact is
that Apple didn't even exist until a year after Sphere released their
system. Sphere was also the first computer to use a keyboard
reset function (i.e. CNTL-ALT-DELETE). The man from IBM who
claims this distinction was not even hired by IBM
until 5 years after the Sphere was built. Within a year after
the
Sphere was released, there were many other companies releasing systems
very similar in looks and function to the Sphere. Sphere Design Flaws Although
functionally the Sphere worked very well, there were two main problems
I found with its design - the
power distribution and the data distribution. The power supply
was a well regulated supply, but by the time the power was sent to the
various cards using the light weight ribbon cables, even though they
used multiple conductors for the heavy draws, the voltages were
considerably lower. This
caused several problems over the life of the system. The DIP
connectors used on the power and data ribbon cables were the other weak
spot. It was easy
for one of the connectors to be slightly unplugged and lose the
connection. The
mechanical strain of the cables contributed to this.
Also the fragile pins on the connectors would bend
and occasionally break and require replacement of the damaged
connector. I bought DIP connectors by the dozen! Sphere Peripherals I
had a very good experience with my Sphere and really learned a lot! It was difficult
to get started, as there was no available software and the methods of
loading any you had were crude to non-existent.
When
I received the computer there was no tape interface firmware, as the
Kansas City Standard (an industry agreed upon standard for 300 baud
recording and playback on a standard audio tape recorder) was still
being developed. A couple of months later, after the standard
was adopted, I received an updated EPROM containing the drivers. Initially I would use the built in editor to manually type in the source code for the program in the format for the built in mini-assembler. I would then assemble it and run it. For short programs, I could just type in the object code in hexidecimal into the debugger. This worked well, but of course was a major pain to hand type in the code each time (but less of a pain than toggling switches to input the binary code!). I soon interfaced a surplus mechanical punched paper tape reader I already had to a parallel input port. Using this, I could type the source code on an ASR-33 teletype at work producing a punched tape. After hand typing a small loader program, 20 bytes if I remember correctly, I could then run this tape through the reader and enter the code automatically. After I discovered we had an EPROM programmer at work, I programmed the boot ROMs to directly support the punched tape, eliminating the need to hand type the loader program. While this eliminated the need for a lot of typing, it was very slow. The tape reader worked at 10 characters per second, and there were several source characters for every final program byte. This resulted in a realistic speed of about 3 bytes per second of program code.
At a local swap meet, I bought an old Baudot code teletype machine for $10. This is only a 5 bit machine, which means it can only define 32 characters. There is a code to shift to letters, and another one to shift to numbers and symbols. One of the "symbols" was the ringing of a bell. I wrote a program to convert the standard ASCII code of the computer to the Baudot code of the printer. This is the only time I ever wrote a program in assembly language where it all worked the first time! I could now print out the results of my efforts.
When the Kansas City EPROMs arrived, I was able to read and write final program code at 30 bytes per second. This was actually somewhat anticlimactic as I had already bought a Tarbell cassette interface board and connected it with two slightly modified tape recorders to provide a "high speed" way to load and save programs. Of course this board was for the S-100 bus, so I mounted it in a small box under the recorders and ran a ribbon cable interface to my Sphere. The Tarbell unit operated at 187 characters per second compared to the Kansas City Standard with its 30 cps and the paper tape reader with its effective rate of about 3. I was in Hog Heaven! The big plus in receiving the Kansas City EPROMS was that I now had a common method of interchanging software with other Sphere users.
Sphere Programming The built in
software was truly amazing! They
had programmed all the needed drivers, an editor, a debugging tool, and
a mini-assembler in the very small 1024 bytes of EPROM area. The mini-assembler
required you to type in the source code in the hexadecimal code for the
operation, and allowed only single character labels, but worked very
well. The debug
routine allowed a hexadecimal dump of the selected area of RAM and was
very handy to check the results of my programming. One
of the members of the Sphere User Group wrote a program to expand the
mini-assembler, allowing full mnemonic input as in a full assembler. This made the programming
much easier. One
of the programs which I wrote and submitted to the Sphere User Group
was the game of Life. This
was a graphical representation of a population which thrived or died
depending on the density of its near neighbors.
The result was an ever changing display of
characters showing the population status.
The object was to distribute the initial population
so it would survive the most generations.
I won 2nd place for this program and won $25 credit
toward more hardware from Sphere (The mnemonic
assembler rightfully won 1st place!). I eventually spent this
reward toward their improved 80 character by 25 line display board,
which displayed both upper and lower case!.
I was really pleased when I went to one of the few
Sphere User Group meetings I was able to attend.
When I walked into the hall there were about 10
Sphere computer owners with their systems.
Almost all of them were running my version of Life! Sphere
was never really able to deliver on their promise of a BASIC program
for the Sphere. They
gave a computer system to a programmer in exchange for his writing
BASIC. He gave them
a stack of program code on paper and disappeared.
The program never worked.
They
did deliver a copy of Provisional BASIC some time later, but it was
very cumbersome and buggy. It was rumored that they took a
copy
of PDP-8 BASIC, surrounded it with a 6800 emulator and called it
Provisional BASIC. It was so slow that it would take several
seconds to display a line of code after typing it and hitting ENTER. I
designed and built an EPROM board which held four 2708 EPROMS giving me
a total of 4 KB of ROM. Now
with all the added space I rewrote portions of the editor, and
debugger, as well as the CRT routines to provide much more
functionality. For $5 I bought a copy of Tiny Basic which was written for the Southwest Technical System and made some minor modifications. I now had a working copy of Basic! I often wonder just how much I would have learned about computers if Sphere had initially delivered on their promise of including BASIC. My initial desire was to simply program in BASIC and leave digging into the innards of the system and the assembly language programming for others. In July 1976 I was contacted by our local newspaper asking if I would be willing to talk with one of their reporters. Shortly later, Gene Michals, who would later become one of my very good friends, showed up at my house, talked to me about my computer and took some photos. My story ended up as a 2 page spread in the July 25, 1976 Sunday supplement.To see the article, please click here. Imsai By
now I had learned a major amount about computers, but was getting very
frustrated by the lack of software and accessories available for my
system. It was
obvious that the main hobbyist activity was with the Intel 8080, the
Zilog Z-80 and the S-100 systems. I decided to buy
an Imsai system, which was very similar to the Altair, but better built. In addition to having a
system which was compatible with "the rest of the world", I figured I
could use the Sphere as a terminal for the Imsai, and the Imsai as a
mass storage device for the Sphere.
After I built the Imsai and added floppy disks to
it, I had a truly amazing system.
Boot ROMs were now available to eliminate having to
toggle in the boot program. Affordable floppy drives (8 inch)
and the newly available CP/M
operating system allowed easy and direct access to any
programs available. I made a parallel interface board for the Imsai, connected the two computers together, and wrote the required software to allow operation of both systems, each gaining support from the other. I could now read and write my Sphere software to floppies through the Imsai, and I could operate all the native Imsai applications using the Sphere as a video terminal. Very quickly I was using the Imsai mode almost exclusively, as there were actually programs available to run on this system! Each time I designed and built a special board I used a hand wire wrap technique. I would insert all the sockets into a perforated board, then wire by wire I would strip about an inch of insulation from my wire, poke it into the end of a special hand wire wrap tool, place the tool over the correct pin and twist it until I had a very neat wrap of the wire over the pin. I would then route the wire to the next pin to be connected and repeat the operation. You could place two or three wraps on each pin, so you could connect all the required points together. It was a very effective, but very tedious, construction method. Of course the professionals used electric wire wrap guns, but I never graduated to that level.
There
were many accessories available for S-100 bus systems. I
built and interfaced an EPROM programmer, so now I could easily modify
any of my drivers and boot programs.
Standard serial and parallel port boards were
available along with many specialized accessories. The San Diego Computer Society I
joined the San Diego Computer Society (SDCS) shortly after getting my
Sphere (and shortly after the society was formed).
I later became a life member.
The
CP/M User Group was now well established and offered free distribution
of literally hundreds of programs written by users and freely shared. For several years I was the chairman of the CP/M
users group for the SDCS and did all the copying and distribution for
our many members. The
SDCS was very instrumental in advancing my computer education.
I attended many special interest group meetings.
My favorite group was called the Inovators. This
focused on new equipment and technical issues in general. At
one meeting we were shown a single board computer. This was
unheard of. We were used to having separate CPU,
input-output, and multiple memory cards. The presenter showed
us 8 chips on this board and announced that that was a full 64 KB of
RAM. We were all amazed! One of my best sources for hardware, software, and accessories was the swap meet before every San Diego Computer Society meeting. I bought and sold many items there. About this time a local company, Xcomp, gave a demonstration of their brand new CP/M based hard drive system at an SDCS meeting. We were very impressed! For only $2500 they offered a huge 10 MB drive (That would hold the contents of over forty 8 inch floppies!) and an S-100 controller consisting of two boards, along with all the required software and cables. At the end of the meeting, they made us an offer that was hard to refuse. If we got 10 members to agree to buy systems, we could have them for $1500 each! Several of my friends and I each bought a system. It was wonderful. With
CP/M you had to custom write your own BIOS for your specific hardware,
as there were no such things as installable drivers. The
BIOS for the hard drive was quite complex and I never did tailor their
example to my system and install it.
Instead I used what they called a "back end loader". This was an executable TSR
(terminate and stay resident) program which put all the required hooks
and controls into your system for you.
(I guess this was as close as CP/M came to having an installable
driver). I just called this program from my
autoexec.bat file and I automatically had my hard drive available any
time I booted the system. The main disadvantage to using this
approach was that I still had to boot from a floppy disk.
Once the boot process was complete (about 2 or 3 seconds) I
had full use of the hard drive. CP/M
did not have a system of directories and sub-directories (folders and
sub-folders), but they did allow a drive to be divided into 16
different user areas. I
used these users as a way to help organize my software. A
word about memory: In
those days memory was very limited and very expensive!
I bought two 16 KB RAM boards for my Imsai. I paid $500 each for them. That's over $30,000 per
megabyte! As a
comparison, in May 2011 I bought 2 gigabytes of RAM for my laptop for
$36. That's less
than $.02 per megabyte! That
is over a 1.5 million to one cost ratio! Kaypro II Several
years into my home computer experience, I ran across a reasonably
priced used Kaypro II and bought it.
This was a rugged aluminum box with a detachable
keyboard, which was also the lid to the box, and had a built in 9 inch
monitor and two 5 1/4 diskette drives.
It was a "portable" system (really it was
"luggable"). It ran
a Z-80 chip at 2.5 MHz and had 64 KB of RAM.
It ran the CP/M operating system.
I used this computer when I became the membership chairman of the SDCS to develop a Dbase II membership program which I used for several years to maintain the member records, produce renewal notices, produce monthly reports for the board of directors meetings, and do all the related tasks needed to track hundreds of members.
The effort must have worked, as now he is employed by Cal Poly University as the manager of a data administration group. I now go to him for my computer help! Printers I have touched on several of my printers in the above paragraphs. Until I reviewed my early computer photos, I didn't realize just how many different printers I had during this period. Here is a quick summary of these printers:
The Birth of the PC In
1981, IBM introduced their first PC.
This computer was aimed at the low end business user
and the home user. The
first system had 2 floppy drives and up to 256 KB of RAM, and ran PCDOS
from Microsoft. It
also had a cassette tape interface.
They soon introduced the PC-XT with a hard drive and
up to 512 KB of RAM. Makers
of CP/M systems tried to fight back, but soon they pretty much faded
into oblivion. Some
came out with CP/M-86 systems to attack the DOS systems head-on, but
were short lived. The
system IBM had designed was released as an open source system, which
allowed 3rd party companies to produce peripherals and accessories
which worked with the IBM. This
also led to a plethora of independent companies producing full blown
computer systems in direct competition to IBM. Microsoft
produced two versions of DOS: PCDOS
was only for IBM machines and MSDOS was for everyone else. The
primary difference between the two was that PCDOS supported a version
of BASIC which was burned into the IBM BIOS.
MSDOS included
BASIC as a separate program. In 1984 I bought my first DOS based system, a Heathkit portable which included a pop-up compartment containing two drives. In my case that was a 5 1/4 inch floppy and a 20 MB hard drive. Over time I found myself using my CP/M systems less and the DOS systems more.
From
this point I progressed through a series of ever more powerful DOS
based systems, then into the Windows based systems. I
started out with computers that I built completely.
This included soldering all the sockets and
components into the circuit boards, assembling it all, then checking it
all out. After my
first several computers the construction got much easier. Individual circuit boards
were already factory built. I
merely needed to select my components and plug them all together. The only computers I did
not build, other than my laptops, were my Kaypro II, which I bought
used and functioning, A Zenith Z-151 desktop computer I traded for my
Heath, and my current Intel Core I-7 system which in a moment of
weakness, I let a local computer company build for me. It's
been a long and rewarding road!
|
|||||||||||||||||||||||||||||||||||||||||
Dick
Mason, Prescott, AZ 6/2/11
|