Starting with Assembly is simply a bad idea because the tooling is terrible, and the learning curve of the tooling is steep. Filled with arcane codes and abbreviations and workflow right out the gate.
Programming concepts are pretty much universal. Being distanced from computer architecture is not a limitation for novice programmers, Python et al succeeds for a reason.
If you're determined to start with assembly, then I hope you can find someone to help you get started with all the machinations necessary to get from LDA #0 to A9 00 with as little drama as possible. Someone to show you how to use the assembler, what the directives mean, the linker, a symbolic debugger (if you're lucky). Someone to provide you with a .DUMPREG "START OF SORT" and .DUMPMEM BUFF $80 "AFTER INPUT" macros that you can liberally scatter throughout your code so you actually progress and get some insight into what the heck you code is doing. Perhaps some way to stop your programs that doesn't include hitting the reset button on the machine.
I mention that because, again, the tooling is terrible. All of the is easier said than done. None of the assembly books address this, none of the assembly program reference guides do either. Assembly is VERY black box. It's a large step up to even get started.
It's much easier to "learn programming" first at a higher level, where you can quickly progress and succeed, before turning into the dark hole that is assembly, particularly on older machines.
At least on a KIM-1 you can hit the STOP button and cursor through memory (being conscious that the memory architecture of the KIM is quite funky), something that simple is quite difficult on an Apple ][.
In general, Assembly for a simple well documented CPU is fairly close to most familiar calculator operations, and is demonstrated as a 1 to 1 relationship in the binary firmware. If folks drop on abstractions like Scratch/Basic/Python/Java the students will develop a random notion of what Register/Stack/Heap even means.
I would recommend looking at a few random samples of Ben's build series, as he covers most first year subjects in subtle efficient ways.
Soldering kit PCB or Emulators are insufficient to demonstrate a physical bus wire harness, clock timing, and memory layout. Best of luck =3
I remember during one drought, the day the LA Department of Water and Power was going to declare water rationing, we got, some crazy number, 7-8" of rain in the basin.
We got so much, we got "Lake San Fernando Valley" as the Sepulveda Dam did the job it was put up to do all those years ago and flooded. People had to move so fast (behind the dam is the a large park and recreation area, no homes were directly impacted) they abandoned their cars, and, later, divers with scuba gear were being arrested for looting them.
So, does that make AIX that last one standing of the original, commercial Unixen?
And by that I mean those commercial OSes that started with AT&T and drifted from there. Not to slight, say, the OpenSolaris children, per se, or the open source BSDs.
There were so many back in the day, with so many platforms and CPUs. HP, IBM, AT&T, SCO, Pyramid, Ridge, Sun, Sequent.
I bought that. (We just don't discuss how much money was spent in the 80's and 90's on hardware, books, software, etc.) I had to drive from the So Cal South Bay up to Sherman Oaks to find a store on Ventura Blvd that had it. It was pretty cool at the time, but, it didn't have very good documentation on getting "your first app" up, so it mostly just sat and lingered.
There was a lot of reliance on the Smalltalk books. While the blue book was common, the green (history) and orange (how the GUI works) were not. I don't even recall stumbling across those at OpAmp back in the day (and if anyone would have had those, they would have). I was very excited about ST back in the day.
All of my forays into ST ended up being a struggle and I never got any real momentum to make progress.
I don't read much any more. Mostly magazine articles.
I did re-read "The Long Run" from Daniel Keys Moran (one of the very short list of books I've re-read, and this was #4 or #5).
"Were you taught to hate Peaceforcers?" "Taught? No."
The only new book that I read was "Heat 2" by Michael Mann and Meg Gardiner.
It was "ok". It honestly felt like a mashup of "Heat", "Miami Vice", and "Blackhat". So, not as fresh as I would have liked. (Mind, I really like all of those movies.)
I'll see the movie when it comes out, but the book was just "ok".
As I heard the tale, on the Standard Missile, they don't recirculate the hydraulic fluid, they just spit out as the missile flies. It's a wonderful engineering solution.
Read the original Inside Macintosh, since that's about as fundamental and basic as it gets. See how they did the API for the Event, Window, and Control Mangers.
Something akin to: "Right now, you're carrying more computing power than what's on Voyager. And I'm not talking about your phone, I'm talking about your keyfob."
Programming concepts are pretty much universal. Being distanced from computer architecture is not a limitation for novice programmers, Python et al succeeds for a reason.
If you're determined to start with assembly, then I hope you can find someone to help you get started with all the machinations necessary to get from LDA #0 to A9 00 with as little drama as possible. Someone to show you how to use the assembler, what the directives mean, the linker, a symbolic debugger (if you're lucky). Someone to provide you with a .DUMPREG "START OF SORT" and .DUMPMEM BUFF $80 "AFTER INPUT" macros that you can liberally scatter throughout your code so you actually progress and get some insight into what the heck you code is doing. Perhaps some way to stop your programs that doesn't include hitting the reset button on the machine.
I mention that because, again, the tooling is terrible. All of the is easier said than done. None of the assembly books address this, none of the assembly program reference guides do either. Assembly is VERY black box. It's a large step up to even get started.
It's much easier to "learn programming" first at a higher level, where you can quickly progress and succeed, before turning into the dark hole that is assembly, particularly on older machines.
At least on a KIM-1 you can hit the STOP button and cursor through memory (being conscious that the memory architecture of the KIM is quite funky), something that simple is quite difficult on an Apple ][.
reply