Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > VIC pointing at RAM char set in bank 2
2006-02-11 09:26
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....
 
2006-02-24 12:57
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.
2006-02-24 13:42
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.
2006-02-24 14:12
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.
2006-02-24 14:42
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!!!
2006-02-24 14:51
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/
2006-02-24 16:04
Tch
Account closed

Registered: Sep 2004
Posts: 512
@Ready: Do you want to use it for FLI?
2006-02-24 16:12
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.
2006-02-24 16:35
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.. ;)
2006-02-24 17:23
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.
2006-02-25 02:59
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
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
XmikeX
Guests online: 94
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 Edge of Disgrace  (9.6)
6 What Is The Matrix 2  (9.6)
7 The Demo Coder  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 No Listen  (9.6)
2 Layers  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.6)
6 X-Mas Demo 2024  (9.5)
7 Dawnfall V1.1  (9.5)
8 Rainbow Connection  (9.5)
9 Onscreen 5k  (9.5)
10 Morph  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Censor Design  (9.3)
5 Triad  (9.3)
Top Coders
1 Axis  (9.8)
2 Graham  (9.8)
3 Lft  (9.8)
4 Crossbow  (9.8)
5 HCL  (9.8)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.053 sec.