This doesn't really count, but I'll mention it anyway. I got started programming on my friend's HP-65, after which I ported the program to his HP-41C. Yeah, they are calculators, but they were very programmable. I wrote a space wars program. We had to map out the progress by hand on graph paper. To move our ships, we would enter a vector (direction) and force. It showed us the coordinates, and we penciled it in on the graph paper. We had stars on the map with gravities acting on our ships, so the ship might not end up where we wanted it to go. Similarly, if we wanted to shoot a weapon, we'd select the weapon and enter a vector (direction). It was really pretty fancy. The space weapon damage had a spread and damage diminished according to distance.
As for non-calculator-style-computers, I eventually wrote a Z80 assembler game for a friend's homemade computer, and got a job programming in Z80 Assembler.
Then I bought my own computer, an Atari 800. I paid about $550 for mine and a week later it sold for about $130. Sigh.
Yeah, I know, I'm dating myself. Well, I used to date myself, but we broke up. We had nothing in common.
Anyway, what I'm really asking is what was the first commercially available home computer you programmed? Like I said, my first home computer was the Atari 800. I never upgraded it with disks. I always used a cassette tape deck. I programmed 6502 assembler on it.
I have a funny story about that.
As a self-challenge, I copied ROM game cartridges to tape so I could load the games from tape instead of inserting a cartridge. (No, I never sold tape copies of games or gave them to friends. Generally, all my friends had the same games and more, anyway.) It was pretty easy to defeat the copy protection. The typical copy protection was code that wrote data to the memory area where the ROM exists. Naturally, if the ROM is inserted, writing to that memory does nothing. But if you load the game from tape, writing to that memory area corrupts the game.
It was generally very easy to find the code that wrote to the ROM memory -- except for one game: PacMan. The person who wrote that copy protection was none other than Marc Benioff. Yes, THAT Marc Benioff, co-founder of Salesforce, formerly an Oracle guy. His copy protection was a bit more clever. He used indirect addressing to calculate the memory address in real time while playing the game. So there were no direct instructions to write to that forbidden ROM memory.
That didn't stop me. I found all the indirect memory writes and substituted a jump instruction in the places where all those indirect memory writes existed. As a result, instead of writing to any memory, the program would jump out of the ROM area to run my subroutine. My subroutine would check to see what memory the program was trying to write to, permit it if it was safe, but do nothing and return if the memory was in the ROM space.
Voila, I had a tape version of PacMan.
So to get back to the question, what was the first commercially available home computer you programmed and in what language?
Assisting my father at his business, as a 14 teen year old I was too lazy to handle paper tedious work.In my search of solutions:
1. I landed on a 100+ pages of Fortan manual a machine the size of a refrigerator, posibly a PDP-11 at the basement of the Polytechnic institute.
2. An HP-41C
3. a Data General beast with punch cards at an insurance office
All I wanted to do is Cost analysis, Bid preparation. So I used the HP-41C, hired an electrical engineer and an accountant to carry the work. There were no software developers at that time.
At some point I got a Z80, Atari 800 or something like this, I used also a 6502 for my assembler class and get into computer programming. But trully an 8088 was my first PC. It helped me to keep track of my CVs and nail my first job and do software development in C.
I did some Fortran on a PDP-11. It was a really annoying computer. You couldn't run a program unless it was stored in contiguous blocks on the drive. So the IT folks had to backup and restore the disks at least once a day. What moron decided to put that in the PDP feature set?