I looked to see if this was covered elsewhere but the search engine for the forum isn't the greatest.
So I understand why memory has to move when expansion memory (greater than 8K) is inserted (so BASIC has a contiguous space). But why does colour memory have to move?
Colour Memory why does it move?
Moderator: Moderators
- freshlamb
- Vic 20 Dabbler
- Posts: 76
- Joined: Sun Apr 04, 2004 5:38 pm
- Website: http://www.rufnoiz.com
- Location: Prince Albert SK Can
- Mike
- Herr VC
- Posts: 5129
- Joined: Wed Dec 01, 2004 1:57 pm
- Location: Munich, Germany
- Occupation: electrical engineer
Re: Colour Memory why does it move?
Hi, freshlamb,
I answered this question in another context: viewtopic.php?t=5572&hilit=changes+base ... s&start=21.
In short: the colour RAM is actually 1K nibbles in size. It is not really moved but its use is changed as it is addressed with the lower 10 bits of the corresponding text RAM address.
That 'extra' size also is what allows for overscan displays. Though with that use case it is advisible to put the screen RAM at an address divisible by 1024. Otherwise - when the screen RAM exceeds 512 bytes - you will have to put up with a wraparound of the colour RAM ($9600..$97FF -> $9400..).
Greetings,
Michael
I answered this question in another context: viewtopic.php?t=5572&hilit=changes+base ... s&start=21.
In short: the colour RAM is actually 1K nibbles in size. It is not really moved but its use is changed as it is addressed with the lower 10 bits of the corresponding text RAM address.
That 'extra' size also is what allows for overscan displays. Though with that use case it is advisible to put the screen RAM at an address divisible by 1024. Otherwise - when the screen RAM exceeds 512 bytes - you will have to put up with a wraparound of the colour RAM ($9600..$97FF -> $9400..).
Greetings,
Michael
- freshlamb
- Vic 20 Dabbler
- Posts: 76
- Joined: Sun Apr 04, 2004 5:38 pm
- Website: http://www.rufnoiz.com
- Location: Prince Albert SK Can
Re: Colour Memory why does it move?
Thanks Mike, I knew you would have the answer!
By the way I just hooked up my VFLI vic yesterday, it turns out the 8K (16K) chips just needed to be re-seated. So it works fine. I will have to post video on YouTube when I have time!
By the way I just hooked up my VFLI vic yesterday, it turns out the 8K (16K) chips just needed to be re-seated. So it works fine. I will have to post video on YouTube when I have time!
-
- Vic 20 Hobbyist
- Posts: 128
- Joined: Sun Dec 26, 2010 1:51 pm
Re: Colour Memory why does it move?
This sounds like it may be a memory/code saver somehow, unless I'm reading it wrong: Could you horizontally split a screen with a repeated color memory pattern?Mike wrote: ↑Sat Nov 27, 2021 2:48 am Hi, freshlamb,
I answered this question in another context: viewtopic.php?t=5572&hilit=changes+base ... s&start=21.
In short: the colour RAM is actually 1K nibbles in size. It is not really moved but its use is changed as it is addressed with the lower 10 bits of the corresponding text RAM address.
That 'extra' size also is what allows for overscan displays. Though with that use case it is advisible to put the screen RAM at an address divisible by 1024. Otherwise - when the screen RAM exceeds 512 bytes - you will have to put up with a wraparound of the colour RAM ($9600..$97FF -> $9400..).
Greetings,
Michael
- Mike
- Herr VC
- Posts: 5129
- Joined: Wed Dec 01, 2004 1:57 pm
- Location: Munich, Germany
- Occupation: electrical engineer
Re: Colour Memory why does it move?
Unlikely. If anything, I would categorize that behaviour as mildly annoying, but understandable due to hardware reasons and with an easy workaround - just do not put screen RAM at an odd half KB boundary with an overscan screen. After all, what is the use of an addressing irregularity mid-screen and quite likely, even mid-screenline?malcontent wrote:This sounds like it may be a memory/code saver somehow, [...]
I do not quite understand what you are up to, but you could always try for yourself.Could you horizontally split a screen with a repeated color memory pattern?