

My maternal grandfather, James Oliver Smith, taught himself to build and repair radios, and later to repair televisions. This was during a time when technology meant vacuum tubes. Solid state electronics were still being researched and even the idea of a personal computer was decades away.
As a child, I poured through my grandfather's old electronics catalogs and magazines like Popular Science. Buried in the back pages at the time were ads for early hobbyist computers such as the Ohio Scientific systems, the Altair 8800, the IMSAI 8080, and Southwest Technical Products' SWTPC 6800. Being a preteen meant there was little chance in actually obtaining one of these devices, but the ember was glowing.
I first got my hands on a 'computer' in the form of an ASR-33 teletype connected via an acoustic modem to a time sharing system belonging to the Wake County Public School System in Raleigh at age 13. I don't remember which teacher was kind enough to give me access, but my fascination grew as I played a crude computer blackjack program written in the BASIC programming language over the chattering terminal. Once I figured out how to stop the program's execution and print out the source code, I took the roll of print home and poured over it for days. Without reference material it was unclear what most of the instructions did, but a few comments cast some light on portions of the code.
Not long after, I changed schools and again gained access to the WCSS time sharing system. I started piecing together simple programs and storing them using the paper tape punch. Paper tape, my (slightly) older friends tell me, was a modern miracle compared to the punched cards they used in college.
Now in high school, I grew bored with most of my subjects. I even considered quitting school at one point. Fortunately I was able to sign up for the Electronics elective. My instructor, Lee Miller, was a man with practical knowledge of the subject, and a desire to teach the subject to the students willing to learn. Had it not been for Mr. Miller, I might not have stayed in school. Instead, I focused on electronics, and in turn, algebra, since the practicality of it suddenly made sense.
In the classroom, we had a Radio Shack TRS-80 Model I computer. It didn't seem to be a part of any formal curriculum, but Mr. Miller allowed us to spend time exploring it. Aside from a few games, we would try our hand at writing simple programs. Compared to the ASR-33 connected to a remote host, this thing was incredible. We eventually received a TRS-80 Model III with a built in floppy drive and the TRS-DOS operating system.
Over the years, I spent a fair number of hours at local Radio Shack stores, buying parts for projects, or exploring the latest gadget in the store. One day during my junior year in high school, I was again browsing when I met Kevin Darling, a very friendly and knowledgeable guy working behind the counter. He was really excited about the TRS-80 Color Computer (CoCo). I talked to my parents and they very kindly bought me a CoCo.
My first CoCo connected to a color television as a display, used a cassette recorder to save and load programs, was powered by a Motorola 6809E processor at 0.894 Mhz, was loaded with 16K RAM (memory), and included an expansion slot. Yes, 0.894Mhz is over 2000 times slower than the processor in the laptop I'm using. The CoCo included a book on writing programs, which I proceeded to consume with delight.
When I was able to get part-time jobs, I would use the money to pay for my computer and electronic hobbies. I purchased a Timex Sinclair ZX-81 for around $100. It was available as a kit, but I opted for the assembled version. While it was impressive in it own right, it was no match for the CoCo, which continued to draw my attention.
Also drawing my attention was a large noisy cabinet in a neighborhood convenience store. An arcade machine called Phoenix now started to compete for my hard earned cash. It was followed by Gorf, Bosconian, and countless other machines, each a dedicated computer of a sort.
I started working at a part-time job midway through my senior year of high school, and was able to move to full-time right out of high school. At this job, I met Marvin Hillman, who also owned a Color Computer. We shared tips and tricks and when we became aware of it, we started attending meetings of the Raleigh Color Computer Club.
Adrian Brancato and Kevin Darling, among others, were the driving forces behind the Raleigh Color Computer Club. Kevin I knew from my local Radio Shack. I also met the father and son team, Ed and Stewart Vernon. Ed was a talented guy who I remember best for writing a very complete ephemeris program on the CoCo. Stewart compiled a comprehensive list of memory PEEKS and POKES allowing for game cheats and other handy functions.
Many members of the Color Computer Club took advantage of an opportunity to purchase a very inexpensive modem, the 300 baud Volkmodem. While I don't remember the exact price, I recall it being insanely cheap for a modem at the time.
Most of the original software for the CoCo was supplied on cassette tape. People would often make copies of the software to use, and would store the original. Some club members also copied software, primarily games, for their friends. I was no different. It wasn't long before the software developers added copy protection. It took even less time for people to find ways to defeat the protection. Then came Whirlybird Run, a game I purchased, which was based on the arcade game Scramble.
Like many of my fellow club members, I did a memory upgrade from 32K RAM to 64K RAM by soldering another set of 32K chips "piggyback" on the existing set, except for one line that provided a method for switching between the two 32K banks. The built-in ROM based operating system did not support more than 32K RAM, so the extra RAM needed something to make it available.
Enter Kevin Darling. He was working with methods to use bank switching to allow all of the memory to be used. He developed code that caused the reset button to bank switch and allow another program to execute.
I called Kevin one evening after trying unsuccessfully to copy Whirlybird Run. He invited me over along with Marv Hillman. Kevin started loading the tape and after finding himself unable to take control of his CoCo, rebooted it and loaded a memory inspector into the upper bank. Kevin again tried to load the program but the game took control from him. Not to be beaten, Marv and I watched in awe as Kevin executed a few commands, loaded another utility he had written, and tried to load the game again. The load stopped after a few seconds and Kevin began to pour over raw hex code, uttering things like "Those b@#&%*$. Look at that!", followed by a few quick keystrokes to modify some memory location or another. Marv and I were literally wide-eyed when we realized he was disassembling the program in his head in real time. After just a few minutes, Kevin saved out a copy of the program with the copy protection removed and in a form that could be loaded from disk as well as tape. His expertise was beyond anything I had experienced before.
I was inspired. I started exploring 6809 assembly language. I purchased the EDTASM+ (editor/assembler) cartridge. After a few simple programs, I tried my hand at more complex programs. I hit the wall with an early attempt and Kevin took the time to look it over and help me through it.
I also began working on hardware interfacing projects for my CoCo. One of my first projects was a speech synthesizer based on the Votrax SC-01 Speech Synthesis chip. This project was built on a breadboard and precariously wired via an edge connector plugged into the expansion slot. Once, while toying with the circuit, I bumped a wire loose and my CoCo suddenly stopped working. It turns out that the CPU's 5 volt data bus didn't react too well to having 12 volts applied to it, even if accidentally so.
After replacing the 6809 processor, my CoCo worked again, it's owner more the wiser. My friends, however, shall never let me live this down.
Around this time, I decided to put my modem to good use. Hobbyist computer Bulletin Board Systems were springing up, and were drawing customers away from pay-based companies like CompuServe. Looking for a challenge, I wrote my own bulletin board software, based on cassette storage. This meant that messages were not immediately available, but were stored, and then reloaded the following day. My system, the Tiny BBS, even got a write-up in the local paper!
|
![]() |
Eventually I added the Multi-Pak expansion interface, which allowed up to 4 devices or cartridges to be installed instead of a single device. The next addition was a floppy drive controller, and dual 5.25" floppy disk drives. An X-Pad digitizer allowed you to draw or trace using a tablet and a tethered pen.
With all of this hardware at hand, I wanted to create a new project. How about turning this mass of computer technology into an answering machine! I built a ring detector circuit and used it trigger my program, which used the speech synthesizer to deliver the outgoing message. I regret not having used some portion of the system to digitize and record the incoming message, instead taking the easy way out and recording it to the cassette recorder.
In 1983, my employer gave me an opportunity to move to the Engineering Department as a technician. There I was able to explore the HP-85 desktop computer, and some of the early IBM PC Clones, in particular, the Columbia Data Products "Multi Personal Computer". I was also getting exposed to the concepts of analog to digital data conversion, and automated motor control systems.
With some urging from my friend Marv, I toyed with the Forth programming language on the CoCo. My interest in Forth only lasted for a short while, but it provided another way to look at solving computer programming problems.
I continued to work with the early PC clones. I managed to pick up a Tandy 1000, the not quite PC clone. It would run many PC programs and games, but it included a number of built-in hardware enhancements, such a noise generators and a graphics system that supported more color modes, similar to the IBM PCjr. Using Tandy BASIC, I wrote a few programs that took advantage of the special sound features of the system. By randomly increasing and then decreasing the noise generators, a decent approximation of the rising and falling surf could be created.
In 1986, there was a project discussion regarding automation of one of the testing systems in Engineering. I suggested a Color Computer as the controller, with a custom-designed interface board to control the motors that actuated a test beam, and read the result. Working closely with Lowell Sayles on the data reduction portion of the application, I set out to develop the software using Disk Extended Color BASIC and in assembly for the time sensitive routines. Simultaneously, I laid out the hardware design using 7400 series logic on perf board, remembering the valuable lessons from the Speech Synthesizer incident.
The same year, I got married, which put a big hit on both time and money to experiment with. When I did have some spare cash, I picked up a copy of Microsoft QuickBASIC. I had lots of experience with BASIC interpreters, but QuickBASIC gave me my first compiler, plus an interactive Integrated Development Environment (IDE).
I started working with Turbo Pascal, again after Marv started talking to me about what a great development environment it was. I was hooked. I started sinking more time into learning Pascal. In 1988, I briefly gave Microsoft's QuickPascal a try, but even though it used a QuickBASIC-like IDE, it seemed temperamental and buggy. I soon abandoned it for Turbo Pascal and QuickBASIC.
By 1989, I was now supporting the PCs at the company I worked for. This included repairs, upgrades, and end-user software support. I was also being asked to write some business software applications. The company controller, Andy Dalgliesh, introduced me to the HP3000 minicomputer. With Andy's help and some training at the HP Customer Education Center in Rockville, Maryland, I started writing code in HP Business BASIC and accessing data in TurboIMAGE databases. I designed and coded a multi-user finite-capacity manufacturing scheduling system as a series of menu driven programs designed for users who were not computer savvy. Writing software for inexperienced end-users was a learning experience in itself.
As I was busying myself with the day to day maintenance issues, and writing the scheduling software, I began to work with Bob Watson. Bob, who was an Engineer is the same division I worked for, was working with several systems that utilized motion control systems for automated processing. He was writing software that was controlling real world hardware. He and I began collaborating on a number of projects. Bob was initially using QuickBASIC for his coding projects.
At home, I was buying individual computer components and assembling the system from scratch. This was a far cry from building circuits from individual chips, but it still kept me close to the hardware.
In 1992, I started Open Windows BBS, a computer Bulletin Board System based on the TAG BBS system, on one of my home PCs. The system provided shareware and freeware downloads of Windows programs. I ran the BBS for two years, during which the system was a FidoNET node, exchanging mail and message board postings between systems. Although the Internet existed long before this, it still had not become popular with the general public. The BBS provided an early example of online forums and ready access to software downloads.
By the end of 1993, I was learning and using Visual BASIC 3.0 on both personal and business coding projects. Bob Watson had switched to Visual BASIC for his motion control projects. While I toyed with Visual BASIC for DOS for dedicated systems, Windows was definitely the direction the world was taking. I also got my hands on Turbo Pascal for Windows. This added a new twist for me: object-oriented programming. Turbo Pascal for Windows (TPW) provided a powerful IDE, and created native Windows executables, unlike Visual BASIC's p-code interpreter.
In 1994, I started working for Mike Bower, who had been working in the Marketing Group as an Applications Engineer. Mike had a background in electronics and programming and we had been acquainted for some time. Mike also hired Pam Pickett and the three of us began to design and code a Windows based software package to accompany a new data acquisition product the company was developing for sale.
The project required us to design user interfaces for setting up test parameters, interfaces to the data acquisition hardware, capture data to disk, and display real-time raw or reduced data in various graphic formats. It was a challenging, but satisfying accomplishment, completed on time.
In 1995, with the data acquisition project completed, I once again had an opportunity to make a move. I took on internal software development projects with a new staff. It was my first management position.
This was also the time that the Internet appeared. It was already there, but my colleagues and I were now aware of it. A local ISP, Nando.net, was providing low-cost dial-up accounts. Using Windows 3.1 to connect to the Internet required the installation of a TCP/IP software stack and any other Internet software that you might need. The Internet wasn't important to Microsoft yet. People used telnet to connect to systems, gopher to find things on-line, and FTP to transfer files.
The Internet provided the means for me to learn about arcade auctions, where the games that I had once feed a few too many quarters, could once again rid me of my money. Both private collectors, as well as arcade operators who were getting rid of machines that no longer made them money on location, would bring the machines to public auction. I purchased a number of arcade machines over the next couple of years. These machines ran what was essentially a dedicated computer; unfortunately some of the parts were becoming difficult to obtain. The game play still grabbed me, but since I now owned it, my quarters were safe.
Once I started using the Mosaic web browser, a new challenge presented itself. I wanted to create my own web page. Nando.net gave each of it's customers 5MB of space as part of their account. My pages featured articles about, and photos of, my goldfish pond and video arcade machines.
Hypertext Text Markup Language (HTML) consists of a set of tags that describe the presentation of a web page. It is not a traditional programming language. So for me, the challenge was short lived. It wasn't that I had mastered HTML, only that I no longer desired to spend time on it.
The company that created Turbo Pascal and Turbo Pascal for Windows, Borland International, released Delphi. It became my environment of choice for coding projects. Delphi was a clean, object oriented programming environment surrounded by an elegant Integrated Development Environment. The underlying language was Pascal.
I continued to design software for automated systems, and worked closely with the engineers who were creating the hardware. There were also occasional business reporting projects. All in all I was moving away from the hands-on and more into the managerial tasks.
I was managing PC repairs, networking, servers, backups, and the internal software developers.
In 1997, I wrote my first game for the PC that used 8086 assembly language. It was a simple space shooter like Space Invaders. I used the DOS version of Turbo Pascal for the program startup routines and the main game loop, and assembly for the video routines and sprite handling. The project was intended as a learning experience and was never released to anyone.
Given the popularity of classic arcade machines, and the increasing difficulty of getting some replacement parts, several software projects to emulate video arcade machines began to appear. I was able to contribute in a small way to one of these projects, when I was approached with a request to provide digitized sound samples from the two games that I owned that had integrated speech. In the spring of 1998, MAME v0.31 was released that allowed players of Gorf and Wizard of Wor to again be harassed by the games they loved. A later release of the MAME emulator made the sound sample method unnecessary when the program was updated to include emulation of the Votrax SC-01 speech chip.
With access to a ROM programmer, I tried with limited success, to modify an arcade board to run both Pleiads and Phoenix. Sadly, circumstances forced me to sell off my arcade machine collection. With MAME, I can still enjoy the experience of the classic arcade machine.
In 2003, I started Carolina PC Pros. Things were changing with my employer and I wanted to create a fall-back position. The company allowed me to build a client base while I continued working at my day job. I started to build static web sites. The first site was for my business, but soon I was creating sites for some of my clients.
Finally in 2006, I started toying with the idea of some web-based coding. I was impressed with the PHP language and set out to create a family tree program using a MySQL database and a PHP application to draw a family tree.
More recently, I have been using the Joomla Content Management System to create sites that require more frequent content changes.
I have also been giving the Linux operating system another try. I have experimented with various flavors of Linux in the past, but never reached the point where I felt like it was on equal footing with my Windows experience. I find myself liking Ubuntu, and I'm dual booting my primary desktop PC in order to spend more time getting to know it.
Once in Ubuntu, I started looking for some familiar programming tools. Imagine my pleasure at finding Lazarus, a free pascal based environment that is very Delphi-like. I look forward to again spending some time coding in this new environment modeled after an old friend.
Small, inexpensive computers like the Raspberry Pi are making new applications possible in the hobbyist space.
The transition to smartphones and tablets have revolutionized the world. People walk around with an incredible amount of computing power in their pocket. The always-on Internet connection means that they can find anything or communicate with people all over the world in an instant. My son went to China on a business trip and I was able to hear about his experiences and see, in real time, the things he was seeing.
So much has changed since I first saw early computer ads in the back of an electronics magazines.
The first time that I sat down at a teletype terminal, I would never have believed that I could walk into a store and buy a terabyte of disk storage in a small plastic case that sits on my desktop. I find it equally difficult to imagine what technology will be available in another 30 years, but I look forward to finding out.