************************************* * MMC64 Hardware Specification V1.2 * * (C) 2005 by Oliver Achten * ************************************* Memory map ---------- $8000 - $9fff MMC64 BIOS rom (*)(**) (*) Rom is active when bit 0 of $DF11 and the flash jumper is not set (**) Rom is write enabled when bit 4 of $DF11 is set I/O map ------- $DE01 / $DF21(W)(*): bit 0: 0 = disable clock port, 1 = enable clockport $DE02-$DE0F / $DF22-$DF2F (R/W)(*): clock port I/O area (*) location depends on bit 3 of $DF11 $DF10 (R/W): MMC64 SPI transfer register --------------------------- byte written is sent to the card & response from the card is read here $DF11 (R/W): MMC64 control register ---------------------- bit 0: 0 = MMC64 BIOS active, 1 = external ROM active bit 1: 0 = card selected, 1 = card not selected bit 2: 0 = 250khz transfer, 1 = 8mhz transfer bit 3: 0 = clock port @ $DE00, 1 = clock port @ $DF20 bit 4: 0 = normal Operation, 1 = flash mode (*) bit 5: 0 = allow external rom when BIOS is disabled , 1 = disable external ROM bit 6: 0 = SPI write trigger mode, 1 = SPI read trigger mode bit 7: 0 = MMC64 is active, 1 = MMC64 is completely disabled (**) (*) bit can only be programmed when flash jumper is set (**) bit can only be modified after unlocking $DF12 (R): MMC64 status register --------------------- bit 0: 0 = SPI ready, 1 = SPI busy bit 1: external GAME line bit 2: external EXROM line bit 3: 0 = card inserted, 1 = no card inserted bit 4: 0 = card write enabled, 1 = card write disabled bit 5: 0 = flash jumper not set, 1 = flash jumper set $DF13 (R/W): MMC64 identification register ----------------------------- (R) #$64 when bit 1 of $DF11 is 0 #$01 when bit 1 of $DF11 is 1 and REV A hardware is used #$02 when bit 1 of $DF11 is 1 and REV B hardware is used (W) write #$55 & #$AA into this register to unlock bit 7 of $DF11 write #$0A $ #$1C into this register to re-enable MMC64 hardware