*************************************
* 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