//====================================================================== // IRIS-SUBPメモリマップ定義 //====================================================================== #ifndef _IRIS_SUBP_MON_MEMORY_MAP_H #define _IRIS_SUBP_MON_MEMORY_MAP_H #include "IrisSubpMonTarget.h" //---------------------------------------------------------------------- // メモリ・マップ //---------------------------------------------------------------------- #define MON_CPU_WRAM CPU_WRAM // CPU内部ワークRAM #define MON_CPU_WRAM_END (MON_CPU_WRAM + 0x18000) #ifdef ENABLE_DEBUGGER_ON_4MB #define MON_MMEM_LOAD_LIMIT (MAIN_MEM_END - (0x100000 + MROM_PAGE_SIZE - 1)) #else #define MON_MMEM_LOAD_LIMIT (MAIN_MEM_END - (0x40000 + MROM_PAGE_SIZE - 1)) #endif #define MON_WRAM_LOAD_LIMIT (MON_CPU_WRAM_END - (0x8000 + MROM_PAGE_SIZE - 1)) #define MON_DBG_LOAD_LIMIT (MAIN_MEM_EX_END - (0x40000 + MROM_PAGE_SIZE - 1)) #define FLH_MMEM_LOAD_LIMIT (MAIN_MEM_EX_END - (0x1000 + 0x20)) // LZで17バイト余分に展開する場合への対応 #define FLH_WRAM_LOAD_BASE (MON_CPU_WRAM + 0x2200) // セキュアワーク領域の保護 #define FLH_WRAM_LOAD_LIMIT (MON_CPU_WRAM_END - (0x400 + 0x20)) // LZで17バイト余分に展開する場合への対応 #define PNA_INDEX (ROM_HEADER_BUF + 0x12) // PNAテーブル・インデックス #define MMEM_CHK_SIZE_READ_BUF (MAIN_MEM_END - 0x6) // メインメモリ・サイズチェック書き込みバッファ #define MMEM_CHK_SIZE_WRITE_BUF (MAIN_MEM_EX_END - 0x6) // 読み込みバッファ #define AGB_ROM_HEADER 0x08000004 // AGB-ROM内登録データ #define MON_NINLOGO (AGB_ROM_HEADER + 0x0 ) // NINTENDOロゴ・データ #define MON_FIQ_FLAG (AGB_ROM_HEADER + 0x9c - 4) // FIQフラグ #define MON_KEY_GROUP_NO (AGB_ROM_HEADER + 0x9e - 4) // キーグループNo #define MON_SOFT_NAME (AGB_ROM_HEADER + 0xa0 - 4) // ソフト名 #define MON_COMPLEMENT (AGB_ROM_HEADER + 0xbd - 4) // 補数チェック・データ #define AGB_DACS_KEY_REG0 0x09fe2000 - 32 // DACSキーレジスタ #define AGB_DACS_KEY_REG1 0x0a000000 - 32 #define REG_PAUSE (REG_BASE + 0x300) // PAUSE #define REG_BIOS_PROTECT_ADDR (REG_BASE + 0x308) // BIOSプロテクトアドレス //---------------------------------------------------------------------- // メモリ・サイズ //---------------------------------------------------------------------- #define BIOS_SIZE 0x4000 // システムROM #define ROM_HEADER_SIZE (0xc0 - 4 + OFFSET_MON_NINLOGO) // ROM内登録データ #define MON_NINLOGO_SIZE (MON_SOFT_NAME - MON_NINLOGO) // NINTENDOロゴ・データ //---------------------------------------------------------------------- // 登録データ・オフセット //---------------------------------------------------------------------- #define OFFSET_MON_NINLOGO (MON_NINLOGO - MON_NINLOGO) // NINTENDOロゴ・データ #define OFFSET_MON_FIQ_FLAG (MON_FIQ_FLAG - MON_NINLOGO) // FIQフラグ #define OFFSET_MON_KEY_GROUP_NO (MON_KEY_GROUP_NO - MON_NINLOGO) // キーグループNo #define OFFSET_MON_SOFT_NAME (MON_SOFT_NAME - MON_NINLOGO) // ソフト名 #define OFFSET_MON_COMPLEMENT (MON_COMPLEMENT - MON_NINLOGO) // 補数チェック・データ #define OFFSET_REG_PAUSE 0x300 // PAUSE #endif // _IRIS_SUBP_MON_MEMORY_MAP_H