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 revolution had started! 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 defective part.
After replacing it 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
parallel input/output, along with the interface for an
audio cassette tape recorder. 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 +- 15 volts. The supply was large and heavy and had a heavy cable to the computer.
Sphere
Design Flaws Although
functionally the Sphere worked very well, there were
two main problems 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, 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. 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. 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 mechanical punched paper tape reader I had to the 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, I could then run this tape through the reader and enter the code automatically. Before long I had programmed the boot ROMs to directly support the punched tape, eliminating the need to hand type the boot 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. When the Kansas City EPROMs arrived, I was able to read and write final program code at 30 bytes per second.Later I
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! 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 capitals, and another one to shift back to lower case. There are not many special characters. 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.
Over
time I updated my printer to a large spinning wheel
printer which printed at an
amazing 30 characters per second, followed by an IBM
Selectric typewriter printer with its
ball printhead, a dot-matrix Okidata printer, and
eventually a Diablo daisy
wheel printer. 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. 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. 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 the assembly language work 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.
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 Insai, 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
CP/M User Group was now well established and offered
free distribution of
literally hundreds of programs written by users and
freely shared. 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. For several years
I was the
chairman of the CP/M users group 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 40 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
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! 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
|