The Toshiba MSX home computer, and 64Kb of RAM
When I was young, I grew up surrounded by old computing and electronics magazines, issues from the 60’s, 70’s, and 80’s, a majority of them being the popular publication creative computing. I used to read them voraciously, during a time when PCs (mostly running Windows 3.1) were just beginning to spread into organisations, schools, the occasional library, and to a somewhat rare extent, homes.
I considered myself an antiquarian when it came to these old computing magazines and publications, and enjoyed reading about how the very first home computers looked and operated, about the DEC PDP-11, the Macintosh, the IBM PC with all the Charlie Chaplin adverts, and how the landscape of personal computing was constantly evolving.
Thinking back on all those old computer magazines and articles, what I’m really nostalgic about is my dads Toshiba MSX home computer, which he had bought during the 80’s. The Toshiba MSX home computer was first announced by Microsoft in 1983, and conceived by the then vice-president of Microsoft Japan, Kazuhiko Nishi. The MSX computer was quite famous for being an architecture that major Japanese game corporations wrote games for, before the Nintendo era (the first version of metal gear was written for the MSX architecture). This was the first ever computer which I learned to program on, a curious machine (at the time) that was hooked to a CRT television display via RF cable, and programs that were stored on (and loaded from) audio cassette tapes.
The MSX HX-10 model which my dad owned was an amazingly simple machine by today’s standards, having no persistent internal storage or hard drive, instead relying on an external audio cassette recorder to load and store programs on cassette tape (there was a cartridge slot, but audio cassette tapes were widely used as they were a cost effective medium). The HX-10 model was built atop a Zilog-Z80 processor and came with 64Kb of RAM. User space was about half that, giving about 28Kb for the user with the rest used by the system, which was basically what you had to work with. The machine used a version of BASIC known as MSX BASIC which came pre-installed in the ROM, and was loaded into memory when the machine was switched on.
My dad was (and still is) an avid programming and electronics hobbyist, and taught me a lot about coding and computer internals using the MSX HX-10 machine we had at home. I recall him learning and programming certain sprite based game routines in Z80 assembly, as the graphics processing was quite slow when programmed directly in MSX BASIC. Back then, knowing assembly was pretty much the norm, as it was the only way to write games with fast and smooth graphics on machines like the MSX HX-10. Running into errors or strange issues was an exercise in diligent and patient problem solving, there was no internet available to search for solutions, troubleshooting was through books and manuals.
Thinking back, I now realize that it was a time period where I was so used to the MSX machine, that it was a strange context switch to work on a PC running Windows/Linux for the first time. One would assume that it would be trivial (and even a welcome change) to switch from a terminal based 80’s machine to a PC running a GUI based operating system, but trust me, I found it very hard to give up the whirring tape recorder of the MSX machine and the television set as a VDU.
Learning about computers and programming from a very young age, has been influential towards what I do today in my career as a software engineer and developer. Despite all the latest advances in hardware, software, programming languages/tools, frameworks, etc (all of which I enjoy learning and working with), I am still drawn to vintage computers and old school programming, in a large part due to my experience with the Toshiba MSX. That was a time period I can always look back on and count myself lucky to have been through, a journey that has always inspired and motivated my love of technology, computers, and coding.
Image credits (in order of appearance):