My first computer was a TRS-80 MC-10 purchased at Radio Shack for $20. It had 4KB of memory and had a .89 MHz cpu (point 89 MHz!) It also had the optional 16KB upgrade which would give it a total of 20KB of memory. All I can remember is that whenever the upgrade was added on, the computer tended to overheat and freeze up.
This computer was on the market for about a year before being discontinued which meant no commercially available software for it. Anything you had to do, you had to write yourself. Fortunately the BASIC programming language on this computer was about 90 to 95 % compatible with the TRS-80 Color Computer base model so any programs that did not use any machine language, or PEEKs and POKEs worked perfectly on this computer.
There were no high resolution graphics, all graphics were done with ASCII codes and CHR$ commands. The ASCII character set included about 8 block patterns in different colors. You could do some basic screen position writes with commands SET and RESET, which would place and remove a character.
Again, since there were no commercially available programs for this computer (at least that I ever saw) you had to type everything in from the manuals. Doing this you learned a lot about computers, variables (most of you didn't know what those were until Algebra in school), and logical flow of things.
Though I never really focused on programming later in life despite taking a few programming classes, I understood how they worked from a very young age and thus how computers think about things, logically and the order in which things happen.
From the instant your computer receives power, it is running a program. Modern PCs have a BIOS (Basic Input/Output System) which is usually a flash chip that contains a small program that tells the CPU what to do when it comes on. You might think everything works just because there is power, but that's not the case. It can't just say "Here's a video card go for it!" The CPU first has to know that there's half a dozen chips in between it and the video card, and also that there is RAM (computer memory chips) and there's another half dozen things between it and them and it will need to know how to talk to them as well.
So here comes the power, the CPU has a default mode where it reaches out to a set location and loads whatever is there, in this case the contents of the BIOS. Once the CPU gets an idea of how to talk to everything, it loads a second BIOS from the video card that turns the video output on and sets a variety of parameters in the video chip (now referred to as a GPU).
Once everything is active and working, the CPU see's what it needs to do next. In this case goes to Sector 0 Track 0 on the hard drive and loads what is there, which is the boot sector. That will then direct the CPU to load the first part of the OS, such as the bootloader. In NT based OSes it loads NTLDR which starts the OS.
By this time probably 10 to 15 seconds have passed since the computer came on, yet millions or even billions of things have happened.
In retrospect, 890,000 Hz of a CPU on the MC10 doesn't sound like much. Yet it could accomplish up to 890,000 things in 1 second, including loading BASIC into memory and leaving you at a flashing cursor.
From there you could type in small programs such as
10 INPUT "WHAT IS YOUR NAME",A$
20 PRINT "HELLO, "; A$
Since BASIC programs were numbered, the computer just went through the numbers to execute things in order. You could create subprograms in BASIC using GOSUB and RETURN but it seemed somewhat pointless with 4KB of memory, you'd probably run out of room before you could come up with anything useful.
So from a very young age, I had experience in understanding logic and how things worked inside the mind of a computer. Perhaps that is why I'm a good problem solver even today.
I hope you're enjoying this blog, and if you need PC help in the Fort Worth/Keller/Watauga/Haltom City area just shoot me an e-mail at email@example.com