Why did the designers of the Commodore VIC-20 chose to put the main cartridge ROM area at $A000, beyond the character ROM area at $8000 and the I/O area at $9000? Flipping the two around, with the ROM area at $8000, the character ROM at $A000 and the I/O at $B000 would have allowed to alternatively use the $8000 area for BASIC-usable RAM, giving a maximum total of 35.5K of BASIC-usable RAM with a 32K expansion, instead of having a maximum of 27.5K for BASIC with a 24K expansion, as it was in the real VIC-20. Was this question simply not considered, or is there another reason?
Why did the designers of the Commodore VIC-20 chose to put the main cartridge ROM area at $A000, beyond the character ROM area at $8000 and the I/O area at $9000?
Because that's the natural order for 6502 machines?
A 6502 is designed to have
- RAM at bottom to provide at least ZP and stack
- ROM at TOP to provide hardware vectors
- I/O goes by default right below ROM to allow maximum RAM.
Keep in mind the VIC20 does not waste gates for memory mapping.
With (up to) 24 KiB of ROM, 4 KiB Chargen and 4 KiB of I/O a nice 32 KiB are available for continuous RAM (*1). Quite comfortable for a 1980 home computer (*2). The fact that Commodore provided expansions only go up to 24 KiB, for a total of 27.5 KiB doesn't change anything.
*1 - By chance mostly the same layout the VIC's predecessor, the PET had.
*2 - Competing machines were Atari 400 or TI 99/4A, both with 16 KiB RAM.