TGB1718 Posted April 26 Share Posted April 26 (edited) 7 minutes ago, Ricky Spanish said: For some reason, I only get 1/2 horizonal screen with some experimental graphics programs. Could be because you're crossing a 4K boundary without a LMS instruction to go over the boundary Edited April 26 by TGB1718 Quote Link to comment Share on other sites More sharing options...
Ricky Spanish Posted April 26 Share Posted April 26 3 hours ago, TGB1718 said: Could be because you're crossing a 4K boundary without a LMS instruction to go over the boundary Think of me as a dummy. Translation ? Quote Link to comment Share on other sites More sharing options...
+slx Posted April 27 Share Posted April 27 6 hours ago, Ricky Spanish said: Think of me as a dummy. Translation ? The Atari’s display is defined by a display list which is in essence a program for the ANTIC graphics chip. It defines how many lines and which graphics modes are on the screen and where in memory the data for those lines comes from. The LMS instruction is used to define where to read the graphics data from. A different part of memory can be used for every graphics line (mode line) on the screen but if you don’t specify a new address the next line will be read from memory after the last one. So if you tell ANTIC to start with a hi-res character line (Gr.0 in BASIC) at $8000 the first character will be read from there, the second from $8001, etc. If you don’t add a new LMS the first character of the next line will be loaded from $8028. If the next line is a hi-res graphics line the first 8 pixels in that line would be defined by the bits of $8028. If that suits you for whatever reason, you can grab screen memory from a different address for every graphics (mode) line. On the 130XE or with compatible memory expansions you can even grab screen memory from a bank that is not currently visible to the CPU. Shifting the load address during vertical blank can be used for vertical and horizontal scrolling without moving lots of graphics data (which seems to be a lot more complicated and timing-sensitive on the C64). Due to hardware addressing limitations ANTIC cannot cross a 4K boundary while reading screen memory. You have to manage this and add at least one extra LMS instruction mid-screen to point it to the rest of memory. (You can also define a DLI on every line to change a few parameters like colours or player position to enhance the display. The multicolour pictures above probably make heavy use of that.) I am not an expert on this but there are lots of explanations in various magazine articles, De Re Atari, the Altirra Hardware manual, blog posts, etc. 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.