Programming Background

My first programming experience was with the Texas Instruments TI-57 programmable calculator. This calculator featured all the essentials of programming, including variables, user input, and both conditional and unconditional branching.

Next, while I was a student at Tri-County Technical College, the school library acquired a TRS-80 computer (sold by Radio Shack, later known as the "Model I", featuring a Zilog Z-80 CPU running at 1.77 MHz, and a maximum of 48KB of RAM). I spent countless hours in the library learning to program the TRS-80, first in BASIC, later in Z-80 assembly language. After graduating from TCTC and getting a job, I bought a TRS-80 within a month. It was a few more months before I had it upgraded to include a floppy disk drive and the full 48K of RAM. I made friends with several other TRS-80 owners, and we soon formed an informal users' group. I wrote utilities and enhanced drivers, which I shared with the rest of the group, and several of the others reciprocated with applications and games. We delved into hardware modifications, including a lower case display mod (the stock Model I could only display upper case), and an expanded keyboard.

I wrote a BASIC scheduling program, which could output signals to X-10 devices to control household lighting. It also featured speech output using a hardware speech synthesizer.

In 1983, I enrolled in the Computer Programming curriculum at Greenville Technical College. I was offered a part-time job as a lab assistant starting in my second quarter. I took programming classes like COBOL, JCL, CICS, and IDMS, all based on IBM mainframe computers.

Eventually the school got a DEC super-minicomputer and some DEC Rainbow microcomputers. I learned Intel 8086 assembly language on my own, and wrote a terminal program for the Rainbow with simple file transfer capabilities (made easier by a rich set of terminal I/O functions in ROM). I also learned to program in VAXBasic and VAX DCL, and ported some games to the VAX. I incorporated multi-user access and access control lists.

Later, GTC acquired some IBM XT computers, and I got acquainted with them as well. While still at GTC, I bought the parts and built my first IBM compatible computer, an 8 MHz XT clone.

I was offered a job with Diversified Systems Technology, and left Greenville Technical College without graduating. At DST, I worked with Microsoft QuickBasic, and learned another dialect of BASIC, known as Business BASIC (or BASIS). I wrote software to interface with a touchtone decoder and a voice digitizer and playback unit (this was before the day of generalized sound cards for PC's). I also learned to configure and optimize statistical multiplexors.

After a year at DST, I was offered a position with Automation Technology Corporation, which I accepted, developing embedded software for textile machinery. Initially, I was working with the Intel 8085 processor used in ATC's Slivertrol IV product. Later, most of my programming was for the Intel 80186 processor, used in ATC's newer products. All of the code for the 8085 hardware and the early code for the 80186 was written in 100% assembly language. Later, we began a transition to C. By the time I left the company, we were using a multi-tasking kernal and writing about 90% of our new code in C, with only low level drivers and time-critical sections in assembler. Along the way, our code had gotten much more modular. Incidentally, all of our embedded code ran from EPROM, with a maximum EPROM size of 128KB and a maximum RAM size of 128KB. All of the RAM was static with battery backup, including a lockable configuration area.

I was laid off from ATC in 1998, along with most of the other employees. The company was facing major difficulties. It continues today, but is a mere shell of its former self.

When I entered the job market after ATC, I found that my programming skills did not fit the needs of most companies hiring programmers. They wanted programmers with Windows-based experience, and I had no experience in that programming environment. As a result, I focused on my skills as a computer technician, and began working in that area. .