Re: colors in dos
- Posted by jimcbrown (admin) Jun 25, 2013
- 1704 views
There, now that i have posted this, you can find it on the web.
Yes, I agree. Now it is technically true that this information can be found on the web. I have no choice but to concede this point.
However, I feel that this is not up to the level of user-friendliness that a C64 manual has. E.g. http://www.commodore.ca/manuals/c64_users_guide/c64-users_guide.htm or http://www.commodore.ca/manuals/c64_programmers_reference/c64-programmers_reference.htm
Why? Simply put, I read one of those, and I have no questions on how things are done. When I read the your information, I have many more questions on how to do things.
Purely for reference purposes, I'll make note of some of my questions below. These questions don't need to be answered. (I'm not sure if I have enough time for the full back-and-forth required for the editorial process to make a mini-manual in any case.)
Remember how i memory mapped 74LS163's on the external buss?
I don't recall the exact technique used. How is this done?
What if i mapped four 74LVC574 (or some other latch) out there, and made a variable called EA (for external address),
How would you create EA?
and i put the binary value of 2^30 into EA?
This is possible, as gcc does something similar with its long long type on 32bit cpus. However, I don't know how to do something like that. How would you put 2^30 into EA?
Then on the other side of those 74LVC574 i attached 2GB of memory in whatever flavor i had handy, along with a few chips such that the last write into EA caused a rear or a write cycle (my choice) to occur on the ram?
How would you attach the memory to the 74LVC574s in a way to make them usable?
Lets say i had some space allocated in the memory map,
Where? And how much?
and when i read or wrote there, it was picked off by the card holding my 2GB of ram,
Wouldn't you be limited by the bank size to only 256kb at a time though? I'm guessing here (since you don't explicitly say so) that you'd use EA as a selector somehow to do this.
Would it be as simple as EA = 32bit memory address, then read/write one byte at a time?
and used in that read or write cycle i mentioned? Gosh, that's just about how it can be done! And you know what else? I'll give you a freebie: the SID chip addresses are not fully decoded, you can decode those, use one block for those EA addresses, one for indexes, one for misc processing, one for transparent reads and one for writes,
How do you fully decode those?
<!presto!> you have not taken out any ram inside the C64 to interface 2GB thru.
At the very least, some (tiny, perhaps a few bytes) of RAM is taken out for EA itself. Or have I misunderstood something?