Thursday, January 7, 2021

30 Year Old Delphi/Turbo Pascal App Still Relevant

Once upon a time there was an enthusiastic, ambitious, twenty-seven year old man who spent sixty dollars on a two-inch thick book with a funny looking floppy-disk measuring exactly five-and-a-quarter inches tucked in the back. To him, it was just another book he bought at the college book store. A book he needed as a requirement for a class on learning how to program a computer using a compiler. This was the next step. Beforehand, it was some introductory class on programing using BASIC. Yup 1986 was going to be a good year.

That young man was me. I was a Sergeant in the United States Marine Corps. I spent a year or so taking college classes at night working my way toward a degree. T'was was a pretty good deal. The Marine Corps was paying eighty percent of my tuition as long as I passed my classes. No problem.

Until, the admissions office said, "Mr. Riley, you have taken too many electives. You won't be able to enroll in any more classes until you complete English 101". No. Not  English 101. Not Again!

"Not English 101. Not Again"

I had taken the English Composition with Essay CLEP test six months ago and missed a passing grade by one point. One lousy, miserable, stinking point. It felt like Mr. Potter from It's a Wonderful Life had snatched my dream. It was at that moment my college career ended. Me and English 101, let's just say we don't get along.

I turned on my computer and said "let's see what this Turbo Pascal can do". I decided to create a flash card program for my young daughter. I didn't want her to read the screen, type an answer, and hit enter. Oh no, that would be too much work. I wanted her to use the arrow keys and move around and pick the right answer. No data entry for my little girl. 

With the help of two books by Ray Duncan I learned how to trap the keyboard using Interrupt 21 function calls. I also learned how to use Interrupt 10 to save and restore screen memory creating nice, fancy popup windows. Later I added true shadows to my popup windows by disabling the blinking bit which gave me a whopping 16 background colors. 

This was all fine and dandy. It kept me busy. Never really made a worthwhile "flash card" program. But I learned a lot. And it sure beat trying to master English 101.

Thus began my pursuit to create an exciting, functional working computer program. But where do I begin. I decided to modernize an old BASIC program I created back in 1986. After a year of nights and weekends that involved typing, cursing, compiling, retyping, more cursing, recompiling, printing, adjusting, readjusting, more typing and recompiling I had a program. I called it Zilch. The year was 1991. And there were two things I didn't know:

  1. Would anyone purchase this software?
  2. How long would it last?

Zilch v1.19 from 1995

Well it's been 30 years and tens of thousands of people have purchased this software. And it's still selling 30 years later.

Learn to tell a story

The past 30 years have been fraught with many hardships and many more wonderous moments. I would like to share a few insights I have gained over the years. Hopefully you'll find some of them useful.

  • Do not fall in love with your product. My software was "my baby". I spent a lot of time creating it  and I loved it. I nurtured it and most of all, told the world how lovely it was. When people tried to tell me what they thought about my software, I didn't listen. They would say "I'd buy your software if it did [ fill in the blank]".  I quickly jumped in, cut them off and said stuff like "No, you don't understand how my software works. It does this and you need to...". People were to kind to hang up mid sentence. They just didn't buy. 
  • 3,000 Views = 100 Downloads = 1 Sale. It's hard to get people to part with their money. Make sure you value every customer. 
  • Beware of copycats. From day one when you release your software competitors will find you. Better mousetraps are always being invented based off of similar designs. If you have a pioneering idea you will be copied. 
  •  Preserve screenshots and early drawings. At the start you never know how long your software will last or how many changes it will go through. Take pictures and preserve the memories from your early efforts. Someday you will want to look back at how it all started. Trust me.
  • Learn to tell a story. This is where I am at, right now after 30 years. It's taken me a long time. The story I have been telling for 30 years was a "transactional" story. It's been the story of what my software does, how it works, a litany of the features. Learn how to connect "emotionally" with your customers. People don't care about you or your software. They care about themselves, and how you can make their lives better.

I wish I played with my kids more

Do I have any regrets over the past 30 years. You betcha. Here's a few:
  • I wish I played with my kids more when they interrupted my keyboard time. Instead of saying "No, not now I'm busy". I should have spent 15-20 minutes playing catch or dolls. 
  • I failed to keep in touch with people who helped me along the way. I failed to keep in touch with Steve Payne from Craven Community College. He was my first in-person computer programming instructor. Hey Steve if you see this contact me. 
    (Discovered Steve passed away in Sep 2004 at age 53. RIP my friend).
  • Not listening to potential customers. (See Do not fall in love with product )
  • Having a Microsoft Windows only product.
Zilch v29.7 from 2020

Gunny Mike