Ruud wrote: > NOTE: When additional memory is added to block 1 (and 2 and 3), > > .eq BLK1 = $0400 ; 1 KB memory expansion > > The above means data is written to the NORMAL location for the screen > memory and colour RAM. But the text says that this RAM is only used > if > there is NO extra RAM on board. Did I miss something or is the text > wrong? IMHO, your auto disassembler mixes up the terms: RAM1 = $0400 - $07FF RAM2 = $0800 - $0BFF RAM3 = $0C00 - $0FFF BLK1 = $2000 - $3FFF BLK2 = $4000 - $5FFF BLK3 = $6000 - $7FFF BLK5 = $A000 - $BFFF It means if you add memory to BLK1 (usually 8K, perhaps you can add less than that?), the changes in memory structure happen but the diagnostic cartridge adds memory to RAM1, which does not prompt the changes. The reason the memory layout changes at all is to ensure that BASIC has a continuous memory, plus that the VIC-I chip can only access onboard memory, not what is on the expansion bus. For a long while there was a misunderstanding about the VR/W signal on the bus that it would be for video R/W but it is not, it is just a bad naming convention of the signal. So everything works as expected here. You're adding RAM to the 3K area which normally makes BASIC start at 1025 instead of 4097, retains the screen matrix at 7680 and colour memory at 38400. Actually the colour memory is located either at 37888 or 38400 depending on whether the location of the screen matrix is divisible by 1024 or not. It means even on an unexpanded VIC-20 if you would move the screen matrix to 7168, the colour memory follows along and vice versa if you would add 8K and reposition the screen matrix on an "odd" 512 byte boundary, the colour memory starts at 38400. Best regards Anders Carlsson Message was sent through the cbm-hackers mailing listReceived on 2017-07-07 12:00:02
Archive generated by hypermail 2.2.0.