Banking question Guys,
I've been manually tracing through the firmware, and have a question about the banks.
It appears that bank 0 is $1000 -> $3fff, and bank 1 is $4000 -> $7fff, etc. So, in the bank switching function, when it calls bank 1 - I assume it is referring to location $1 * $3000 + $383b = $683b. This would make sense, since there is data stored at $383b. $683b contains two instructions, TX0 R4, and RTS. It appears to be little more than a stub to verify that the function was called.
Likewise, it would seem that when I look at bank 4's close JMP, it would point to $4 * $3000 + $2a1c = $ea1c. However, unlike the close function at what I believe is bank 1, this function jumps all over the place.
Has anyone else been looking at the 6550 firmware? (Morcheeba, if you are reading this, does this seem like the correct way to calculate offsets into the banks for use with disv8?)
brite_eye- 08-10-2005
I know nothing about SMaL banks, but assume there is flexibiltiy in where each bank ends up. There is room on sram provided for 2 small banks of size $2fff and 2 of size $3fff. With 10 banks total it is not clear when and where each will be placed. My preferred method which could take longer would be to eliminate all common/duplicated code, get rid of C compiler inefficiencies, get rid of unneeded functions (maybe all of USB - since that can be done by running a .PV2 in bootloader) and end up with an unbanked module that fits in 64K instead of requiring 125K with banking.
Forumer™ is Voted #1 Free Forum Hosting provider
Build your own community today with the largest message board hosting company.