tschak909 Posted February 3, 2021 Share Posted February 3, 2021 #Atari8bit shown here is how to use ANTIC display list magic stored in strings to make a static status bar in Atari BASIC. 6 1 Quote Link to comment Share on other sites More sharing options...
ivop Posted February 3, 2021 Share Posted February 3, 2021 This probably won't work every time. Especially if more variables are added. There's no guarantee that DLIST$ and STAT$ are properly aligned (1kB and 4kB alignment). A possible solution would be to overwrite the first three $70/112/'p' of the OS generated display list with a jump to page 6. Do your status bar there, including its screen memory, and jump back to the original display list. 2 Quote Link to comment Share on other sites More sharing options...
tschak909 Posted February 3, 2021 Author Share Posted February 3, 2021 1 minute ago, ivop said: This probably won't work every time. Especially if more variables are added. There's no guarantee that DLIST$ and STAT$ are properly aligned (1kB and 4kB alignment). A possible solution would be to overwrite the first three $70/112/'p' of the OS generated display list with a jump to page 6. Do your status bar there, including its screen memory, and jump back to the original display list. This is true. -Thom Quote Link to comment Share on other sites More sharing options...
+David_P Posted February 4, 2021 Share Posted February 4, 2021 Page 6 is an option... Quote Link to comment Share on other sites More sharing options...
xxl Posted February 5, 2021 Share Posted February 5, 2021 option is an E80 also 3 Quote Link to comment Share on other sites More sharing options...
tschak909 Posted February 5, 2021 Author Share Posted February 5, 2021 wait, what?! Quote Link to comment Share on other sites More sharing options...
xxl Posted February 5, 2021 Share Posted February 5, 2021 My point is, if someone absolutely wants to use E:ditor then they can use one that gives you the ability to build a text user interface. Currently available E: do not have this, so I suggest adding margins from the top and bottom as a standard first. 2 Quote Link to comment Share on other sites More sharing options...
ivop Posted February 5, 2021 Share Posted February 5, 2021 (edited) Here's plain basic. It takes 48 bytes on the bottom of page zero six. Edit: during sizecoding preparations, #Fready recently discovered that a DL jump also generates a blank line, which looks nice IMHO test.atr Edited February 5, 2021 by ivop 3 Quote Link to comment Share on other sites More sharing options...
ivop Posted February 5, 2021 Share Posted February 5, 2021 BTW I added line 10 so I didn't need to do that manually every time I checked if it was already working. If you leave it out, and only run line 20-80 once, you get the statusbar without a full reset of E:. It's a pity there are no width and height E: variables ? Otherwise, it would be ease to subtract 1 of the height, and only temporarily adding 1 while printing to the lowest line. That would be a low cost bottom bar. But alas. BTW2 note that the previous post does not overwrite anything of the original DL, even though the jump is wrong at the end. The first VBI will overwrite the ANTIC registers anyway with the contents of its shadow register. Looking into extending this to a top and bottom bar, but that would need to overwrite the $41 instruction at the end of the DL, and point back to somewhere on page 6, for the extra DL line and 40 bytes of screen memory. Quote Link to comment Share on other sites More sharing options...
ivop Posted February 5, 2021 Share Posted February 5, 2021 (edited) Here's both a top and bottom statusbar. That's 94 bytes at the bottom of page six. We could turn this into an AUTORUN.SYS, and save a bunch of BASIC token space Edit: the ; at the end of status strings is important, or it'll try to print a cursor on the next line, which is non-existent. Edit2: have a working AUTORUN.SYS now. Will release source etc... shortly. Working on a demo program. Must have been years since I've done so much BASIC programming test.atr Edited February 5, 2021 by ivop 3 Quote Link to comment Share on other sites More sharing options...
ivop Posted February 5, 2021 Share Posted February 5, 2021 (edited) Here's an AUTORUN.SYS version. It takes 40+40+8+6 = 94 bytes of the bottom of page six. The init code after that can be overwritten. Pressing reset, well uhm, resets the display list statusbar.atr statusbar.s Edited February 5, 2021 by ivop 1 Quote Link to comment Share on other sites More sharing options...
ivop Posted February 6, 2021 Share Posted February 6, 2021 Here's a version that can be (re)initialized over and over again from BASIC Downside: it uses 153 ($99) bytes instead of 94 bytes on the bottom of page six. Upside: if your BASIC program is RESET proof, you can reinstate the statusbars by running Q=USR(1536+94). Or if your program switches to other graphics modes for a while, once you get back to graphics 0, you can call the same USR() to get your statusbars back. statusbar2.atr statusbar2.s Quote Link to comment Share on other sites More sharing options...
Copper Posted February 8, 2021 Share Posted February 8, 2021 On 2/3/2021 at 9:18 PM, ivop said: ...l no guarantee that DLIST$ and STAT$ are properly aligned (1kB and 4kB alignment). 1k aligned? AFAIK dIsplay list has to be within a 1kb segment Screen memory 4k? I‘m quite some time out of Atari coding, so maybe I‘m wrong. ? 1 Quote Link to comment Share on other sites More sharing options...
ivop Posted February 8, 2021 Share Posted February 8, 2021 57 minutes ago, Copper said: 1k aligned? AFAIK dIsplay list has to be within a 1kb segment True, my wording was incorrect. But still, you cannot guarantee it won't cross a 1kB boundary. 57 minutes ago, Copper said: Screen memory 4k? Similar here. Screen memory cannot cross 4kB boundaries. 57 minutes ago, Copper said: I‘m quite some time out of Atari coding, so maybe I‘m wrong. ? No, you are right 1 Quote Link to comment Share on other sites More sharing options...
tschak909 Posted February 8, 2021 Author Share Posted February 8, 2021 I'm so glad my example was vastly improved upon. p.s. is nobody noticing that @xxl seems to be sculpting an 80 column driver with graphics? -Thom 3 1 Quote Link to comment Share on other sites More sharing options...
zbyti Posted February 8, 2021 Share Posted February 8, 2021 43 minutes ago, tschak909 said: p.s. is nobody noticing that @xxl seems to be sculpting an 80 column driver with graphics? Everybody knows that :] 1 Quote Link to comment Share on other sites More sharing options...
Copper Posted February 9, 2021 Share Posted February 9, 2021 I'm so glad my example was vastly improved upon. [emoji4]Absolutely [emoji41]My first ‚project‘ with CC65 and Atari in general since 1986 will be a status bar lib in C [emoji2957]Gesendet von iPhone mit Tapatalk 2 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.