Re: [stella] getting started

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