|
Post by Kurious on Mar 23, 2007 23:35:13 GMT -5
Note: I may be remembering some things incorrectly.
As I understand it, a cartridge will make its ROM appear on $8000-$9FFF. I can't switch it out by modifying registers $00/$01. However, I remember reading some time ago, about a cartridge (I believe it was Magic Desk? not sure) where you could do a POKE to switch its ROM in and out.
My questions is under which conditions (software and/or hardware) can it be made to make the ROM at $8000-$9FFF appear/disappear?
Thanks...
|
|
|
Post by tlr on Mar 24, 2007 5:10:32 GMT -5
Note: I may be remembering some things incorrectly. As I understand it, a cartridge will make its ROM appear on $8000-$9FFF. I can't switch it out by modifying registers $00/$01. However, I remember reading some time ago, about a cartridge (I believe it was Magic Desk? not sure) where you could do a POKE to switch its ROM in and out. My questions is under which conditions (software and/or hardware) can it be made to make the ROM at $8000-$9FFF appear/disappear? $01 can make it disappear, but the basic rom will always disappear with it, (i.e $36, $35, $34) It will also disappear if _EXROM in no longer pulled low in hardware.
|
|
|
Post by Kurious on Mar 24, 2007 9:33:53 GMT -5
I have a few more questions if you don't mind...
1. As I understand it, the cartridge ROM is always from $8000-$9FFF. Can it be smaller, or larger?
2. If I use the hardware /EXROM line to make the cartridge ROM disappear, does that make the BASIC ROM ($A000-$BFFF) disappear automatically too?
Thanks
|
|
|
Post by tlr on Mar 24, 2007 11:38:17 GMT -5
1. As I understand it, the cartridge ROM is always from $8000-$9FFF. Can it be smaller, or larger? There are several configurations. The one pulling just the /EXROM line low is always this size. The chip select for this rom is the signal /ROML. By pulling /EXROM and /GAME in different combinations you can get different modes. Pulling /GAME and /EXROM low will put a rom replacing basic at $a000-$bfff in addition the the $8000-$9fff rom. (This only switched of when kernal is switched out). The chip select for this rom is the signal /ROMH. Pulling just /GAME low will activate the Ultimax emulation mode. It will but one rom at $e000-$ffff, and one at $8000-$9fff. Description of all the modes: here2. If I use the hardware /EXROM line to make the cartridge ROM disappear, does that make the BASIC ROM ($A000-$BFFF) disappear automatically too? No. It will just make the cartridge ROM disappear. Remember that not pulling down /EXROM is how it normally is when no cartridge is plugged in.
|
|
|
Post by Kurious on Mar 24, 2007 14:42:23 GMT -5
OK, now I understand better. Now, I remember the case where a cartridge (Magic Desk?) had a POKE that one could execute, to remove its ROM from memory. It wasn't a POKE to address 1 (if I remember correctly). In any case, how can a cartridge know that a POKE has occurred, so as to change its circuitry so that /GAME & /EXROM are different?
Thanks.
|
|
|
Post by tlr on Mar 24, 2007 16:26:24 GMT -5
OK, now I understand better. Now, I remember the case where a cartridge (Magic Desk?) had a POKE that one could execute, to remove its ROM from memory. It wasn't a POKE to address 1 (if I remember correctly). In any case, how can a cartridge know that a POKE has occurred, so as to change its circuitry so that /GAME & /EXROM are different? Basically it needs to detect if it is written to in some way. There are two decoded I/O areas $de00-$deff and $df00-$dfff which pull chip selects _I/O1 and _I/O2 respectively. The simplest cartridges just change state as soon as anything is written to any address within that area. e.g: $de00-$deff could mean on and $df00-$dfff could mean off. If you want something more advanced you will have to check some address bits to create a register map with can be written by the 6502. There is information on how various cartridges handle this: hereYou can experiment with it in an emulator without having to build every cartridge first.
|
|
|
Post by Kurious on Mar 24, 2007 20:55:56 GMT -5
Thanks for that info, I'll be playing with those. For the first time I noticed that VICE has a Cartridge Freeze option, duh! 1. I would like to read hardware-level information on cartridges. Do you know of any such document? 2. In Ultimax mode, there seems to be a 2K of expansion RAM that's supposed to be accessible directly from the Commodore 64's RAM. Do you know exactly which region is meant by that?
|
|