Jump to content
IGNORED

"Hello, World!" program and Atari 2600 Programming slides


Recommended Posts

Hello, retro-programmers!

 

This is my first post on the forum - but I'm by no means a stranger. I've been studying the subject of Atari programming for quite some time, and searching for Atari information invariably leads to something written or linked here.

 

So, first of all, a late (but warm) thank you everyone for removing the "fog of war" in countless subjects!

 

Back to the topic: even though I am far from being an expert (not to mention slightly ashamed for having never put together the time and effort to finish a full game), some of the experiments I've done led former coworkers in Brazil (was born there, moved to Canada last year) to invite me to present the topic at some development conferences.

 

Since I've recently translated the talk's support material from Portuguese to English (in order to speak at my current company, Uken Games), I thought the least I could do in order to give back (after all the lurking) was to share it here. :)

 

Doesn't come close to the nice tutorials and detailed specs referenced on the forum (nor it compares to material made available by "real" Atari programmers/researchers), but maybe can be helpful to people that are just beginning (or considering the idea).

 

It consists on a presentation with four parts:

 

- Core TIA inner workings (which always light a few bulbs over the heads of anyone who has ever seen the unique look-and-feel of Atari 2600 graphics, regardless of programming background);

- A quick Assembly 6502 overview (I explain the real hardware is a 6507, but refer to it as 6502 so people can find richer reference material);

- Showcasing a "Hello, World!" application (you all know it is not the one-liner of most platforms, but it works as an excellent showcase of the "frame lifecycle");

- A few advanced tricks (things like score mode, digit-scores and dynamic map generation) and links for those who want to learn more.

 

So here it goes:

 

- Slides: http://www.slideshar...2600programming

- Hello, World: https://gist.github....esterbr/5864935

 

(unfortunately we did not capture video/audio from the presentation this time. If you understand Portuguese, however, the original presentation and slides are here: http://chester.me/ar...sampa-2011.html)

 

Keep in mind that the goal was to bring people from zero to some point (in less than an hour), which demands inevitable oversimplifications (e.g., the memory map with particular mirrors, the capabilities of each object), not to mention less-than-optimal strategies(*) on the "Hello, World!" program. However, the code *does* work (tested on Stella and on real hardware via Harmony) and every line is explained.

 

Still, I'd love to know if you find errors/unforgivable omissions.

 

Again, thank you all for the invaluable content you've all produced through these years!

 

Cheers,

Chester

 

(*) REPEATing sync code instead of looping, writing PF1 on every scanline instead of only when needed, cleaning up in-frame instead of before the main loop and doing it only for the bare minimum registers, to list just a few... :ponder:

  • Like 2
Link to comment
Share on other sites

  • 3 months later...

Thanks for this Chester, I stumbled on your slide presentation while googling for "atari 2600 hello world." This is exactly what I was looking for. I've tried compiling your code, but the resulting program just displays a black background with no sprite output when I run it in Stella. I have not tried actual hardware.

 

Not sure if you are coming back to comment, but if anyone else has tried this, and has had better luck, please chime in.

 

I'm attaching my version of your source.

 

Also, I believe there was an error in your slide - your .WORD referred to FrameStart instead of StartFrame

source.asm

Edited by Joe Stella
Link to comment
Share on other sites

  • 4 months later...

Oh, I just realized I didn't have any alerts for replies, and never answered to either Tjoppen and Joe Stella - my sincere apologies. :_(

 

You both are entitled a coffee on me if you ever drop by Toronto! :)

 

If it is still in time:

 

Tjoppen: Feel free to reuse as much as you want! It's Creative Commons precisely to allow that.

 

Joe: Every time I open those slides, I find another issue. Glad you found the repository. Feel free to ask if you have further questions.

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...