Rob Earhart's WebLog

Childhood computers

So I was visiting my parents the other day.  They've been going through old boxes of stuff, simplifying a little, and had stumbled across the first home computer we bought: a Commodore 128.

This was the state of the art when I was in sixth grade, I think: a 1mhz 8502 processor (2mhz if you disabled the 40-column video chip, which shared bus bandwidth with the processor), and an extra Z80 for running CPM, with 128k of RAM, and a 5.25" floppy drive which could hold about 360k (double-sided, at that).  Video was either the old C64-style 40x25 character display (or 320x200 pixels if you wanted graphics, with some pretty severe color restrictions), or the new 80 column chip (with its own memory, so you could use it while running the processor at 2mhz).

IIRC, at least part of the system was written by Microsoft (I think there was a "Microsoft Basic" banner when you turned the thing on).  I probably don't have coworkers who worked on it, though--anyone who was at Microsoft that long ago would be extremely rich and most likely retired; Bill Gates would've been around, and maybe Steve Ballmer, but the next in line after them is Mark Zbikowski (look at the beginning of any Windows PE file--see the "MZ" signature?  That guy.), and I think Mark got there after that.

So I spent the better part of a day re-reading the programmer's reference manual, just completely inhaling it.  It was great (although my wife and parents were less amused; I told them that if I didn't like computing machines to this extent, I probably wouldn't have gotten into kernel development).  It's amazing how much the perspective of twenty years of experience with other machines makes a difference; I think I understand the thing a lot better now.

Of course, reading it, the idea came to me that I could easily write an assembler for the thing... maybe a C compiler... and it hit me that implementing multiple threads and a single-priority round-robin scheduler would be pretty easy... I wonder how hard it'd be to write an MSIL->8502 translator, and implement just enough of the CLR to run something interesting...?

I probably won't get around to all that; I have other fun side projects I'd rather work on.  But I still really like the machine, for all of its limitations; it's fun to write assembly for a processor with 8-bit registers, a 16-bit hardware address space, addressing 128k of RAM.  It's fun to work with a machine where the processor logic diagram actually ends with the physical pins; it's so simple.  It's like writing a sonnet; the constraints make it more challenging, more fun.

Published Saturday, December 25, 2004 2:06 PM by earhart
Filed under:

Comments

 

Denny said:

Hey! I had a C=128 way back...

http://www.oldsoftware.com/Abacus.html
you can get some stuff there I think.


or this link:
http://www.centsible.com/c64feat.shtml

BTW: I did some kernal hacking on the 128's
Abacus GmbH paid me with a bunch of free software for finding and documenting a few bugs they had; one was the basic 128 compiler did not handle the 128's MMU chip maping of ram and rom address space so if you used it for some stuff like modem programming it would at times lockup the system.....

the code for passing values between blocks and running code between them was interesting..
had to store values in a set of addreses and then do an indirect Jump to Sub ROutine to the kernal rom.
December 25, 2004 5:52 PM
 

crusty old guy said:

I never had a c128, I started on a Vic 20, then a c64...

A few weeks ago my father found them in his basement and asked if I wanted them. I had to say no, I have an unused dual Pentium Pro next to my desk -- why would I mess with a Vic 20?
December 26, 2004 8:23 AM
 

Michael Kaplan said:

I started on an Osborne 1 (the first "transportable", with an ID number lower than the one in the Smithsonian) and then an Epson HX-20 (which I think was the first laptop). Never touched these other machines....
December 27, 2004 5:40 AM
 

Mike Dunn said:

Ah, the good ol' C=128. I had a 128D that I used all thru high school and college. Back in those days it was acceptable (and normal!) to turn in papers printed in dot matrix. ;) GEOS 128 was da bomb.
I finally retired the machine when the keyboard got damaged in an earthquake, and I had gotten a job in a Windows shop so I needed a PC anyway.

Funny that you mention contemplating doing some programming on the C=... now that I'm a Windows dev I sometimes think about going back to GEOS and trying to program for that. But I don't have any dev materials for it so I doubt I could get very far.
December 31, 2004 9:01 PM
Anonymous comments are disabled

© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Microsoft
Page view tracker