Hello. I'm really close to understanding how the pages and slots work. I just have a few more questions.
How would I go about assigning cartridge ROM to page 0? I know that the first few bytes of a ROM identify the cart, and specify an start address. But How does that take part in placing ROM at page 0? If most 16 or 32KB ROMS start execution at $4010 (after the header) what is physically present at $0000-$3FFF in the cartridge slot? If I have a 64KB ROM, how the heck can I access all of it (no bankswitching, say I want to map all 4 pages to my ROM)?
I think the only way to have your own VBlank interrupt is to place either your own ROM or RAM in page 0. Let's say I want to map RAM there, but my system has only 8KB of RAM (wich would physically be at E000-FFFF). If the RAM is at the end of the addressing space, is there anyway to access it in page 0? When less than 64KB of RAM is present, is it by any chance mirrored through the rest of the space? That would sure solve things.
Also, how can I know which slot contains what? Could the value read from port A8h be used to identify the RAM slot (always in page 3 by the time ROM execution starts?)? How would I know what slot is my cartridge/ROM running from?
Thanks for all the help.

)... which basically means you call an address in page 0 of your own ROM which jumps to the rest of your init routine.