Jump to content
IGNORED

New GUI for the Atari 8-bit


flashjazzcat

Recommended Posts

The mouse control is driver based, so a different port shouldn't be an issue at all! :)

 

The problem is that POKEY's PORTB register is used for memory management XL or XE systems, while on the 400 and 800 used it was for the 3rd and 4th joysticks. From what I've been reading, I can't imagine that this GUI would work at all on a 48K system (such as the 800 or an expanded 400), and if PORTB is being used for joysticks, then it is most certainly not being used to access the uppermost 16K on 64K systems or any expanded memory on 130XE (or RAM upgraded) systems.

Link to comment
Share on other sites

I tested this for Candle a year or more back and it may have involved a CPLD update at the time. I haven't kept any info about it unfortunately... Maybe one of the Incognito threads has some info.

 

MrFish kindly gave the ROM a spin for me and sent a detailed crash report back. Already traced most problems back to a bug in the memory manager's FREE routine (which was - remarkably - decrementing the bank header's free page count rather then incrementing it for every page released; must have been on fire that day).

 

I'm also working around a chewy issue with the auto-updating list boxes, which clear the item selection every time they're repopulated. I've come up with a kind of process hash code which will mean a task will always have a completely unique ID (distinct from the PID) so the Profiler can easily do incremental list updates (preserving the item selection bit unless the item is removed from the list).

  • Like 1
Link to comment
Share on other sites

Feel free to run it on one. :)

 

Thanks for the idea. The thing is, I just switched it over in Altirra, and you've got this thing running so well on a 6502 at this point that the 65816 hardly feels like an upgrade -- at least running it in this unoptimized state. All of the recent font and window rendering improvements have really made a difference. This bodes well in light of the same tests performed with the first demo you released.

Edited by MrFish
  • Like 1
Link to comment
Share on other sites

AFTER, and only after the 6502 version is perfected, I would love to see this thing fly on an 816. Just tweaking the blitter routine alone should be an improvement.

 

Just a thought :)

What I'm saying is you can run it on anything you like now. No illegal Sally opcodes are used and no cycle counting employed. I don't intend to make any tweaks to anything simply because there should be no need to do so. The blitter - like everything else - should simply work faster on a 65816.

  • Like 1
Link to comment
Share on other sites

Here's Altirra running the full window drag @7.14Mhz (65816):

 

 

Here's the rub: the blitter code's on the cartridge, so unless "Shadow cartridges in fast RAM" is selected, you don't see a whole lot of difference.

 

Idle CPU usage with multiple Profilers is naturally very low, and I notice no issues with the mouse pointer here or at 14MHz - at least in emulation, which is the only place I can test it.

Edited by flashjazzcat
  • Like 2
Link to comment
Share on other sites

Here's Altirra running the full window drag @7.14Mhz (65816): [YouTube Video]

 

Here's the rub: the blitter code's on the cartridge, so unless "Shadow cartridges in fast RAM" is selected, you don't see a whole lot of difference.

 

Idle CPU usage with multiple Profilers is naturally very low, and I notice no issues with the mouse pointer here or at 14MHz - at least in emulation, which is the only place I can test it.

 

Alright, I thought there might be another explanation, as it almost seemed too amazing. None the less, the GUI's speed has improved dramatically over the last demo, especially considering we are now running multiple instances of applications.

Link to comment
Share on other sites

Looks like we will need to emulate a banked cart in RAM. Is the selection matrix available somewhere?

Anything which provides at least 8x8KB banks at $A000 will do. Sixteen banks are better. Bank switching register can be anywhere, and startup bank is unimportant (all banks have the same 16 byte record at the end).

Link to comment
Share on other sites

Not really fussy. The AtariMax 1Mbit uses a write to $D500-$D50F to select the bank. Other carts, like Sic!, use a single register. I just need to change a few lines of code to make it work with any scheme. Being able to turn the cart off completely is also useful.

Edited by flashjazzcat
  • Like 1
Link to comment
Share on other sites

so I hate to add another project to the ever growing list of 'things I might do someday,' but I think it'd be really cool to get this working on the VBXE, the obvious advantages being hardware blitter, greater resolution, color support, etc. I know you are busy enough as it is, and I don't know how you'd feel about this, but I'd be willing to take on the task of VBXE support on a 'when I have time' basis.

  • Like 1
Link to comment
Share on other sites

Sure - it makes sense to take advantage of it one day. The trouble is, the graphics get their speed (in part) from not channelling writes through a "put pixel" routine. There's a lot of direct screen access so you'd basically have to rewrite the entire graphics library, tailored for VBXE. It'll be a long time before I even have the necessary stuff documented, but yeah: duly noted! :)

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