ntr_bootrom/trunk/IrisMainp/include/IrisMemoryMapArm.s

705 lines
33 KiB
ArmAsm
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;=======================================================================
; IrisMemoryMapArm.s
; IRIS メモリマップ定数ARMASM用
;
; Copyright (C) 2002-2003 NINTENDO Co.,Ltd.
;=======================================================================
IF :DEF: _IRIS_MEMORY_MAP_H
ELSE
_IRIS_MEMORY_MAP_H * 1
INCLUDE IrisTargetArm.s
INCLUDE IrisDefineArm.s
;-----------------------------------------------------------------------
; メモリ・マップ
;-----------------------------------------------------------------------
SHARED_WORK * 0x027ff000 ; CPU間共有ワーク領域
SHARED_WORK_END * 0x02800000
IF :DEF: NDEBUG
SUBP_PRV * 0x02380000 ; サブプロセッサ専有領域(リリースバージョン)
ELSE
IF :DEF: MMEM_4M
SUBP_PRV * 0x02300000 ; (デバッグバージョン<メインメモリ4M本体>)
ELSE
SUBP_PRV * 0x02600000 ; (デバッグバージョン<メインメモリ8M本体>)
ENDIF
ENDIF
SUBP_PRV_END * SHARED_WORK
IF :DEF: IRIS_TEG :LOR: :DEF: IRIS_TS
ITCM * 0x01ff8000 ; 命令TCM
ITCM_END * (ITCM + 0x8000)
DTCM * SUBP_PRV ; データTCM(TEGボード以降)
ELSE
DTCM * 0x8000 ; (ブレッドボード専用)
ENDIF
DTCM_END * (DTCM + 0x4000)
INTR_VECTOR_BUF * (DTCM_END - 0x4) ; 割り込み分岐アドレス
INTR_CHECK_BUF * (DTCM_END - 0x8) ; 割り込みチェック
SEND_FIFO_LOCK_BUF * (DTCM_END - 0x10) ; CPU間送信FIFO・ロックバッファ
TIMER3_LOCK_BUF * (DTCM_END - 0x12) ; タイマー3・ロックバッファ
TIMER2_LOCK_BUF * (DTCM_END - 0x14) ; タイマー2
TIMER1_LOCK_BUF * (DTCM_END - 0x16) ; タイマー1
TIMER0_LOCK_BUF * (DTCM_END - 0x18) ; タイマー0
DMA3_LOCK_BUF * (DTCM_END - 0x1a) ; DMA3・ロックバッファ
DMA2_LOCK_BUF * (DTCM_END - 0x1c) ;
DMA1_LOCK_BUF * (DTCM_END - 0x1e) ;
DMA0_LOCK_BUF * (DTCM_END - 0x20) ;
MAIN_MEM * 0x02000000 ; メインメモリ
MAIN_MEM_END * (MAIN_MEM + 0x400000)
MAIN_MEM_EX_END * (MAIN_MEM + 0x800000) ;(拡張時の最終アドレス)
MAIN_MEM_CMD_AREA * (MAIN_MEM_EX_END - 0x2) ; メインメモリコマンド発行エリア(使用禁止エリア)
SHARED_LOCK_BUF * (MAIN_MEM_EX_END - 0x40) ; 共有リソース・ロックバッファ
SHARED_LOCK_BUF_END * (MAIN_MEM_EX_END - 0x10)
INIT_LOCK_BUF * (MAIN_MEM_EX_END - 0x10) ; 初期化ロックバッファ
CARTRIDGE_LOCK_BUF * (MAIN_MEM_EX_END - 0x18) ; カートリッジ・ロックバッファ
CARD_LOCK_BUF * (MAIN_MEM_EX_END - 0x20) ; カード・ロックバッファ
WRAM_BLOCK1_LOCK_BUF * (MAIN_MEM_EX_END - 0x28) ; CPU内部ワークRAM・ブロック1・ロックバッファ
WRAM_BLOCK0_LOCK_BUF * (MAIN_MEM_EX_END - 0x30) ; ブロック0・ロックバッファ
VRAM_D_LOCK_BUF * (MAIN_MEM_EX_END - 0x38) ; VRAM-D・ロックバッファ
VRAM_C_LOCK_BUF * (MAIN_MEM_EX_END - 0x40) ; C・ロックバッファ
FROM_SUBP_IF_BUF * (MAIN_MEM_EX_END - 0x50) ; サブ→メインプロセッサ割り込み要求フラグ(2Byte×8)
WM_FROM_SUBP_IF_BUF * (MAIN_MEM_EX_END - 0x50) ; ワイヤレスマネージャ予約
TO_SUBP_IF_BUF * (MAIN_MEM_EX_END - 0x60) ; メイン→サブプロセッサ割り込み要求フラグ(2Byte×8)
WM_TO_SUBP_IF_BUF * (MAIN_MEM_EX_END - 0x60) ; ワイヤレスマネージャ予約
ROM_HEADER_BUF * (MAIN_MEM_EX_END - 0x200); ROM内登録エリアデータ・バッファ
DMA_CLEAR_DATA_BUF * (MAIN_MEM_EX_END - 0x210); DMAクリアデータ・バッファ(暫定対応、廃止予定)
CPU_WRAM * 0x037f8000 ; CPU内部ワークRAM
CPU_WRAM_END * (CPU_WRAM + 0x8000)
CPU_WRAM_BLOCK0 * 0x037f8000 ; ブロック0
CPU_WRAM_BLOCK0_END * (CPU_WRAM_BLOCK0 + 0x4000)
CPU_WRAM_BLOCK1 * 0x037fc000 ; ブロック1
CPU_WRAM_BLOCK1_END * (CPU_WRAM_BLOCK1 + 0x4000)
REG_BASE * 0x04000000 ; レジスタ群
PLTT * 0x05000000 ; パレットRAM
PLTT_END * (PLTT + 0x400)
BG_PLTT * (PLTT + 0x0) ; BGパレットRAM
BG_PLTT_END * (PLTT + 0x200)
OBJ_PLTT * (PLTT + 0x200) ; OBJパレットRAM
OBJ_PLTT_END * (PLTT + 0x400)
VRAM * 0x06000000 ;
BG_VRAM * (VRAM + 0x0) ; BGキャラクタ/スクリーンRAM
BG_VRAM_END * (VRAM + 0x80000)
OBJ_VRAM * (VRAM + 0x400000) ; OBJキャラクタRAM
OBJ_VRAM_END * (VRAM + 0x440000)
LCDC_VRAM * (VRAM + 0x800000) ;
LCDC_VRAM_A * (VRAM + 0x800000)
LCDC_VRAM_B * (VRAM + 0x820000)
LCDC_VRAM_C * (VRAM + 0x840000)
LCDC_VRAM_D * (VRAM + 0x860000)
LCDC_VRAM_E * (VRAM + 0x880000)
LCDC_VRAM_F * (VRAM + 0x890000)
LCDC_VRAM_G * (VRAM + 0x894000)
LCDC_VRAM_END * (VRAM + 0x898000)
OAM * 0x07000000 ;
OAM_END * (OAM + 0x400)
CARTRIDGE * 0x08000000 ; カートリッジ
CTRDG_AD16_BANK0 * 0x08000000 ; カートリッジ AD16バス バンク0
CTRDG_AD16_BANK0_END * 0x0a000000
CTRDG_AD16_BANK1 * 0x0a000000 ; バンク1
CTRDG_AD16_BANK1_END * 0x0c000000
CTRDG_AD16_BANK2 * 0x0c000000 ; バンク2
CTRDG_AD16_BANK2_END * 0x0e000000
CTRDG_DT8 * 0x0e000000 ; カートリッジ 8bitデータバス
CTRDG_DT8_END * 0x10000000
BIOS * 0xffff0000 ;
BIOS_END * (BIOS + 0x8000)
;-----------------------------------------------------------------------
; メモリ・サイズ
;-----------------------------------------------------------------------
SHARED_WORK_SIZE * (SHARED_WORK_END - SHARED_WORK) ; CPU間共有ワーク領域(4KB以上、2のべき乗サイズ)
SUBP_PRV_SIZE * (SUBP_PRV_END - SUBP_PRV) ; サブプロセッサ専有領域(32KB以上、2のべき乗サイズ)
SHARED_LOCK_BUF_SIZE * (SHARED_LOCK_BUF_END - SHARED_LOCK_BUF) ; 共有リソース・ロックバッファ
ITCM_SIZE * 0x8000 ; 命令TCM
DTCM_SIZE * 0x4000 ; データTCM
ICACHE_SIZE * 0x2000 ; 命令キャッシュ
DCACHE_SIZE * 0x1000 ; データキャッシュ
CACHE_LINE_SIZE * 32 ; キャッシュライン
MAIN_MEM_SIZE * 0x400000 ; メインメモリ
MAIN_MEM_EX_SIZE * 0x800000 ; (拡張時)
CPU_WRAM_SIZE * 0x8000 ; CPU内部ワークRAM 合計
CPU_WRAM_BLOCK0_SIZE * 0x4000 ; ブロック0
CPU_WRAM_BLOCK1_SIZE * 0x4000 ; ブロック1
MROM_PAGE_SIZE * 512 ; マスクROM・ページ
PLTT_SIZE * (2*256*2) ; パレットRAM
BG_PLTT_SIZE * (2*256) ; BGパレットRAM
OBJ_PLTT_SIZE * (2*256) ; OBJパレットRAM
BG_VRAM_SIZE * 0x80000 ;
OBJ_VRAM_SIZE * 0x40000 ;
LCDC_VRAM_SIZE * 0x98000 ;
VRAM_A_SIZE * 0x20000 ;
VRAM_B_SIZE * 0x20000 ;
VRAM_C_SIZE * 0x20000 ;
VRAM_D_SIZE * 0x20000 ;
VRAM_E_SIZE * 0x10000 ;
VRAM_F_SIZE * 0x4000 ;
VRAM_G_SIZE * 0x4000 ;
OAM_SIZE * (8*128) ;
CARTRIDGE_SIZE * 0x02000000 ; カートリッジ
CTRDG_AD16_BANK_SIZE * 0x02000000 ; カートリッジ AD16バス バンク
CTRDG_AD16_BANK0_SIZE * 0x02000000 ; バンク0
CTRDG_AD16_BANK1_SIZE * 0x02000000 ; バンク1
CTRDG_AD16_BANK2_SIZE * 0x02000000 ; バンク2
CTRDG_DT8_SIZE * 0x02000000 ; カートリッジ 8bitデータバス
BIOS_SIZE * 0x8000 ;
;-----------------------------------------------------------------------
; レジスタ・アドレス
;-----------------------------------------------------------------------
REG_IME * (REG_BASE + 0x208) ; 割り込みマスタイネーブル
REG_IE * (REG_BASE + 0x210) ; 割り込み許可
REG_IF * (REG_BASE + 0x214) ; 割り込み要求
REG_SUBPINTF * (REG_BASE + 0x180) ; サブプロセッサインタフェース
REG_SUBP_FIFO_CNT * (REG_BASE + 0x184) ; CPU間FIFOコントロール
REG_SEND_FIFO * (REG_BASE + 0x188) ; 送信FIFO
REG_RECV_FIFO * (REG_BASE + 0x100000) ; 受信FIFO
REG_EXMEMCNT * (REG_BASE + 0x204) ; 外部メモリコントロール
REG_POWCNT * (REG_BASE + 0x304) ; パワーコントロール
REG_DIVCNT * (REG_BASE + 0x280) ; 除算器 コントロール
REG_DIV_NUMER * (REG_BASE + 0x290) ; 被除数
REG_DIV_DENOM * (REG_BASE + 0x298) ; 除数
REG_DIV_RESULT * (REG_BASE + 0x2a0) ; 商
REG_DIVREM_RESULT * (REG_BASE + 0x2a8) ; 余り
REG_SQRTCNT * (REG_BASE + 0x2b0) ; 平方根演算器 コントロール
REG_SQRT_RESULT * (REG_BASE + 0x2b4) ; 結果
REG_SQRT_PARAM * (REG_BASE + 0x2b8) ; パラメータ
REG_DISPCNT * (REG_BASE + 0x0) ; 表示コントロール
REG_DISPCNT_L * (REG_BASE + 0x0)
REG_DISPCNT_H * (REG_BASE + 0x2)
REG_DISP2DCNT * (REG_BASE + 0x0) ; 2D表示コントロール
REG_DISP3DCNT * (REG_BASE + 0x60) ; 3D表示コントロール
REG_DISPSTAT * (REG_BASE + 0x4) ; 表示ステータス
REG_VCOUNT * (REG_BASE + 0x6) ; Vカウンタ
REG_GXSTAT * (REG_BASE + 0x600) ; ジオメトリエンジンステータス
REG_VRAMCNT * (REG_BASE + 0x240) ; VRAMコントロール
REG_WRAMCNT * (REG_BASE + 0x247) ; 内部ワークRAMコントロール
REG_WVRAMCNT * (REG_BASE + 0x244) ; 内部ワークRAM コントロール
REG_VRAM_A_CNT * (REG_BASE + 0x240) ;
REG_VRAM_B_CNT * (REG_BASE + 0x241) ;
REG_VRAM_C_CNT * (REG_BASE + 0x242) ;
REG_VRAM_D_CNT * (REG_BASE + 0x243) ;
REG_VRAM_E_CNT * (REG_BASE + 0x244) ;
REG_VRAM_F_CNT * (REG_BASE + 0x245) ;
REG_VRAM_G_CNT * (REG_BASE + 0x246) ;
REG_VRAM_H_CNT * (REG_BASE + 0x248) ;
REG_VRAM_I_CNT * (REG_BASE + 0x249) ;
REG_VRAM_AB_CNT * (REG_BASE + 0x240) ;
REG_VRAM_CD_CNT * (REG_BASE + 0x242) ;
REG_VRAM_EF_CNT * (REG_BASE + 0x244) ;
REG_VRAM_G_W_CNT * (REG_BASE + 0x246) ; 内部ワークRAM
REG_VRAM_ABCD_CNT * (REG_BASE + 0x240) ;
REG_VRAM_EFG_W_CNT * (REG_BASE + 0x244) ; 内部ワークRAM
REG_VRAM_HI_CNT * (REG_BASE + 0x248) ;
REG_MASTER_BRIGHT * (REG_BASE + 0x6c) ; マスター輝度 コントロール
REG_DISPCAPCNT * (REG_BASE + 0x64) ; 表示キャプチャ コントロール
REG_DISP_MMEM_FIFO * (REG_BASE + 0x68) ; メインメモリ表示FIFO
REG_MOSAIC * (REG_BASE + 0x4c) ; モザイク サイズ
REG_BLDCNT * (REG_BASE + 0x50) ; ブレンドモード コントロール
REG_BLDALPHA * (REG_BASE + 0x52) ; 半透明 パラメータ
REG_BLDY * (REG_BASE + 0x54) ; 輝度変更 パラメータ
REG_WINCNT * (REG_BASE + 0x40) ; ウインドウ コントロール
REG_WIN0H * (REG_BASE + 0x40) ; ウインドウ0水平領域
REG_WIN1H * (REG_BASE + 0x42) ; ウインドウ1水平領域
REG_WIN0V * (REG_BASE + 0x44) ; ウインドウ0垂直領域
REG_WIN1V * (REG_BASE + 0x46) ; ウインドウ1垂直領域
REG_WININ * (REG_BASE + 0x48) ; ウインドウ内コントロール
REG_WIN0 * (REG_BASE + 0x48) ; ウインドウ0コントロール
REG_WIN1 * (REG_BASE + 0x49) ; ウインドウ1コントロール
REG_WIN01 * (REG_BASE + 0x48) ; ウインドウ0・1コントロール
REG_WINOUT * (REG_BASE + 0x4a) ; ウインドウ外コントロール
REG_OBJWIN * (REG_BASE + 0x4b) ; OBJウインドウコントロール
REG_WINOUTOBJ * (REG_BASE + 0x4a) ; ウインドウ外・OBJウインドウコントロール
REG_BGCNT * (REG_BASE + 0x8) ; BGコントロール
REG_BG0CNT * (REG_BASE + 0x8) ; BG0コントロール
REG_BG1CNT * (REG_BASE + 0xa) ; BG1コントロール
REG_BG2CNT * (REG_BASE + 0xc) ; BG2コントロール
REG_BG3CNT * (REG_BASE + 0xe) ; BG3コントロール
REG_BGOFS * (REG_BASE + 0x10) ; BGオフセット
REG_BG0HOFS * (REG_BASE + 0x10) ; BG0Hオフセット
REG_BG0VOFS * (REG_BASE + 0x12) ; BG0Vオフセット
REG_BG1HOFS * (REG_BASE + 0x14) ; BG1Hオフセット
REG_BG1VOFS * (REG_BASE + 0x16) ; BG1Vオフセット
REG_BG2HOFS * (REG_BASE + 0x18) ; BG2Hオフセット
REG_BG2VOFS * (REG_BASE + 0x1a) ; BG2Vオフセット
REG_BG3HOFS * (REG_BASE + 0x1c) ; BG3Hオフセット
REG_BG3VOFS * (REG_BASE + 0x1e) ; BG3Vオフセット
REG_BG2AFFINE * (REG_BASE + 0x20) ; BG2アフィン変換パラメータ群
REG_BG2PA * (REG_BASE + 0x20) ; BG2ライン方向X座標差分
REG_BG2PB * (REG_BASE + 0x22) ; 垂直方向X座標差分
REG_BG2PC * (REG_BASE + 0x24) ; BG2ライン方向Y座標差分
REG_BG2PD * (REG_BASE + 0x26) ; 垂直方向Y座標差分
REG_BG2X * (REG_BASE + 0x28) ; BG2スタートX座標
REG_BG2Y * (REG_BASE + 0x2c) ; BG2スタートY座標
REG_BG3AFFINE * (REG_BASE + 0x30) ; BG3アフィン変換パラメータ群
REG_BG3PA * (REG_BASE + 0x30) ; BG3ライン方向X座標差分
REG_BG3PB * (REG_BASE + 0x32) ; 垂直方向X座標差分
REG_BG3PC * (REG_BASE + 0x34) ; BG3ライン方向Y座標差分
REG_BG3PD * (REG_BASE + 0x36) ; 垂直方向Y座標差分
REG_BG3X * (REG_BASE + 0x38) ; BG3スタートX座標
REG_BG3Y * (REG_BASE + 0x3c) ; BG3スタートY座標
REG_GXFIFO * (REG_BASE + 0x400) ; ジオメトリFIFO
REG_LISTRAM_COUNT * (REG_BASE + 0x604) ; ポリゴンリストRAMカウンタ
REG_VTXRAM_COUNT * (REG_BASE + 0x606) ; 頂点RAMカウンタ
REG_RDLINES_COUNT * (REG_BASE + 0x320) ; レンダリング済みライン数カウンタ
REG_SWAP_BUFFERS * (REG_BASE + 0x540) ; レンダリングエンジン参照データ群のスワップ
REG_VIEWPORT * (REG_BASE + 0x580) ; 視界
REG_MTX_MODE * (REG_BASE + 0x440) ; 行列モード
REG_MTX_PUSH * (REG_BASE + 0x444) ; 行列プッシュ
REG_MTX_POP * (REG_BASE + 0x448) ; 行列ポップ
REG_MTX_STORE * (REG_BASE + 0x44c) ; 行列ストア
REG_MTX_RESTORE * (REG_BASE + 0x450) ; 行列リストア
REG_MTX_IDENTITY * (REG_BASE + 0x454) ; 単位行列 初期化
REG_MTX_LOAD_4x4 * (REG_BASE + 0x458) ; 行列ロード(4x4)
REG_MTX_LOAD_4x3 * (REG_BASE + 0x45c) ;
REG_MTX_MULT_4x4 * (REG_BASE + 0x460) ; 行列乗算
REG_MTX_MULT_4x3 * (REG_BASE + 0x464) ;
REG_MTX_MULT_3x3 * (REG_BASE + 0x468) ;
REG_MTX_SCALE * (REG_BASE + 0x46c) ; スケール行列乗算(1x3)
REG_MTX_TRANS * (REG_BASE + 0x470) ; 移動行列乗算(1x3)
REG_CLIPMTX_RESULT * (REG_BASE + 0x640) ; カレントクリップ座標行列 読み込み
REG_VECMTX_RESULT * (REG_BASE + 0x680) ; カレントベクトル行列 読み込み
REG_LIGHT_VECTOR * (REG_BASE + 0x4c8) ; ライトベクトル
REG_LIGHT_COLOR * (REG_BASE + 0x4cc) ; ライトカラー
REG_MATERIAL_COLOR * (REG_BASE + 0x4c0) ; マテリアルカラー
REG_DIF_AMB * (REG_BASE + 0x4c0) ; 拡散光 環境光成分
REG_SPE_EMI * (REG_BASE + 0x4c4) ; 反射光 放射光成分
REG_SHININESS * (REG_BASE + 0x4d0) ; 鏡面反射輝度
REG_POLYGON_ATTR * (REG_BASE + 0x4a4) ; ポリゴン属性
REG_TEX_PARAM * (REG_BASE + 0x4a8) ; テクスチャパラメータ
REG_TEXIMAGE_PARAM * (REG_BASE + 0x4a8)
REG_TEXPLTT_BASE * (REG_BASE + 0x4ac)
REG_BEGIN_VTXS * (REG_BASE + 0x500) ; 頂点リスト スタート
REG_END_VTXS * (REG_BASE + 0x504) ; 頂点リスト エンド
REG_COLOR * (REG_BASE + 0x480) ; 頂点カラー
REG_NORMAL * (REG_BASE + 0x484) ; 頂点法線
REG_TEXCOORD * (REG_BASE + 0x488) ; 頂点テクスチャ座標
REG_VTX_16 * (REG_BASE + 0x48c) ; 頂点16bit座標
REG_VTX_10 * (REG_BASE + 0x490) ; 頂点10bit座標
REG_VTX_XY * (REG_BASE + 0x494) ; 頂点16bitXY座標
REG_VTX_XZ * (REG_BASE + 0x498) ; 頂点16bitXZ座標
REG_VTX_YZ * (REG_BASE + 0x49c) ; 頂点16bitYZ座標
REG_VTX_DIFF * (REG_BASE + 0x4a0) ; 頂点16bit座標差分値
REG_BOX_TEST * (REG_BASE + 0x5c0) ; ボックステスト
REG_POS_TEST * (REG_BASE + 0x5c4) ; 位置テスト
REG_VEC_TEST * (REG_BASE + 0x5c8) ; ベクトルテスト
REG_POS_RESULT * (REG_BASE + 0x620) ; 位置テスト結果
REG_VEC_RESULT * (REG_BASE + 0x630) ; ベクトルテスト結果
REG_CLEAR_COLOR_ATTR * (REG_BASE + 0x350) ; カラー&属性バッファ クリア値
REG_CLEAR_DEPTH * (REG_BASE + 0x354) ; Zバッファ クリア値
REG_CLRIMAGE_OFFSET * (REG_BASE + 0x356) ; クリアイメージ オフセット
REG_EDGE_COLOR * (REG_BASE + 0x330) ; エッジカラー
REG_FOG_COLOR * (REG_BASE + 0x358) ; フォグ カラー
REG_FOG_OFFSET * (REG_BASE + 0x35c) ; フォグ オフセット
REG_FOG_TABLE * (REG_BASE + 0x360) ; フォグ濃度テーブル
REG_TOON_TABLE * (REG_BASE + 0x380) ; トゥーンシェーディング・テーブル
REG_ALPHA_TEST_REF * (REG_BASE + 0x340) ; アルファテスト参照値
REG_DISP_1DOT_DEPTH * (REG_BASE + 0x610) ; 1ドットポリゴン描画開始Z値
REG_DMA0 * (REG_BASE + 0xb0) ;
REG_DMA0SAD * (REG_BASE + 0xb0)
REG_DMA0DAD * (REG_BASE + 0xb4)
REG_DMA0CNT * (REG_BASE + 0xb8)
REG_DMA0CNT_L * (REG_BASE + 0xb8)
REG_DMA0CNT_H * (REG_BASE + 0xba)
REG_DMA1 * (REG_BASE + 0xbc) ;
REG_DMA1SAD * (REG_BASE + 0xbc)
REG_DMA1DAD * (REG_BASE + 0xc0)
REG_DMA1CNT * (REG_BASE + 0xc4)
REG_DMA1CNT_L * (REG_BASE + 0xc4)
REG_DMA1CNT_H * (REG_BASE + 0xc6)
REG_DMA2 * (REG_BASE + 0xc8) ;
REG_DMA2SAD * (REG_BASE + 0xc8)
REG_DMA2DAD * (REG_BASE + 0xcc)
REG_DMA2CNT * (REG_BASE + 0xd0)
REG_DMA2CNT_L * (REG_BASE + 0xd0)
REG_DMA2CNT_H * (REG_BASE + 0xd2)
REG_DMA3 * (REG_BASE + 0xd4) ;
REG_DMA3SAD * (REG_BASE + 0xd4)
REG_DMA3DAD * (REG_BASE + 0xd8)
REG_DMA3CNT * (REG_BASE + 0xdc)
REG_DMA3CNT_L * (REG_BASE + 0xdc)
REG_DMA3CNT_H * (REG_BASE + 0xde)
IF :DEF: IRIS_TS
REG_DMA0_CLR_DATA * (REG_BASE + 0xe0) ; クリアデータ
REG_DMA1_CLR_DATA * (REG_BASE + 0xe4)
REG_DMA2_CLR_DATA * (REG_BASE + 0xe8)
REG_DMA3_CLR_DATA * (REG_BASE + 0xec)
ELSE
REG_DMA0_CLR_DATA * (DMA_CLEAR_DATA_BUF + 0x0)
REG_DMA1_CLR_DATA * (DMA_CLEAR_DATA_BUF + 0x4)
REG_DMA2_CLR_DATA * (DMA_CLEAR_DATA_BUF + 0x8)
REG_DMA3_CLR_DATA * (DMA_CLEAR_DATA_BUF + 0xc)
ENDIF
REG_TM0CNT * (REG_BASE + 0x100) ; タイマー0
REG_TM0CNT_L * (REG_BASE + 0x100)
REG_TM0CNT_H * (REG_BASE + 0x102)
REG_TM1CNT * (REG_BASE + 0x104) ; タイマー1
REG_TM1CNT_L * (REG_BASE + 0x104)
REG_TM1CNT_H * (REG_BASE + 0x106)
REG_TM2CNT * (REG_BASE + 0x108) ; タイマー2
REG_TM2CNT_L * (REG_BASE + 0x108)
REG_TM2CNT_H * (REG_BASE + 0x10a)
REG_TM3CNT * (REG_BASE + 0x10c) ; タイマー3
REG_TM3CNT_L * (REG_BASE + 0x10c)
REG_TM3CNT_H * (REG_BASE + 0x10e)
REG_KEYINPUT * (REG_BASE + 0x130) ; キー入力
REG_KEYCNT * (REG_BASE + 0x132) ; キーコントロール
REG_R0CNT * (REG_BASE + 0x134) ; 汎用ポート0
REG_R1CNT * (REG_BASE + 0x138) ;
;-----------------------------------------------------------------------
; レジスタ・オフセット
;-----------------------------------------------------------------------
OFFSET_REG_IME * 0x208 ; 割り込みマスタイネーブル
OFFSET_REG_IE * 0x210 ; 割り込み許可
OFFSET_REG_IF * 0x214 ; 割り込み要求
OFFSET_REG_SUBPINTF * 0x180 ; サブプロセッサインタフェース
OFFSET_REG_SUBP_FIFO_CNT * 0x184 ; CPU間FIFOコントロール
OFFSET_REG_SEND_FIFO * 0x188 ; 送信FIFO
OFFSET_REG_RECV_FIFO * 0x100000 ; 受信FIFO
OFFSET_REG_EXMEMCNT * 0x204 ; 外部メモリコントロール
OFFSET_REG_POWCNT * 0x304 ; パワーコントロール
OFFSET_REG_DIVCNT * 0x280 ; 除算器 コントロール
OFFSET_REG_DIV_NUMER * 0x290 ; 被除数
OFFSET_REG_DIV_DENOM * 0x298 ; 除数
OFFSET_REG_DIV_RESULT * 0x2a0 ; 商
OFFSET_REG_DIVREM_RESULT * 0x2a8 ; 余り
OFFSET_REG_SQRTCNT * 0x2b0 ; 平方根演算器 コントロール
OFFSET_REG_SQRT_RESULT * 0x2b4 ; 結果
OFFSET_REG_SQRT_PARAM * 0x2b8 ; パラメータ
OFFSET_REG_DISPCNT * 0x0 ; 表示コントロール
OFFSET_REG_DISPCNT_L * 0x0
OFFSET_REG_DISPCNT_H * 0x2
OFFSET_REG_DISP2DCNT * 0x0 ; 2D表示コントロール
OFFSET_REG_DISP3DCNT * 0x60 ; 3D表示コントロール
OFFSET_REG_DISPSTAT * 0x4 ; 表示ステータス
OFFSET_REG_VCOUNT * 0x6 ; Vカウンタ
OFFSET_REG_GXSTAT * 0x600 ; ジオメトリエンジンステータス
OFFSET_REG_VRAMCNT * 0x240 ; VRAMコントロール
OFFSET_REG_WRAMCNT * 0x247 ; 内部ワークRAMコントロール
OFFSET_REG_WVRAMCNT * 0x244 ; 内部ワークRAM コントロール
OFFSET_REG_VRAM_A_CNT * 0x240 ;
OFFSET_REG_VRAM_B_CNT * 0x241 ;
OFFSET_REG_VRAM_C_CNT * 0x242 ;
OFFSET_REG_VRAM_D_CNT * 0x243 ;
OFFSET_REG_VRAM_E_CNT * 0x244 ;
OFFSET_REG_VRAM_F_CNT * 0x245 ;
OFFSET_REG_VRAM_G_CNT * 0x246 ;
OFFSET_REG_VRAM_H_CNT * 0x248 ;
OFFSET_REG_VRAM_I_CNT * 0x249 ;
OFFSET_REG_VRAM_AB_CNT * 0x240 ;
OFFSET_REG_VRAM_CD_CNT * 0x242 ;
OFFSET_REG_VRAM_EF_CNT * 0x244 ;
OFFSET_REG_VRAM_G_W_CNT * 0x246 ; 内部ワークRAM
OFFSET_REG_VRAM_ABCD_CNT * 0x240 ;
OFFSET_REG_VRAM_EFG_W_CNT * 0x244 ; 内部ワークRAM
OFFSET_REG_VRAM_HI_CNT * 0x248 ;
OFFSET_REG_MASTER_BRIGHT * 0x6c ; マスター輝度 コントロール
OFFSET_REG_DISPCAPCNT * 0x64 ; 表示キャプチャ コントロール
OFFSET_REG_DISP_MMEM_FIFO * 0x68 ; メインメモリ表示FIFO
OFFSET_REG_TVOUTCNT * 0x70 ; テレビ出力コントロール
OFFSET_REG_MOSAIC * 0x4c ; モザイク サイズ
OFFSET_REG_BLDCNT * 0x50 ; ブレンドモード コントロール
OFFSET_REG_BLDALPHA * 0x52 ; 半透明 パラメータ
OFFSET_REG_BLDY * 0x54 ; 輝度変更 パラメータ
OFFSET_REG_WINCNT * 0x40 ; ウインドウ コントロール
OFFSET_REG_WIN0H * 0x40 ; ウインドウ0水平領域
OFFSET_REG_WIN1H * 0x42 ; ウインドウ1水平領域
OFFSET_REG_WIN0V * 0x44 ; ウインドウ0垂直領域
OFFSET_REG_WIN1V * 0x46 ; ウインドウ1垂直領域
OFFSET_REG_WININ * 0x48 ; ウインドウ内コントロール
OFFSET_REG_WIN0 * 0x48 ; ウインドウ0コントロール
OFFSET_REG_WIN1 * 0x49 ; ウインドウ1コントロール
OFFSET_REG_WIN01 * 0x48 ; ウインドウ0・1コントロール
OFFSET_REG_WINOUT * 0x4a ; ウインドウ外コントロール
OFFSET_REG_OBJWIN * 0x4b ; OBJウインドウコントロール
OFFSET_REG_WINOUTOBJ * 0x4a ; ウインドウ外・OBJウインドウコントロール
OFFSET_REG_BGCNT * 0x8 ; BGコントロール
OFFSET_REG_BG0CNT * 0x8 ; BG0コントロール
OFFSET_REG_BG1CNT * 0xa ; BG1コントロール
OFFSET_REG_BG2CNT * 0xc ; BG2コントロール
OFFSET_REG_BG3CNT * 0xe ; BG3コントロール
OFFSET_REG_BGOFS * 0x10 ; BGオフセット
OFFSET_REG_BG0HOFS * 0x10 ; BG0Hオフセット
OFFSET_REG_BG0VOFS * 0x12 ; BG0Vオフセット
OFFSET_REG_BG1HOFS * 0x14 ; BG1Hオフセット
OFFSET_REG_BG1VOFS * 0x16 ; BG1Vオフセット
OFFSET_REG_BG2HOFS * 0x18 ; BG2Hオフセット
OFFSET_REG_BG2VOFS * 0x1a ; BG2Vオフセット
OFFSET_REG_BG3HOFS * 0x1c ; BG3Hオフセット
OFFSET_REG_BG3VOFS * 0x1e ; BG3Vオフセット
OFFSET_REG_BG2AFFINE * 0x20 ; BG2アフィン変換パラメータ群
OFFSET_REG_BG2PA * 0x20 ; BG2ライン方向X座標差分
OFFSET_REG_BG2PB * 0x22 ; 垂直方向X座標差分
OFFSET_REG_BG2PC * 0x24 ; BG2ライン方向Y座標差分
OFFSET_REG_BG2PD * 0x26 ; 垂直方向Y座標差分
OFFSET_REG_BG2X * 0x28 ; BG2スタートX座標
OFFSET_REG_BG2Y * 0x2c ; BG2スタートY座標
OFFSET_REG_BG3AFFINE * 0x30 ; BG3アフィン変換パラメータ群
OFFSET_REG_BG3PA * 0x30 ; BG3ライン方向X座標差分
OFFSET_REG_BG3PB * 0x32 ; 垂直方向X座標差分
OFFSET_REG_BG3PC * 0x34 ; BG3ライン方向Y座標差分
OFFSET_REG_BG3PD * 0x36 ; 垂直方向Y座標差分
OFFSET_REG_BG3X * 0x38 ; BG3スタートX座標
OFFSET_REG_BG3Y * 0x3c ; BG3スタートY座標
OFFSET_REG_GXFIFO * 0x400 ; ジオメトリFIFO
OFFSET_REG_LISTRAM_COUNT * 0x604 ; ポリゴンリストRAMカウンタ
OFFSET_REG_VTXRAM_COUNT * 0x606 ; 頂点RAMカウンタ
OFFSET_REG_RDLINES_COUNT * 0x320 ; レンダリング済みライン数カウンタ
OFFSET_REG_SWAP_BUFFERS * 0x540 ; レンダリングエンジン参照データ群のスワップ
OFFSET_REG_VIEWPORT * 0x580 ; 視界
OFFSET_REG_MTX_MODE * 0x440 ; 行列モード
OFFSET_REG_MTX_PUSH * 0x444 ; 行列プッシュ
OFFSET_REG_MTX_POP * 0x448 ; 行列ポップ
OFFSET_REG_MTX_STORE * 0x44c ; 行列ストア
OFFSET_REG_MTX_RESTORE * 0x450 ; 行列リストア
OFFSET_REG_MTX_IDENTITY * 0x454 ; 単位行列 初期化
OFFSET_REG_MTX_LOAD_4x4 * 0x458 ; 行列ロード(4x4)
OFFSET_REG_MTX_LOAD_4x3 * 0x45c ;
OFFSET_REG_MTX_MULT_4x4 * 0x460 ; 行列乗算
OFFSET_REG_MTX_MULT_4x3 * 0x464 ;
OFFSET_REG_MTX_MULT_3x3 * 0x468 ;
OFFSET_REG_MTX_SCALE * 0x46c ; スケール行列乗算(1x3)
OFFSET_REG_MTX_TRANS * 0x470 ; 移動行列乗算(1x3)
OFFSET_REG_CLIPMTX_RESULT * 0x640 ; カレントクリップ座標行列 読み込み
OFFSET_REG_VECMTX_RESULT * 0x680 ; カレントベクトル行列 読み込み
OFFSET_REG_LIGHT_VECTOR * 0x4c8 ; ライトベクトル
OFFSET_REG_LIGHT_COLOR * 0x4cc ; ライトカラー
OFFSET_REG_MATERIAL_COLOR * 0x4c0 ; マテリアルカラー
OFFSET_REG_DIF_AMB * 0x4c0 ; 拡散光 環境光成分
OFFSET_REG_SPE_EMI * 0x4c4 ; 反射光 放射光成分
OFFSET_REG_SHININESS * 0x4d0 ; 鏡面反射輝度
OFFSET_REG_POLYGON_ATTR * 0x4a4 ; ポリゴン属性
OFFSET_REG_TEX_PARAM * 0x4a8 ; テクスチャパラメータ
OFFSET_REG_TEXIMAGE_PARAM * 0x4a8
OFFSET_REG_TEXPLTT_BASE * 0x4ac
OFFSET_REG_BEGIN_VTXS * 0x500 ; 頂点リスト スタート
OFFSET_REG_END_VTXS * 0x504 ; 頂点リスト エンド
OFFSET_REG_COLOR * 0x480 ; 頂点カラー
OFFSET_REG_NORMAL * 0x484 ; 頂点法線
OFFSET_REG_TEXCOORD * 0x488 ; 頂点テクスチャ座標
OFFSET_REG_VTX_16 * 0x48c ; 頂点16bit座標
OFFSET_REG_VTX_10 * 0x490 ; 頂点10bit座標
OFFSET_REG_VTX_XY * 0x494 ; 頂点16bitXY座標
OFFSET_REG_VTX_XZ * 0x498 ; 頂点16bitXZ座標
OFFSET_REG_VTX_YZ * 0x49c ; 頂点16bitYZ座標
OFFSET_REG_VTX_DIFF * 0x4a0 ; 頂点16bit座標差分値
OFFSET_REG_BOX_TEST * 0x5c0 ; ボックステスト
OFFSET_REG_POS_TEST * 0x5c4 ; 位置テスト
OFFSET_REG_VEC_TEST * 0x5c8 ; ベクトルテスト
OFFSET_REG_POS_RESULT * 0x620 ; 位置テスト結果
OFFSET_REG_VEC_RESULT * 0x630 ; ベクトルテスト結果
OFFSET_REG_CLEAR_COLOR_ATTR * 0x350 ; カラー&属性バッファ クリア値
OFFSET_REG_CLEAR_DEPTH * 0x354 ; Zバッファ クリア値
OFFSET_REG_CLRIMAGE_OFFSET * 0x356 ; クリアイメージ オフセット
OFFSET_REG_EDGE_COLOR * 0x330 ; エッジカラー
OFFSET_REG_FOG_COLOR * 0x358 ; フォグ カラー
OFFSET_REG_FOG_OFFSET * 0x35c ; フォグ オフセット
OFFSET_REG_FOG_TABLE * 0x360 ; フォグ濃度テーブル
OFFSET_REG_TOON_TABLE * 0x380 ; トゥーンシェーディング・テーブル
OFFSET_REG_ALPHA_TEST_REF * 0x340 ; アルファテスト参照値
OFFSET_REG_DISP_1DOT_DEPTH * 0x610 ; 1ドットポリゴン描画開始Z値
OFFSET_REG_DMA0 * 0xb0 ;
OFFSET_REG_DMA0SAD * 0xb0
OFFSET_REG_DMA0DAD * 0xb4
OFFSET_REG_DMA0CNT * 0xb8
OFFSET_REG_DMA0CNT_L * 0xb8
OFFSET_REG_DMA0CNT_H * 0xba
OFFSET_REG_DMA1 * 0xbc ;
OFFSET_REG_DMA1SAD * 0xbc
OFFSET_REG_DMA1DAD * 0xc0
OFFSET_REG_DMA1CNT * 0xc4
OFFSET_REG_DMA1CNT_L * 0xc4
OFFSET_REG_DMA1CNT_H * 0xc6
OFFSET_REG_DMA2 * 0xc8 ;
OFFSET_REG_DMA2SAD * 0xc8
OFFSET_REG_DMA2DAD * 0xcc
OFFSET_REG_DMA2CNT * 0xd0
OFFSET_REG_DMA2CNT_L * 0xd0
OFFSET_REG_DMA2CNT_H * 0xd2
OFFSET_REG_DMA3 * 0xd4 ;
OFFSET_REG_DMA3SAD * 0xd4
OFFSET_REG_DMA3DAD * 0xd8
OFFSET_REG_DMA3CNT * 0xdc
OFFSET_REG_DMA3CNT_L * 0xdc
OFFSET_REG_DMA3CNT_H * 0xde
IF :DEF: IRIS_TS
OFFSET_REG_DMA0_CLR_DATA * 0xe0 ; クリアデータ
OFFSET_REG_DMA1_CLR_DATA * 0xe4
OFFSET_REG_DMA2_CLR_DATA * 0xe8
OFFSET_REG_DMA3_CLR_DATA * 0xec
ENDIF
OFFSET_REG_TM0CNT * 0x100 ; タイマー0
OFFSET_REG_TM0CNT_L * 0x100
OFFSET_REG_TM0CNT_H * 0x102
OFFSET_REG_TM1CNT * 0x104 ; タイマー1
OFFSET_REG_TM1CNT_L * 0x104
OFFSET_REG_TM1CNT_H * 0x106
OFFSET_REG_TM2CNT * 0x108 ; タイマー2
OFFSET_REG_TM2CNT_L * 0x108
OFFSET_REG_TM2CNT_H * 0x10a
OFFSET_REG_TM3CNT * 0x10c ; タイマー3
OFFSET_REG_TM3CNT_L * 0x10c
OFFSET_REG_TM3CNT_H * 0x10e
OFFSET_REG_KEYINPUT * 0x130 ; キー入力
OFFSET_REG_KEYCNT * 0x132 ; キーコントロール
OFFSET_REG_R0CNT * 0x134 ; 汎用ポート0
OFFSET_REG_R1CNT * 0x138 ;
ENDIF ; _IRIS_MEMORY_MAP_H
END