Mike wrote:Put the question the other way round: what exactly did you have in mind with the (extra?) RAM for VIC-I?

Honestly? I don't know

I just got to know VIC20 since some days (well, of course I knew even before that VIC20 exists, just I didn't know more about it than the fact about its existence, or something like that), I can say it's just "trying to know more" kind of questions

I managed to write a primitive emulator for VIC20 within some hours (well, of course I wouldn't say it's better than one in VICE or such), since I have the odd habit, that the best way to learn about something is trying to emulate it

The current version is better, more-or-less know what VIC-I knows (except multicolour currently) and "only" the timing is wrong (for example: it renders one scanline in "once" after 71 CPU cycles passed).
But anyway, back to the hardware: since some time, I had the plan to build my own SBC (single board computer) around a 65C02 or 65C816. My only problem is always with the video, that it's not so nice that I have some kind of serial port to be able to use, it's not the "true" feeling of something "complete" and standalone stuff built by myself. However, all of the existing solutions (ie some kind of video chip) uses its own private RAM (like the VDC in C128, but of course there more examples, even the example of MSX computers), or need a "complex" (well, for me ...) bus timing, extra cycles, whatever, like with VIC-II in C64 or TED in Commodore plus/4 and C16. But VIC20 and its VIC seems to be nice enough, quite simple bus sharing with PHI1 for VIC and PHI2 for the 6502 CPU, no extra cycles, whatsoever.
And then I thought, is it sane (well, 8 bit in general is not sane for most people in the world nowadays, anyway ...) to build a "new design" using VIC-I? What would happen, if I put a VIC-I, a 65C816 (well, so 6502 illegal opcodes won't work ...) on a board with some SRAM to build a stuff with "quite good" compatibility with VIC20, even by extending it (ie, more SRAM available for both of the CPU and the VIC-I). Also, the 65C816 can address 16Mbyte of RAM, extra RAM can be put "above" 64K (so bank number greater than 0) which is strictly "private" to the 65C816 with direct connecting. Ie, 65C816 would be able to use tons of memory. And if it uses only the higher banked RAM, it can be even clocked higher, until it needs to "touch" the bus which is shared with the VIC-I. In a PAL VIC20, I can even found the four times faster clock source, and about 4.4MHz should be enough (especially with my usual brain-dead strip-board designs, which are not so nice on higher clock frequencies too much ... The only problem, that 65C816 allows the stack and zero page only in bank 0 (though not at a fixed 256 byte page, like with 6502), and since it's on the "slow" bus, it would generally slows down the CPU a bit even if it's not in "VIC20 mode" but still needs stack/zero page of course. I would map the "VIC20 bus / address space" to a higher bank number, so for bank 0, still "fast" private RAM is used. It would not disturb the VIC20 mode too much, as 65C816 has output pin to signal "6502 emulation mode". This would override the bank remapping, allowing the "VIC20 bus" is accessed anyway. So everybody is happy

Well, I think that, but who knows, it's only a plan now ... And it's possible that I am just dreaming, and it's useless (ie it won't speed up VIC20 mode too much, it's more about to create something which has some kind of "compatible" mode with an already existing computer for degree at least)
That's the other part of the question, that if a given RAM location cannot be accessed by VIC-I anyway, only by the CPU, than it could mean "fast" access even in VIC20 memory space ... Like the 8K "window" from $A000, which can be even used to map a part of the "extended" memory (from above 64K) even from VIC20 mode (or even, the ROMs would be not ROMs for real, but RAM mapped, and write disallowed, to "simulate" ROMs). However, I guess it's about the situation where I would need some kind of GAL/CPLD/etc, it would be too complex otherwise ...
But I am quite unsure now, that it worth to try to "rewrite" an existing VIC20 board (well, a lot, it seems), or it's indeed more simple to build an own stuff instead.
And no, I don't want to build a SuperCPU cartridge for VIC-20, it's kinda more complex stuff ...
Sorry for the long post, but since you've asked ...
