Jump to content
IGNORED

Errors in the Stella Programers Guide


Syntaxerror999

Recommended Posts

Recently I've been reading the Stella Programers Guide that was written by Steve Wright back in 1979 (re-written by Charles Sinnett in 1993) and I found an entry (not counting a couple typos) that seem like an error. Im' not a programer, so maybe I'm just misunderstanding the material.

 

Section 8 of the chapter on the TIA chip...

 

With the horizontal positioning command confined to positioning

objects at 15 color clock intervals, the motion registers fills in the gaps by

moving objects +7 to -8 color clocks. Objects can not be placed at any color

clock position across the screen.

 

Shouldn't it read "Objects CAN be placed at any color clock position across the screen."

 

Can anyone else find any other errors? I'd like to post an erratia on this (and maybe the field service manual as Ive found a bug or two in there).

Link to comment
Share on other sites

I can see your point, but here's a different perspective.

 

What if it's saying:

 

With the horizontal positioning command confined to positioning objects at 15 color clock intervals, the motion registers fills in the gaps by

moving objects +7 to -8 color clocks. Objects can not ARBITRARILY be placed at any color clock position across the screen.

?

 

Yes, you can place objects at different color clocks, however, in light of the previous sentence, I think that contextually it may be meaning that you can't just place then wherever you want-- it has to be in positioned relatively to where it was defined previously.

 

I could see it going either way with this one.

 

-John

Link to comment
Share on other sites

In my opinion, that whole section is poorly written and contains some erroneous or "not quite right" information.

 

Strobing the reset horizontal position register by itself (i.e., without using HMOVE for fine-positioning) does *not* limit you to positioning sprites at 15-clock intervals-- it limits you to *3*-clock intervals (because 1 cycle = 3 clocks). It's only when you strobe the reset register after using a 5-cycle positioning loop that you're limited to 15-clock intervals. Yet there's no specific mention of the loop method at all, just some statements which seem to imply that (1) the reader is expected to already be familiar with the loop method, and (2) the writer doesn't realize there are alternatives to using the loop method, or doesn't think the reader needs to know there are alternatives.

 

You do *not* need to strobe HMOVE right after WSYNC (i.e., a "cycle 3" HMOVE). You can strobe HMOVE at any time from cycle 75 to cycle 3 and get the full range of "normal" movement (from left 7 positions to right 8 positions). And you can strobe HMOVE at cycle 73 or 74 and still get the full range of movement, but with no right movement-- i.e., from left 15 positions to left 0 positions (or no movement). You can also strobe HMOVE at other times between cycle 55 and cycle 20 and still get some amount of movement (depending on the value in the motion registers), but not the full range of movement. You can even get *more* than the normal range of movement by modifying a motion register after strobing HMOVE, if you do it in such a way that the sprite's "more movement needed" flag doesn't get cleared by the HMOVE comparisons.

 

Strobing a reset horizontal position register during HBLANK does *not* position the sprite at "clock 0." It actually positions the sprite at screen position 2 (clock 70) if the sprite is a missile or the ball, or at screen position 3 (clock 71) if the sprite is a player. Obviously, "clock 0" is a relative term, because it depends on where we start numbering from. In this case, "clock 0" would refer to the *active* clocks, or numbering the clocks from the end of HBLANK. I think it makes more sense to number the clocks from the start of HBLANK, since that's where we start numbering the cycles. But even if we number from the end of HBLANK, it should have said "clock 2 or 3" instead of "clock 0."

 

The sprite does *not* get set to the same clock as when its reset register was strobed-- it gets set to the position that's 4 clocks later (missile/ball) or 5 clocks later (player). (This is assuming the reset register wasn't strobed during HBLANK.)

 

Nevertheless, the "Stella Programmer's Guide" is still an invaluable and essential reference, even if some information is "not quite right" or needs to be supplemented with more accurate or more technical information from other sources.

 

Michael

Link to comment
Share on other sites

  • 10 years later...
On 11/7/2010 at 11:17 PM, Syntaxerror999 said:

Section 8 of the chapter on the TIA chip...

 

With the horizontal positioning command confined to positioning

objects at 15 color clock intervals, the motion registers fills in the gaps by

moving objects +7 to -8 color clocks. Objects can not be placed at any color

clock position across the screen.

 

Shouldn't it read "Objects CAN be placed at any color clock position across the screen."

This was a typo in the reconstructed version by Charles Sinnett, as the original text shows "Objects can now be placed at any color clock position..." instead of "Objects can not be placed at any color clock position..." ?

 

image.thumb.png.367f852015b676c9bcfca0909349519f.png

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...