Subroutine to Print an Atari Display List


As I mentioned in my last article I am currently trying to teach myself programming on the Atari 8 Bit. Right now that involves looking at the Graphics capability and working my way through the book Compute!’s First Book On Atari Graphics.

Right now I am working on Display Lists.   One of the tools I am using to understand the example programs is to examine the actual display list after it has been altered.  But, when working with a display list the screen is often not a convenient place to view this information (as it is often not in a place where text can be easily printed to it).

I use an emulator for most of this – though I am testing things on an actual Atari machine too.  But the nice thing about the emulator is that is has a virtual printer.  Anything that is printed to the printer is actually displayed on the host computer as a simple text file.  That gave me the idea to write the function here.

I wanted to document it here for myself and, if anyone stumbles across here and finds it useful (in and of itself or to modify to their own taste) so much the better.

1000 REM ** PRINT DISPLAY LIST
1010 DIM DLS$(255)
1020 DL=PEEK(560)+PEEK(561)*256
1030 DLP=DL
1040 DLPV=PEEK(DLP):IF DLPV<>65 THEN DLP=DLP+1:DLS$(LEN(DLS$)+1)=STR$(DLPV):DLS$(LEN(DLS$)+1)=",":GOTO 1040
1050 DLPV=PEEK(DLP):DLS$(LEN(DLS$)+1)=STR$(DLPV):DLS$(LEN(DLS$)+1)=","
1060 DLPV=PEEK(DLP+1):DLS$(LEN(DLS$)+1)=STR$(DLPV):DLS$(LEN(DLS$)+1)=","
1070 DLPV=PEEK(DLP+2):DLS$(LEN(DLS$)+1)=STR$(DLPV)
1080 LPRINT DLS$;CHR$(12)
1090 RETURN 

Atari BASIC Graphics (COLOR & SETCOLOR)

In my continuing efforts to learn how to program the Atari 8-bit line decided I needed to step back when I started looking at display lists interrupts. I want to, eventually, learn to program this machine using assembler, but it became clear to me I needed to understand more about the concepts surrounding how the Atari draws to the screen, handles colors, and standard graphics modes. I pulled out my copy of Compute! ‘s First Book on Atari Graphics and my Atari Basic Reference Manual and set out to understand these topics.

This article is going to be my first foray into documenting my understanding of these so far. This article may not contain the correct information, but if it doesn’t, I will endeavor to come back to this article and post an addendum or follow up reference to a new corrected article when I learn more.

Continue reading “Atari BASIC Graphics (COLOR & SETCOLOR)”

Dipping my Toes into Atari 8-Bit Assembly – Hello World!

First the obligatory comment: It’s been a long time since I have posted anything at all. Not sure why per say just haven’t had a ton to say. Now on to what I want to say today.

Since I was a young child, I have had a fantasy about learning to program in assembler. Specifically 6502 assembly language for the Atari 8 bit computer line. I never really did much to make that ‘dream’ into a reality. I learned many other languages on a few different platforms, but my understanding of the 8-bit Atari internals was pretty limited.

As I have posted, I got an Atari 8-bit machine in the last year or two. I haven’t had a ton of time playing with it, but I would still like to learn 6502 Assembly. I decided to start playing with Mac/65 on the Atari itself and MADS on my MacBook Air M1 to see if I could even get a type in Hello world working, modify it a little and understand some of it. I’m not aspiring to become the next retro game developer for this platform or anything. I want to understand the platform/language at this level and maybe use it to springboard into the Commander X16 when it becomes available.

Continue reading “Dipping my Toes into Atari 8-Bit Assembly – Hello World!”

Apple M1 Dual Monitor Setup

It has been a LONG time since I posted last – truth be told, I haven’t done anything technical since the last post, really. I got super into the election coverage and have been focused on that. Now that it looks to be winding down – I won’t get into my politics here and now (maybe at some point) – I thought I would post about something new that I recently got.

HTC Evo 4G
First, a little perspective I had recently decided to move to the PC and Android. I had been using Apple Computers and the iPhone for a very long time. The last android phone I can remember having was HTC EVO 4G. Image by Christian Lo CC.

I probably did this about a month or so after my last post, so that wasn’t more than three or four months ago now. Long story short. I am back on an iPhone and back on the Macintosh for my daily drivers. My foray into Android left me missing the refinement of iOS, and the move into Windows (though I use windows every day for my job and I have a gaming rig that runs windows) left me really missing the integration that the Apple ecosystem provides.

Continue reading “Apple M1 Dual Monitor Setup”

Geeking Out with Linux and Other Updates

It has been a while since I have written anything for this site. I haven’t stopped working on the Atari, The Ben Eater 6502 project, or anything else. I have just been busy with lots of it and haven’t found anything compelling to write.

Atari Roots
On the Atari front, I have worked my way through the book: Atari Roots. This book was an excellent primer into the Atari system’s assembly language and understanding a bit about how it differs from typical 6502 programming. The book gives a pretty good overview of beginning assembly programming and Atari Memory mapping – but it will take more books and more study to master this topic (or even come close).

Continue reading “Geeking Out with Linux and Other Updates”

Ben Eater 6502 Update

As I mentioned in my last post, I have been working on the Ben Eater 6502 kit. I finally got the space to set up a proper workbench and have been hacking on it daily for the last week or so. This post is describing what I have done so far.

I’ve had a blast putting it together. If you aren’t very familiar with the kit/video series, you should definitely check it out.

BE 6502 Implementation

Continue reading “Ben Eater 6502 Update”

Atari 8 Bit

Quite a lot has happened since my last post. The world has gone into utter craziness with the global pandemic. I got the kit I mentioned in my previous post, more on that in a bit. And I have gone full bore Atari 8 bit crazy!

The pandemic has kept me working from home, mostly, and I’ve been busy with that. So not a lot of time to work on much. My youngest son moved out of my house, so I’ve been spending time doing a minor rehab in his bedroom, so hopefully, by next week, it will become my new office. I have also bought and set up a ton of old Atari 8 bit equipment (more than I should have really).

Atari

Continue reading “Atari 8 Bit”

6502 And Other news

It’s been a while

SQL Server
Hi internet, though I expect very few of my posts get much traffic – in any case if you are here, hello! It’s been quite a while since I have posted. My work has been a little crazy, and I’ve been working more in SQL Server versus Python for the last few weeks. So I haven’t had a lot to write here about that.

World of Warcraft
Additionally, I have recently started playing WoW again – big mistake. The addiction is back, but maybe finally waining a bit. I started playing it in mid-December (about the time of my last post – no coincidence there). My new little Hunter finally hit level 120, and I’m just idling around now doing world quests and such. So hopefully, I am starting to back away from that.

Continue reading “6502 And Other news”

A Python Function to Describe another Function

Noob Alert

Updated: 12/14/2019

what were you thinking?
It turns out that I wasn’t aware of a nifty little built in function to do something very similar when I wrote this article. I wanted to update this post to provide details on that.

If you use the built-in help function you will get very similar results to my function below. It is nearly always smarter to use a built in vs build your own so I would suggest doing this instead of what I metnion below. That said I’ll leave this up for reference to the individual attributes which might be useful in other applications

Continue reading “A Python Function to Describe another Function”