I'm new to the group, and I found this thread and topic fascinating, so I thought I'd chime in.
Jac touched upon something above, when he said that learning the 6502 and computer system built from it was "... an oasis of logic in a world that was going insane around me". Yes. And the world continues to go insane, seemingly at an accelerating pace. Creating a piece of computer software - understanding how it works - is like controlling a small corner of the universe- creating a little pocket of reverse entropy amongst all the chaos. I sometimes find people hard to deal with- they don't act in predictable ways, don't call you back, don't do what they say they were going to. A computer is the reverse of people- very predictable, "logical", dependable- if you give them a clear set of instructions, computers faithfully carry them out, dozens, hundreds, or millions of times, with no complaints. They're "models of sanity and integrity" in an insane world.
There's the nostalgia aspect of it, too- my first experience with microcomputers was at my parents' house. In 1981, I was 27 years old, and in the Army. I came home on leave (I was a career Army Bandsman- 22 years) to visit them. My Dad had purchased a Radio Shack TRS-80 Model 1, and he sat me down with it and showed me a few commands. I went through the user's guide, which had various example programs in BASIC, which I typed in and ran. I found this totally engrossing and fun. When I got called to dinner, I realized I had been glued to the computer for about six hours! I was hooked! A year or so later, I got a VIC-20, and then a C-64 when the prices at Toys 'R' Us came down a bit. It's a bit funny that Toys 'R' Us was my computer store, but that's where you could find all of the 8-bit machines of that time, and a lot of their accessories (and some good programming books, too).
On the C-64, I found programming to be interesting, and so satisfying to get a program working that I had figured out from scratch- the logic of it; the translating of the algorithms to actual code. I experimented with several languages- but what I liked doing best was composing small machine language (really, assembly) routines with my HESMon cartridge. Programming in assembly was obviously the way to go- you could control the program flow exactly, and the speed of machine language ran circles around BASIC.
Our fascinating little 8-bit machines have been bypassed at supersonic speeds by the 32- and 64-bit leviathans on the "information superhighway", but these multitasking mutated muscle machines are almost beyond mere mortals' ability to comprehend everything that's going on inside them. Commodore BASIC V2, as implemented on the C64, is a large program, but it's small enough that, if you have a good memory map of the system, you can follow along the code and understand it. (Not that I do, yet, but it's possible, and I'm understanding bits and pieces of it) I've had a resurgence, in the past couple of months, of my interest in the Commodore 64, which has led me back to my love of the '80s- programming in assembly language. I don't have C-64 hardware, so I'm making do for now with the VICE emulator running on my Windows 7 laptop. It's amazing how well the VICE emulator mimics the operation of the C-64. The team that created the emulator must be a bunch of true eggheads. And I mean that in the most complimentary way!
The bottom line? I'm programming the 6502/6510, not because I'm looking to create anything useful with it- but entirely because it's fun, interesting, engaging, satisfying- and it keeps my brain working.
Regards to all in the group!
--Doug