;------------------------------------------------------------------------------- ; GMOD3 registers and -bits ; ; for details see http://wiki.icomp.de/wiki/GMod3 ;------------------------------------------------------------------------------- GMOD3_BANK0 = $de00 ; $00- $ff GMOD3_BANK1 = $de01 ; $100-$1ff 4MB and higher versions only GMOD3_BANK2 = $de02 ; $200-$2ff 8MB and higher versions only GMOD3_BANK3 = $de03 ; $300-$3ff 8MB and higher versions only GMOD3_BANK4 = $de04 ; $400-$4ff 16MB version only GMOD3_BANK5 = $de05 ; $500-$5ff 16MB version only GMOD3_BANK6 = $de06 ; $600-$6ff 16MB version only GMOD3_BANK7 = $de07 ; $700-$7ff 16MB version only GMOD3_BANKLO_R = $de00 GMOD3_BANKHI_R = $de08 GMOD3_CTRL = $de08 GMOD3_CTRL_BITBANG = %10000000 ; 1: SPI bitbanging enabled GMOD3_CTRL_BITBANG_ENABLED = %10000000 ; SPI bitbanging enabled GMOD3_CTRL_BITBANG_DISABLED = %00000000 ; SPI bitbanging not enabled GMOD3_CTRL_EXROM = %01000000 GMOD3_CTRL_8KGAME = %00000000 GMOD3_CTRL_NOCART = %01000000 GMOD3_CTRL_VECTORS = %00100000 ; replace the hw vectors ; when bitbang mode is enabled: GMOD3_SPI_R = $de00 GMOD3_SPI_R_DATA = %10000000 GMOD3_SPI_W = $de00 GMOD3_SPI_W_CS = %01000000 ; 0: Flash selected GMOD3_SPI_W_CS_ACTIVE = %00000000 ; Flash selected GMOD3_SPI_W_CS_INACTIVE = %01000000 ; Flash not selected GMOD3_SPI_W_CLK = %00100000 ; data is latched on 0->1 transition GMOD3_SPI_W_CLK_LO = %00000000 ; clk 0 GMOD3_SPI_W_CLK_HI = %00100000 ; clk 1 GMOD3_SPI_W_DATA = %00010000 GMOD3_SPI_W_DATA_LO = %00000000 GMOD3_SPI_W_DATA_HI = %00010000 ;------------------------------------------------------------------------------- ; Flash commands ; ; for details look at the datasheet, the following are just the commands used ; in the example functions - all other regular SPI commands work, of course. ;------------------------------------------------------------------------------- FLASH_CMD_PAGE_PROGRAM = $02 FLASH_CMD_READ_DATA = $03 FLASH_CMD_READ_STATUS = $05 FLASH_CMD_WRITE_ENABLE = $06 FLASH_CMD_BLOCK_ERASE = $d8 ; erase 64k FLASH_CMD_REMS = $9f FLASH_STATUS_BUSY = $01