|House Projects|| Machine
My Early Computer Days (pre DOS)
1975 to 1984
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.
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.
The Sphere computer was
acknowledged by Byte magazine in its 5 year
commemoration issue as the first true home computer. They
this on the requirement that a home computer needed a keyboard, a
numeric keypad, a built in monitor, and external storage.
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
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!
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.
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.
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
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!
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.
Around this time I built a Heathkit serial terminal and no longer used my Sphere as my terminal so I retired it. My son was going away to college so I decided to make him a computer to take with him. I used the Sphere case and monitor, removed the Sphere card cage and installed a small S-100 card cage along with a switching power supply. Using some spare S-100 cards, it made a very capable CP/M system for him. Unfortunately I cannot find any pictures of it, but I do remember that he named it Monique!
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!
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