| |
ready.
Registered: Feb 2003 Posts: 441 |
VIC pointing at RAM char set in bank 2
Hi everybody,
I need some help with programmable char sets. Using VIC bank $8000-$bfff, I want to display a char set put into RAM at $9000-$9fff (register $d018 bits set as: xxxx010x). The problem is that the VIC uses the ROM memory instead, so only the standard CBM characters apper. Using another RAM position (i.e.: $d018 bit set as: xxxx001x) gives no problem and my char set is displayed.
Is there any way to make the VIC point for char set at RAM instead of ROM at $9000-$9fff?
thanx,
Ready. |
|
... 7 posts hidden. Click here to view all posts.... |
| |
ready.
Registered: Feb 2003 Posts: 441 |
During coding, I faced another problem, but I'm not sure if it's an error of my code or a feature of the VIC-II.
I want to use the RAM area $9000-$9fff for screen codes (that means that I store 4 screens in that area, pointed by the VIC using the 4 MSB of the register $d018). The problem is that I see only garbage on the screen, as if the VIC pointed to some ROM area instead of the RAM.
Question is: is the VIC in bank 2 unable to point at $9000-$9fff RAM location, be it for getting char-set info or screen info? Using a normal C64, of course.
Hope I made my doubt clear.
Thanx,
Ready. |
| |
Graham Account closed
Registered: Dec 2002 Posts: 990 |
The VIC has a different RAM layout as the CPU:
$0000-$0FFF = RAM
$1000-$1FFF = Charset ROM
$2000-$8FFF = RAM
$9000-$9FFF = Charset ROM
$A000-$FFFF = RAM
There is no way to change this. |
| |
yago
Registered: May 2002 Posts: 333 |
Hey ready, nice to see you coding!
$1000-$1fff and $9000-$9fff is always read from CharacterROM for the VIC, no matter if used for charset, sprite or screen.
|
| |
ready.
Registered: Feb 2003 Posts: 441 |
mmmh, I thought that this "limitation" concearned only the character pointing. In fact the programmer's reference guide warns about this only in the table regarding the usage of the LSB of the register $d018. But probably I interpreted wrong.
One question: why this "limitation"? Couldn't the VIC engineers have design it in such a way that the VIC could be set by software the see the whole RAM in all banks? After all it is quite easy to go to the Ultimax mode by hardware, why not do it by software?
Hi Yago, yes coding a small project I have in mind, but too little resourses for plain C64...probably that's why I like it: the less resources I have, the more I am forced to use my brains!!! Optimization, optimization, optimization...fast loaders, packers, RAM squeazing, good and optimized code, coordination between interrupts! that's the coding on the C64 for me!
But family first now, my coding project is evolving soooo slow!!! |
| |
Scout
Registered: Dec 2002 Posts: 1570 |
Quote:Optimization, optimization, optimization...fast loaders, packers, RAM squeazing, good and optimized code, coordination between interrupts! that's the coding on the C64 for me!
That goes for every C=64 coder :)
---
-= Silicon Ltd. =-
http://forum.siliconlimited.com
Commodore 64 Scenemusic Podcast
http://8bitmayhem.blogspot.com/ |
| |
Tch Account closed
Registered: Sep 2004 Posts: 512 |
@Ready: Do you want to use it for FLI? |
| |
ready.
Registered: Feb 2003 Posts: 441 |
No I want to display in sequence many screens, with user-defined charsets, in order to give the idea of movement. |
| |
Tch Account closed
Registered: Sep 2004 Posts: 512 |
Ah,okay.
You´ll have to do with 4 screens less then,not to mention the char-loss.
I know it sucks.. ;) |
| |
Cruzer
Registered: Dec 2001 Posts: 1048 |
This is usually not a big problem I think, since you need somewhere to put your code, music etc. anyway. Most music players are located in $1000-$1fff, and then you can use $9000-9fff for code, tables, etc., which by the way usually fills up more. |
| |
Graham Account closed
Registered: Dec 2002 Posts: 990 |
@ready: No, the Commodore engineers could not have done this in a way that only charset data is affected. The address decoding is done by the PLA, and how should the PLA known why a certain memory address is read? |
Previous - 1 | 2 - Next |