Jump to content
IGNORED

Bank switching 1MB


ZackAttack

Recommended Posts

From my own experience I would say the opposite is true. You can only overcome the problem with massive redundancy (code and data), because usually there is quite a lot of code and data which is reused. So normally you would need access to multiple small banks at the same time. And then you have to bank switch a lot more than with larger banks.

 

 

I would have to concur. I have made 128K demos of animated images and music. I ended up repeating about 1K of code per bank and used 2 separate banks to keep track of addressing and indexing. I've also done text message displays up to 256K and it was the same. I'm not as savvy with the 650x as some here, so I would not say going up to 1M is impossible, but the biggest issues I hit were in branching too long outside the logic loop in trying to keep track of all the banks and indexes. You're approach intrigues me. It does seem wasteful to an extent, then again, if it doubles the current maximum hardware capacity, that would make the overhead worth while.

In my code I use GRP1 as the main and then used GRP0, ENAM0, ENAM1, ENABL to display a full frame rendering.

For applications such as this, the more banks the more pages.

; Revision beta 97. Code is all nicely cleaned up.

; Now it is time to enter text & control codes.

; -----------------------------------------------------------------------------

; Each bank holds just over 10 pages. 32K/4=8 banks.

; Less 1 bank for title and control code leaves 7 banks.

; Less 1 bank for game graphics and fonts leaves 6 banks.

; 10 pages times 6 banks = 60 pages of text.

; With remaining bytes from the graphics bank we squeeze out five more page for 65 total.

; I put the egg in page 0 leaving 1-64 for the twisterplot.

; At 12x12 for standard page text we get 144 characters per page.

; Times 64 pages we get 9216 characters per game.

; Including the 2 additional rows of 2x12 by 64 pages, that's 1536 more.

; All totaled we can display 10752 characters per game at 32K.

; This means we effectively use 1/3 of the total rom for text!

; Best of all, it is flicker free text!!!

 

Your method would prevent the use of the addition bytes per bank for those additional 5 pages per 32K, however, it would expand the storage x32.

That's about 295,000 characters or roughly 37,000 words per game! That would make for one amazing read. 30,000-50,000 words is considered a Novel.

Think about that... the Atari 2600 being able to display an entire NOVEL.

True, like the Tiger chips, not a whole lot of demand. This is mainly due to the cost of producing a cart using those chips.

Still, it would really be something to see.

 

Keep up the great work!

Link to comment
Share on other sites

My estimate is that it would cost $15-$20 USD to construct a 1MB cartridge. Is that reasonable?

 

I was thinking about this some more. Using $0?3e and $0?3f provides 32 locations which can be written to for bank switching. Bank sizes from 256bytes to 4K could be supported at the same time. 16-256 banks, 8-512 banks, 4-1K banks, 2-2K banks, and 1-4K bank only requires 31 of the 32 locations. This leaves one location left over to use for a meta-bank switching scheme. Though even I will admit that going past 1MB is absurd.

 

003e - Select 256 byte bank located at 1000-10ff

...

0f3e - Select 256 byte bank located at 1f00-1fff

 

003f - Select 512 byte bank located at 1000-11ff

...

073f - Select 512 byte bank located at 1e00-1fff

 

083f - Select 1K byte bank located at 1000-13ff

...

0b3f - Select 1K byte bank located at 1c00-1fff

 

0c3f - Select 2K byte bank located at 1000-17ff

0d3f - Select 2K byte bank located at 1800-1fff

 

0e3f - Select 4K byte bank located at 1000-1fff

 

0f3f - Select meta-bank. When 1MB just isn't enough :)

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