August 13, 2023

Amazing.

I could watch Svetlana Kapanina fly all day long. I love her technique. She is an amazing pilot.

And we’re the same age! I feel like she has more hours than I do.

Commodore 64.

I think it was 1982 when my parents bought me a Commodore VIC-20 for Christmas. I was very excited to have my own computer that had a keyboard and such; up until then my computer time was spent in the Apple ][+ lab at school and I was only allowed to sign up for time in 30 minutes increments per week. This was because I was an underclassman and wasn’t officially in a computer class. The VIC-20 allowed me to do a lot of experimenting with BASIC programs; a vast majority of my early programming learning came from retyping programs that appeared in magazines like “COMPUTE!”. I programmed my first cash register program on this computer and used that foundation to build the same program on the Apple ][+ (and later //e) systems at school, in half hour increments. The Apple version was much more robust because the computers had a bit more power; I saved enough money to get the 8K RAM expansion cartridge for my VIC-20 a few months after receiving the computer as a gift and I was very excited.

The computer lab at work quickly expanded with the adoption of technology and we had more robust machines by the latter half of my sophomore year. Since there were more machines I was allowed to sign for more than 30 minutes a week in the computer lab and I dutifully worked on my cash register program. It became fairly robust (for the time) and I would mirror the work on my VIC-20 at home. I was always (and still am) very interested in electronic cash registers and point of sale systems, so building a program to emulate what I saw at the local stores was a great way to learn good programming skills. If entering the same data in my program produced the same results as the computations I would see on saved cash register receipts, I was doing something right. It was my rudimentary checks and balances of my work.

Between my junior and senior years of high school I worked for the school district for the summer, cleaning the school with a handful of other students my age. It paid well and the work wasn’t too hard. It was actually something I enjoyed. I was able to save up some money and bought my first car and my next computer, a Commodore 64.

Photo from ebay

Since my cash register program worked well on the VIC-20 and the Commodore 64 was mostly compatible language wise, I was able to build a much more robust version of the program for the Commodore 64. I tested this program out at the family hardware store (much to the chagrin of the older generation) as a “second checkout” that was used a handful of times when the store was busy. I made a nifty little setup by adding a few accessories to make it behave more like a cash register. All of these photos are from various eBay auctions.

The mini TV worked will with the setup and I used some scrap lumber from the family store and lumber yard to built a little stand that held everything neatly in place. I tweaked the cash register program enough to build in some error checking. There wasn’t enough memory to hold a list of items, UPC or other codes, and price reliably, and I was still loading everything from cassette at the time. So, I divided everything up into departments and required an entered price obey parameter rules, for example, paint would be department 001 and the cashier couldn’t enter a price less than $5.00 or more than $50.00. I found myself to be clever.

I repeated the school cleaning job after graduating from high school and was able to add a few more accessories to my setup, namely a 300 baud modem and the coveted 1541 floppy disk drive.

With the disk drive I was able to introduce item price lookups by UPC or other coding, albeit all manually typed in by the cashier, but it worked and I was pleased. I also beefed up the interface, moving it from prompts that resembled a 2 line by 40 character display to something more like filling in an invoice. With the modern I was able to connect to local BBSes (bulletin board services) where other programmers shared their wares. I also had an early account on GEnie, or the General Electric Network Information Exchange, which used GE’s timesharing systems after business hours. I was able to get some time on an IBM PC, continue use of the Apple computers at school, and keep the Commodore 64 versions of my program all going at the same time and I shared them all through the local BBS (which was a long distance call my mother didn’t appreciate) and through GEnie. I continued the practice during my freshman year of college and I ended up creating floppy disks of the program and selling them through the mail as shareware. This funded my spending money during my freshman year of college but distracted from my studies and mandatory instrument practice routine for music school.

In 1987 I received a message from a man on GEnie named Patrick. I don’t remember his last name. He offered me a decent amount of money for my program, all three versions (Commodore 64, which also ran on the 128, Apple ][, and IBM PC), if I promised not to share it through the BBSes anymore and take it off GEnie. I told him I’d send him my disks, my notes, and would take things down when the check was in my hand. I figured he was full of crap. He was not. I received a check, deposited it in my account, and sent him everything I had promised. My program was no longer mine and I wasn’t making and mailing disks anymore, but it was the end of my freshman year and I wouldn’t be returning.

The family was still not interested in computerizing point of sale operations at the family business, but the aging NCR posting machine was starting to require more maintenance than usual, so they did let me use my skills to write an Accounts Receivable program on a used TRS-80 Model II computer they had purchased for $100. The program grew as we added hard drives to the used system and subsequently upgraded the computer to new incarnations with more modern technology. The family used that A/R program up until the store was sold to new owners in 2010. At the time I had converted it to run on Linux, it stored everything it needed to maintain history for a customer, and quite frankly, was an exercise in amazement that something written in 1987 still chugged along 10 years into the 21st century.

During my years at Digital (DEC) I purchased a Rainbow 100+, DEC’s version of an IBM PC compatible, and rewrote the Point of Sale program from scratch. It was much more robust than the earlier variant and just needed a scanning mechanism to be fully like scanning registers at the time. I didn’t pursue sharing and selling the program, but once or twice in the early ’90s I believe I spied a variation of my original program in small businesses running seemingly MS-DOS point of sale software on a computer. The original screen layout I had introduced late in the game before receiving the check had a few of my quirks and this software I had seen in the wild had the exact same quirks. That was pretty nifty.