Subject: Re: [stella] getting started From: "Roger Williams" <mer02@xxxxxxxxxxxxx> Date: Thu, 27 Sep 2001 20:31:46 -0700 |
> << > What you need to understand is that you don't come to Stella to learn > assembly language. > << > > I wouldn't be that discouraging. > I didn't mean it quite that way. As I said, I have fallen completely under Stella's spell. The thing is you don't come to Stella to learn Assembly, you come to her to learn something much more profound -- how to program Stella (or anything like her). Like many early computers Stella provides no easy way to do anything. Every simple task is a test. Consider the closest thing Stella has to "hello, world" -- Nick Bensema's beautiful tutorial. It doesn't even have "world." (Maybe I should have added "world" instead of "there" in the asymetrical demo!) That's an awful lot of code to do such a simple thing, and that's typical. You experiment a lot because you can never be quite sure how Stella will react to a cute trick which seems necessary to get the job done. On the other hand, if you do come to Stella to learn Assembly, then when you have learned to program her you will be able to program ANYTHING. x86 Assembly will look like a high-level language to you. (Who needs C, huh? Really!) But you'll also come to hate the timing inconsistencies of a multitasking environment. I learned to count cycles on a 8080A, but then I didn't have to do it across the video scan line! Sheesh! I thought it was a pain to manage my cycle count in a 60 Hz interrupt, but this is a whole 'nother level of craft and discipline. And that's what it's really about. This kind of programming is like cabinetmaking, as opposed to normal programming which is more like carpentry. Here, imperfection is not an option. It's a way of thinking that affects the way you see everything. The fact that anybody has ever done anything useful on this platform is a challenge to me. But doing something useful of my own requires a kind of concentrated effort I have rarely had to put out in the last 10 years or so. Years ago I wrote a number of program hacks for a 6800-based printer that did everything in software timing. (I even had to write my own cross-assembler in BASIC.) Stella reminds me a bit of that, but even more so. That was mid-80's tech; Stella is mid-70's. I think it would be valuable experience for any programmer to play with Stella, if only to learn what is possible with limited resources. In fact I wish more would. Because you won't just learn how to program in .asm; you will learn an entirely new way of thinking about the machine. As an early book told me, there is nothing magic about the CPU or video controller or whatever; they're just circuits that could be breadboarded and tinkered with if you had a really, really big breadboard. Stella requires you to think about things that normally go ignored by programmers. I like that, a lot. To continue an already overloaded metaphor (and to answer another comment) Stella might be a bitch but the valiant knight who puts in the effort can know all of her secrets. The whole point is that when you have written a program (PROGRAM, not just GAME, OK?) that works, you have "tamed the bitch." That is what she is there for (boy, is this getting intensely sexual or what?). So to circle back to the wandering thought that started this, I didn't mean to discourage anybody from cracking their knuckles and trying to ride Stella. But I would let you know that you are taking on a lot more than the task generally known as "assembly language programming." You are likely to end up just as weird as I am if you succeed. --Roger Williams - Archives (includes files) at http://www.biglist.com/lists/stella/archives/ Unsub & more at http://www.biglist.com/lists/stella/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[stella] getting started, Glenn Saunders | Thread | [stella] Reversed PF1 register (was, Thomas Jentzsch |
Re: [stella] Generating a health ba, Roger Williams | Date | Re: [stella] Generating a health ba, Erik Mooney |
Month |