mirror of
https://github.com/rvtr/ntr_bootrom.git
synced 2025-10-31 07:11:11 -04:00
523 lines
25 KiB
C
523 lines
25 KiB
C
//======================================================================
|
||
// IrisSubpDefine.h
|
||
// IRISサブプロセッサ 標準定数
|
||
//
|
||
// Copyright (C) 2002-2004 NINTENDO Co.,Ltd.
|
||
//======================================================================
|
||
#ifndef _IRIS_SUBP_DEFINE_H
|
||
#define _IRIS_SUBP_DEFINE_H
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
|
||
|
||
#include <IrisSubpTarget.h>
|
||
|
||
|
||
//----------------------------------------------------------------------
|
||
// 定数
|
||
//----------------------------------------------------------------------
|
||
|
||
#define SYSTEM_CLOCK 33513982 // システムクロック
|
||
|
||
#define MAINP 0 // メインプロセッサ
|
||
#define SUBP 1 // サブプロセッサ
|
||
|
||
|
||
#define ON 1
|
||
#define OFF 0
|
||
#define ENABLE 1
|
||
#define DISABLE 0
|
||
#define TRUE 1
|
||
#define FALSE 0
|
||
|
||
|
||
|
||
//**********************************************************************
|
||
// IRISサブプロセッサレジスタ・コントロールビット
|
||
//**********************************************************************
|
||
|
||
//----------------------------------------------------------------------
|
||
// プログラムステータスレジスタ
|
||
//----------------------------------------------------------------------
|
||
|
||
#define PSR_CPU_MODE_MASK 0x1f // CPUモード
|
||
|
||
#define PSR_USER_MODE 0x10 // ユーザ
|
||
#define PSR_FIQ_MODE 0x11 // FIQ
|
||
#define PSR_IRQ_MODE 0x12 // IRQ
|
||
#define PSR_SVC_MODE 0x13 // スーパバイザ
|
||
#define PSR_ABORT_MODE 0x17 // アボート(プリフェッチ/データ)
|
||
#define PSR_UNDEF_MODE 0x1b // 未定義命令
|
||
#define PSR_SYS_MODE 0x1f // システム
|
||
|
||
#define PSR_THUMB_STATE 0x20 // THUMBステート
|
||
#define PSR_FIQ_DISABLE 0x40 // FIQ不許可
|
||
#define PSR_IRQ_DISABLE 0x80 // IRQ不許可
|
||
#define PSR_IRQ_FIQ_DISABLE 0xc0 // IRQ&FIQ不許可
|
||
|
||
#define PSR_V_FLAG 0x10000000 // オーバーフロー
|
||
#define PSR_C_FLAG 0x20000000 // キャリー/ボロー/拡張
|
||
#define PSR_Z_FLAG 0x40000000 // ゼロ
|
||
#define PSR_N_FLAG 0x80000000 // 負/未満
|
||
|
||
// 構造体メンバ用定数
|
||
|
||
#define ST_PSR_USER_MODE 0x10 // ユーザ
|
||
#define ST_PSR_FIQ_MODE 0x11 // FIQ
|
||
#define ST_PSR_IRQ_MODE 0x12 // IRQ
|
||
#define ST_PSR_SVC_MODE 0x13 // スーパバイザ
|
||
#define ST_PSR_ABORT_MODE 0x17 // アボート(プリフェッチ/データ)
|
||
#define ST_PSR_UNDEF_MODE 0x1b // 未定義命令
|
||
#define ST_PSR_SYS_MODE 0x1f // システム
|
||
|
||
|
||
//----------------------------------------------------------------------
|
||
// 割り込み要求/許可フラグ
|
||
//----------------------------------------------------------------------
|
||
|
||
#define V_BLANK_INTR_FLAG 0x00000001 // Vブランク割り込み
|
||
#define H_BLANK_INTR_FLAG 0x00000002 // Hブランク割り込み
|
||
#define V_COUNT_INTR_FLAG 0x00000004 // Vカウンタ一致割り込み
|
||
#define TIMER0_INTR_FLAG 0x00000008 // タイマー0割り込み
|
||
#define TIMER1_INTR_FLAG 0x00000010 // タイマー1割り込み
|
||
#define TIMER2_INTR_FLAG 0x00000020 // タイマー2割り込み
|
||
#define TIMER3_INTR_FLAG 0x00000040 // タイマー3割り込み
|
||
#define SIO_INTR_FLAG 0x00000080 // シリアル通信割り込み
|
||
#define DMA0_INTR_FLAG 0x00000100 // DMA0割り込み
|
||
#define DMA1_INTR_FLAG 0x00000200 // DMA1割り込み
|
||
#define DMA2_INTR_FLAG 0x00000400 // DMA2割り込み
|
||
#define DMA3_INTR_FLAG 0x00000800 // DMA3割り込み
|
||
#define KEY_INTR_FLAG 0x00001000 // キー割り込み
|
||
#define CARTRIDGE_INTR_FLAG 0x00002000 // カートリッジ割り込み
|
||
|
||
#define MAINP_INTR_FLAG 0x00010000 // メインプロセッサ割り込み
|
||
#define MPFIFO_SEND_INTR_FLAG 0x00020000 // メインプロセッサ間送信FIFOエンプティ割り込み
|
||
#define MPFIFO_RECV_INTR_FLAG 0x00040000 // メインプロセッサ間受信FIFOノットエンプティ割り込み
|
||
#define CARD_DATA_INTR_FLAG 0x00080000 // カードデータ転送終了割り込み
|
||
#define CARD_IREQ_INTR_FLAG 0x00100000 // カードIREQ割り込み
|
||
#define PMIC_RTC_INTR_FLAG 0x00400000 // パワーマネージメントIC割り込み 又は RTC割り込み
|
||
#define SPI_INTR_FLAG 0x00800000 // SPI割り込み
|
||
#define WIRELESS_INTR_FLAG 0x01000000 // 無線通信割り込み
|
||
|
||
|
||
//----------------------------------------------------------------------
|
||
// メインプロセッサ インタフェース
|
||
//----------------------------------------------------------------------
|
||
|
||
#define MAINP_RECV_STATUS_MASK 0x000f // 受信ステータス
|
||
#define MAINP_SEND_STATUS_MASK 0x0f00 // 送信ステータス
|
||
|
||
#define MAINP_RECV_STATUS_SHIFT 0
|
||
#define MAINP_SEND_STATUS_SHIFT 8
|
||
|
||
#define MAINP_SEND_IF 0x2000 // 割り込み要求送信
|
||
#define MAINP_RECV_IF_ENABLE 0x4000 // 割り込み要求受信 許可
|
||
|
||
//----------------------------------------------------------------------
|
||
// メイン通信プロセッサFIFO コントロール
|
||
//----------------------------------------------------------------------
|
||
|
||
#define MPFIFO_SEND_EMPTY 0x0001 // 送信FIFO エンプティ
|
||
#define MPFIFO_SEND_FULL 0x0002 // フル
|
||
#define MPFIFO_SEND_IF_ENABLE 0x0004 // 割り込み要求 許可
|
||
#define MPFIFO_SEND_CLEAR 0x0008 // クリア
|
||
#define MPFIFO_RECV_EMPTY 0x0100 // 受信FIFO エンプティ
|
||
#define MPFIFO_RECV_FULL 0x0200 // フル
|
||
#define MPFIFO_RECV_IF_ENABLE 0x0400 // 割り込み要求 許可
|
||
#define MPFIFO_ENABLE 0x8000 // I/OプロセッサFIFO イネーブル
|
||
|
||
|
||
//----------------------------------------------------------------------
|
||
// パワーコントロール
|
||
//----------------------------------------------------------------------
|
||
|
||
#define POW_SOUND_ON 0x0001 // サウンド ON
|
||
#define POW_WIRELESS_ON 0x0002 // 無線通信 ON
|
||
#define POW_ALL_ON 0x0003 // 全部 ON
|
||
|
||
|
||
//----------------------------------------------------------------------
|
||
// VRAM ステータス
|
||
//----------------------------------------------------------------------
|
||
|
||
#define VRAM_MAINP_ALL 0x00 // VRAM-C・D → メインプロセッサ
|
||
#define VRAM_MAINP_D_SUBP_C 0x01 // D → メインプロセッサ
|
||
// C → サブプロセッサ
|
||
#define VRAM_MAINP_C_SUBP_D 0x02 // C → メインプロセッサ
|
||
// D → サブプロセッサ
|
||
#define VRAM_SUBP_ALL 0x03 // C・D → サブプロセッサ
|
||
|
||
//----------------------------------------------------------------------
|
||
// 内部ワークRAM ステータス
|
||
//----------------------------------------------------------------------
|
||
|
||
#define WRAM_MAINP_ALL 0x00 // 共有内部ワークRAMブロック0・1 → メインプロセッサ
|
||
#define WRAM_MAINP_B1_SUBP_B0 0x01 // ブロック1 → メインプロセッサ
|
||
// ブロック0 → サブプロセッサ
|
||
#define WRAM_MAINP_B0_SUBP_B1 0x02 // ブロック0 → メインプロセッサ
|
||
// ブロック1 → サブプロセッサ
|
||
#define WRAM_SUBP_ALL 0x03 // ブロック0・1 → サブプロセッサ
|
||
|
||
|
||
//----------------------------------------------------------------------
|
||
// 表示ステータス
|
||
//----------------------------------------------------------------------
|
||
|
||
#define DPSTAT_V_SET_LO_MASK 0xff00 // Vカウンタ比較値設定
|
||
#define DPSTAT_V_SET_D8 0x0080 // Vカウンタ比較値設定8ビット目
|
||
|
||
#define DPSTAT_V_SET_LO_SHIFT 8
|
||
|
||
#define DPSTAT_V_BLANK 0x0001 // Vブランク期間中
|
||
#define DPSTAT_H_BLANK 0x0002 // Hブランク期間中
|
||
#define DPSTAT_V_COUNT 0x0004 // Vカウンタ一致中
|
||
#define DPSTAT_V_BLANK_IF_ENABLE 0x0008 // Vブランク割り込み要求 許可
|
||
#define DPSTAT_H_BLANK_IF_ENABLE 0x0010 // Hブランク割り込み要求 許可
|
||
#define DPSTAT_V_COUNT_IF_ENABLE 0x0020 // Vカウンタ一致割り込み要求 許可
|
||
|
||
|
||
//----------------------------------------------------------------------
|
||
// サウンドマスタ コントロール
|
||
//----------------------------------------------------------------------
|
||
|
||
#define SOUND_VOLUME_MASK 0x007f // マスタ出力レベル
|
||
|
||
#define SOUND_VOLUME_SHIFT 0
|
||
|
||
#define SOUND_LOUT_MIXER 0x0000 // L側最終段出力 ミキサー
|
||
#define SOUND_LOUT_CH1 0x0100 // チャンネル1
|
||
#define SOUND_LOUT_CH3 0x0200 // チャンネル3
|
||
#define SOUND_LOUT_CH1_CH3 0x0300 // チャンネル1+3
|
||
#define SOUND_ROUT_MIXER 0x0000 // R側最終段出力 ミキサー
|
||
#define SOUND_ROUT_CH1 0x0400 // チャンネル1
|
||
#define SOUND_ROUT_CH3 0x0800 // チャンネル3
|
||
#define SOUND_ROUT_CH1_CH3 0x0C00 // チャンネル1+3
|
||
#define SOUND_CH1_MIXOFF 0x1000 // チャンネル1・ミックス OFF
|
||
#define SOUND_CH1_MIX 0x0000 // ON
|
||
#define SOUND_CH3_MIXOFF 0x2000 // チャンネル3・ミックス OFF
|
||
#define SOUND_CH3_MIX 0x0000 // ON
|
||
#define SOUND_MIC_MIXOFF 0x0000 // マイク・ミックス OFF
|
||
#define SOUND_MIC_MIX 0x4000 // ON
|
||
#define SOUND_ENABLE 0x8000 // イネーブル
|
||
|
||
|
||
//----------------------------------------------------------------------
|
||
// サウンドチャンネル コントロール
|
||
//----------------------------------------------------------------------
|
||
|
||
#define SOUND_CHAN_VOLUME_MASK 0x000000ff // 出力レベル
|
||
#define SOUND_SHIFT_MASK 0x00000300 // データシフト量
|
||
#define SOUND_PANPOT_MASK 0x00ff0000 // パンポット
|
||
#define SOUND_DUTY_MASK 0x07000000 // デューティ
|
||
#define SOUND_PEPEAT_TYPE_MASK 0x18000000 // リピート方法
|
||
#define SOUND_FORMAT_MASK 0x60000000 // フォーマット
|
||
|
||
#define SOUND_CHAN_VOLUME_SHIFT 0
|
||
#define SOUND_SHIFT_SHIFT 8
|
||
#define SOUND_PANPOT_SHIFT 16
|
||
#define SOUND_DUTY_SHIFT 24
|
||
#define SOUND_PEPEAT_TYPE_SHIFT 27
|
||
#define SOUND_FORMAT_SHIFT 29
|
||
|
||
#define SOUND_OUTPUT_HOLD 0x00008000 // ディセーブル時の出力保持
|
||
|
||
#define SOUND_DUTY_1_8 0x00000000 // デューティ 1/8
|
||
#define SOUND_DUTY_2_8 0x01000000 // 2/8
|
||
#define SOUND_DUTY_3_8 0x02000000 // 3/8
|
||
#define SOUND_DUTY_4_8 0x03000000 // 4/8
|
||
#define SOUND_DUTY_5_8 0x04000000 // 5/8
|
||
#define SOUND_DUTY_6_8 0x05000000 // 6/8
|
||
#define SOUND_DUTY_7_8 0x06000000 // 7/8
|
||
#define SOUND_DUTY_XX 0x07000000 // 設定禁止
|
||
|
||
#define SOUND_LINEAR 0x00000000 // リニア再生
|
||
#define SOUND_REPEAT 0x08000000 // リピート再生
|
||
#define SOUND_1SHOT 0x10000000 // 1ショット再生
|
||
|
||
#define SOUND_PCM8 0x00000000 // PCM8bit
|
||
#define SOUND_PCM16 0x20000000 // PCM16bit
|
||
#define SOUND_ADPCM 0x40000000 // ADPCM
|
||
#define SOUND_PSG_NOISE 0x60000000 // PSG(8~13)または ノイズ(14~15)
|
||
|
||
#define SOUND_CHAN_ENABLE 0x80000000 // イネーブル
|
||
|
||
// 構造体メンバ用定数
|
||
|
||
#define ST_SOUND_PCM8 0 // PCM8bit
|
||
#define ST_SOUND_PCM16 1 // PCM16bit
|
||
#define ST_SOUND_ADPCM 2 // ADPCM
|
||
#define ST_SOUND_PSG_NOISE 3 // PSG(8~13)または ノイズ(14~15)
|
||
|
||
#define ST_SOUND_DUTY_1_8 0 // デューティ 1/8
|
||
#define ST_SOUND_DUTY_2_8 1 // 2/8
|
||
#define ST_SOUND_DUTY_3_8 2 // 3/8
|
||
#define ST_SOUND_DUTY_4_8 3 // 4/8
|
||
#define ST_SOUND_DUTY_5_8 4 // 5/8
|
||
#define ST_SOUND_DUTY_6_8 5 // 6/8
|
||
#define ST_SOUND_DUTY_7_8 6 // 7/8
|
||
#define ST_SOUND_DUTY_XX 7 // 設定禁止
|
||
|
||
|
||
//----------------------------------------------------------------------
|
||
// サウンドキャプチャ コントロール
|
||
//----------------------------------------------------------------------
|
||
|
||
#define SNDCAP_PREMIXING_ON 0x01 // ミキサー前合成 ON
|
||
#define SNDCAP_SRC 0x02 // キャプチャ元選択
|
||
#define SNDCAP_MIXER 0x00 // ミキサー出力データをキャプチャ
|
||
#define SNDCAP_CHAN 0x02 // 単一チャンネルをキャプチャ
|
||
#define SNDCAP_REPEAT_OFF 0x04 // リピート OFF
|
||
#define SNDCAP_FORMAT 0x08 // キャプチャフォーマット
|
||
#define SNDCAP_PCM16 0x00 // 16bitPCM
|
||
#define SNDCAP_PCM8 0x08 // 8bitPCM
|
||
#define SNDCAP_ENABLE 0x80 // イネーブル
|
||
|
||
|
||
//----------------------------------------------------------------------
|
||
// SPIコントロール
|
||
//----------------------------------------------------------------------
|
||
|
||
#define SPI_SCK_MASK 0x0003 // シフトクロック
|
||
#ifdef IRIS_TS
|
||
#define SPI_TARGET_MASK 0x0300 // 通信ターゲット指定
|
||
#else
|
||
#define SPI_TARGET_MASK 0x2000
|
||
#endif
|
||
|
||
#define SPI_SCK_SHIFT 0
|
||
|
||
#define SPI_SCK_4M 0x0000 // シフトクロック 4MHz選択
|
||
#define SPI_SCK_2M 0x0001 // 2MHz
|
||
#define SPI_SCK_1M 0x0002 // 1MHz
|
||
#define SPI_SCK_524K 0x0003 // 524KHz
|
||
|
||
#define SPI_BUSY 0x0080 // ビジー
|
||
#define SPI_8BIT_MODE 0x0000 // 8ビットモード
|
||
#ifdef IRIS_TS
|
||
#define SPI_16BIT_MODE 0x0400 // 16ビットモード
|
||
#define SPI_CONTINUOUS_ON 0x0800 // コンティニュアスモード ON
|
||
#define SPI_TARGET_PMIC 0x0000 // PMIC選択
|
||
#define SPI_TARGET_FLASH 0x0100 // フラッシュメモリ選択
|
||
#define SPI_TARGET_TOUCHPANEL 0x0200 // タッチパネル選択
|
||
#else
|
||
#define SPI_CONTINUOUS_ON 0x1000 // コンティニュアスモード ON
|
||
#define SPI_TARGET_PMIC 0x0000 // PMIC選択
|
||
#define SPI_TARGET_FLASH 0x2000 // フラッシュメモリ選択
|
||
#endif
|
||
#define SPI_IF_ENABLE 0x4000 // 割り込み要求 許可
|
||
#define SPI_ENABLE 0x8000 // SPI許可
|
||
|
||
// 構造体メンバ用定数
|
||
|
||
#define ST_SPI_SCK_4M 0 // シフトクロック 4MHz選択
|
||
#define ST_SPI_SCK_2M 1 // 2MHz
|
||
#define ST_SPI_SCK_1M 2 // 1MHz
|
||
#define ST_SPI_SCK_524K 3 // 524KHz
|
||
|
||
#ifdef IRIS_TS
|
||
#define ST_SPI_TARGET_PMIC 0 // PMIC選択
|
||
#define ST_SPI_TARGET_FLASH 1 // フラッシュメモリ選択
|
||
#define ST_SPI_TARGET_TOUCHPANEL 2 // タッチパネル選択
|
||
#else
|
||
#define ST_SPI_TARGET_PMIC 0 // PMIC選択
|
||
#define ST_SPI_TARGET_FLASH 1 // フラッシュメモリ選択
|
||
#endif
|
||
|
||
|
||
//----------------------------------------------------------------------
|
||
// 汎用入出力コントロール
|
||
//----------------------------------------------------------------------
|
||
|
||
#define R_SIO_MODE_MASTER_MASK 0xc000 // SIOモード・マスタ
|
||
|
||
#define R_SIO_MODE_MASTER_SHIFT 14
|
||
|
||
#define R_SIO_MASTER_MODE 0x0000 // SIOマスタ・モード
|
||
#define R_DIRECT_MODE 0x8000 // 汎用入出力通信モード
|
||
|
||
#define R_SC 0x0001 // データ
|
||
#define R_SD 0x0002
|
||
#define R_SI 0x0004
|
||
#define R_SO 0x0008
|
||
#define R_SC_I_O 0x0010 // I/O選択
|
||
#define R_SD_I_O 0x0020
|
||
#define R_SI_I_O 0x0040
|
||
#define R_SO_I_O 0x0080
|
||
#define R_SC_IN 0x0000 // 入力設定
|
||
#define R_SD_IN 0x0000
|
||
#define R_SI_IN 0x0000
|
||
#define R_SO_IN 0x0000
|
||
#define R_SC_OUT 0x0010 // 出力設定
|
||
#define R_SD_OUT 0x0020
|
||
#define R_SI_OUT 0x0040
|
||
#define R_SO_OUT 0x0080
|
||
#define R_IF_ENABLE 0x0100 // 割り込み要求 許可
|
||
|
||
// 構造体メンバ用定数
|
||
|
||
#define ST_R_SIO_MASTER_MODE 0 // SIOマスタ・モード
|
||
#define ST_R_DIRECT_MODE 2 // 汎用入出力通信モード
|
||
|
||
#define ST_R_IN 0 // 入力選択
|
||
#define ST_R_OUT 1 // 出力選択
|
||
|
||
|
||
//----------------------------------------------------------------------
|
||
// DMAコントロール
|
||
//----------------------------------------------------------------------
|
||
|
||
#define DMA_TIMMING_MASK 0x30000000 // 開始タイミング
|
||
#define DMA_COUNT_MASK 0x0000ffff // 転送数
|
||
|
||
#define DMA_TIMMING_SHIFT 30
|
||
#define DMA_COUNT_SHIFT 0
|
||
|
||
#define DMA_ENABLE 0x80000000 // DMA許可
|
||
#define DMA_IF_ENABLE 0x40000000 // 割り込み要求 許可
|
||
#define DMA_TIMMING_IMM 0x00000000 // 直ちに起動
|
||
#define DMA_TIMMING_V_BLANK 0x10000000 // Vブランク起動
|
||
#define DMA_TIMMING_CARD 0x20000000 // カード
|
||
#define DMA_TIMMING_WIRELESS 0x30000000 // 無線通信
|
||
#define DMA_TIMMING_CARTRIDGE 0x30000000 // カートリッジ
|
||
#define DMA_16BIT_BUS 0x00000000 // バスサイズ16Bit選択
|
||
#define DMA_32BIT_BUS 0x04000000 // バスサイズ32Bit選択
|
||
#define DMA_CONTINUOUS_ON 0x02000000 // コンティニュアスモード ON
|
||
#define DMA_SRC_INC 0x00000000 // 転送元 インクリメント 選択
|
||
#define DMA_SRC_DEC 0x00800000 // 転送元 デクリメント 選択
|
||
#define DMA_SRC_FIX 0x01000000 // 転送元 固定 選択
|
||
#define DMA_DEST_INC 0x00000000 // 転送先 インクリメント 選択
|
||
#define DMA_DEST_DEC 0x00200000 // 転送先 デクリメント 選択
|
||
#define DMA_DEST_FIX 0x00400000 // 転送先 固定 選択
|
||
#define DMA_DEST_RELOAD 0x00600000 // 転送先 インクリメント/リロード 選択
|
||
|
||
// 構造体メンバ用定数
|
||
|
||
#define ST_DMA_TIMMING_IMM 0 // 直ちに起動
|
||
#define ST_DMA_TIMMING_V_BLANK 1 // Vブランク起動
|
||
#define ST_DMA_TIMMING_CARD 2 // カード
|
||
#define ST_DMA_TIMMING_CARTRIDGE 3 // カートリッジ
|
||
#define ST_DMA_16BIT_BUS 0 // バスサイズ16bit選択
|
||
#define ST_DMA_32BIT_BUS 1 // バスサイズ32bit選択
|
||
#define ST_DMA_INC 0 // アドレス・インクリメント 選択
|
||
#define ST_DMA_DEC 1 // アドレス・デクリメント 選択
|
||
#define ST_DMA_FIX 2 // アドレス固定 選択
|
||
#define ST_DMA_RELOAD 3 // アドレス・インクリメント/リロード 選択
|
||
|
||
|
||
//----------------------------------------------------------------------
|
||
// タイマー コントロール
|
||
//----------------------------------------------------------------------
|
||
|
||
#define TMR_PRESCALER_MASK 0x00030000 // プリスケーラ クロック
|
||
|
||
#define TMR_PRESCALER_SHIFT 16
|
||
|
||
#define TMR_PRESCALER_1CK 0x00000000 // プリスケーラ 1分周
|
||
#define TMR_PRESCALER_64CK 0x00010000 // 64分周
|
||
#define TMR_PRESCALER_256CK 0x00020000 // 256分周
|
||
#define TMR_PRESCALER_1024CK 0x00030000 // 1024分周
|
||
#define TMR_CONNECT 0x00040000 // 下位タイマー接続
|
||
#define TMR_IF_ENABLE 0x00400000 // 割り込み要求 許可
|
||
#define TMR_ENABLE 0x00800000 // タイマー起動
|
||
|
||
// 構造体メンバ用定数
|
||
|
||
#define ST_TMR_PRESCALER_1CK 0 // プリスケーラ 1分周
|
||
#define ST_TMR_PRESCALER_64CK 1 // 64分周
|
||
#define ST_TMR_PRESCALER_256CK 2 // 256分周
|
||
#define ST_TMR_PRESCALER_1024CK 3 // 1024分周
|
||
|
||
|
||
//----------------------------------------------------------------------
|
||
// キー
|
||
//----------------------------------------------------------------------
|
||
|
||
#define BUTTON_MASK 0x030f // ボタン
|
||
#define PLUS_KEY_MASK 0x00f0 // 十字キー
|
||
#define ALL_KEY_MASK 0x03ff // 全てのキー
|
||
|
||
#define A_BUTTON 0x0001 // Aボタン
|
||
#define B_BUTTON 0x0002 // Bボタン
|
||
#define SELECT_BUTTON 0x0004 // セレクトボタン
|
||
#define START_BUTTON 0x0008 // スタートボタン
|
||
#define R_KEY 0x0010 // 右ボタン
|
||
#define L_KEY 0x0020 // 左ボタン
|
||
#define U_KEY 0x0040 // 上ボタン
|
||
#define D_KEY 0x0080 // 下ボタン
|
||
#define R_BUTTON 0x0100 // Rボタン
|
||
#define L_BUTTON 0x0200 // Lボタン
|
||
#define KEY_IF_ENABLE 0x4000 // 割り込み要求 許可
|
||
#define KEY_OR_INTR 0x0000 // 通常キー割り込み
|
||
#define KEY_AND_INTR 0x8000 // ANDキー割り込み
|
||
|
||
// 構造体メンバ用定数
|
||
|
||
#define ST_KEY_OR_INTR 0 // 通常キー割り込み
|
||
#define ST_KEY_AND_INTR 1 // ANDキー割り込み
|
||
|
||
|
||
//----------------------------------------------------------------------
|
||
// 外部メモリ コントロール
|
||
//----------------------------------------------------------------------
|
||
|
||
#define CTRDG_DT8_10CYC 0x0000 // カートリッジ 8bitデータバス 10サイクル
|
||
#define CTRDG_DT8_8CYC 0x0001 // 8サイクル
|
||
#define CTRDG_DT8_6CYC 0x0002 // 6サイクル
|
||
#define CTRDG_DT8_18CYC 0x0003 // 18サイクル
|
||
#define CTRDG_AD16_1ST_10CYC 0x0000 // カートリッジ AD16バス 1st 10サイクル
|
||
#define CTRDG_AD16_1ST_8CYC 0x0004 // 8サイクル
|
||
#define CTRDG_AD16_1ST_6CYC 0x0008 // 6サイクル
|
||
#define CTRDG_AD16_1ST_18CYC 0x000c // 18サイクル
|
||
#define CTRDG_AD16_2ND_6CYC 0x0000 // 2nd 6サイクル
|
||
#define CTRDG_AD16_2ND_4CYC 0x0010 // 4サイクル
|
||
|
||
#define CTRDG_PHI_OUT_NONE 0x0000 // φ端子出力クロック Lo固定
|
||
#define CTRDG_PHI_OUT_4MCK 0x0020 // 4MHz
|
||
#define CTRDG_PHI_OUT_8MCK 0x0040 // 8MHz
|
||
#define CTRDG_PHI_OUT_16MCK 0x0060 // 16MHz
|
||
|
||
#define CTRDG_ACCESS 0x0080 // カートリッジアクセス権
|
||
#define CTRDG_ACCESS_MAINP 0x0000 // メインプロセッサ
|
||
#define CTRDG_ACCESS_SUBP 0x0080 // サブプロセッサ
|
||
|
||
#define CARD_ACCESS 0x0800 // カードアクセス権
|
||
#define CARD_ACCESS_MAINP 0x0000 // メインプロセッサ
|
||
#define CARD_ACCESS_SUBP 0x0800 // サブプロセッサ
|
||
|
||
#define MMEM_CE2_OUT 0x2000 // CE2信号確認
|
||
|
||
#define MMEM_INTF 0x4000 // メインメモリインタフェース(TEGでは常にセットして同期モードにする)
|
||
#define MMEM_INTF_ASYNC 0x0000 // 非同期モード
|
||
#define MMEM_INTF_SYNC 0x4000 // 同期モード
|
||
|
||
#define MMEM_PRIORITY 0x8000 // メインメモリ優先権
|
||
#define MMEM_PRIORITY_MAINP 0x0000 // メインプロセッサ
|
||
#define MMEM_PRIORITY_SUBP 0x8000 // サブプロセッサ
|
||
|
||
// 構造体メンバ用定数
|
||
|
||
#define ST_CTRDG_DT8_10CYC 0 // カートリッジ 8bitデータバス 10サイクル
|
||
#define ST_CTRDG_DT8_8CYC 1 // 8サイクル
|
||
#define ST_CTRDG_DT8_6CYC 2 // 6サイクル
|
||
#define ST_CTRDG_DT8_18CYC 3 // 18サイクル
|
||
#define ST_CTRDG_AD16_1ST_10CYC 0 // カートリッジ AD16バス 1st 10サイクル
|
||
#define ST_CTRDG_AD16_1ST_8CYC 1 // 8サイクル
|
||
#define ST_CTRDG_AD16_1ST_6CYC 2 // 6サイクル
|
||
#define ST_CTRDG_AD16_1ST_18CYC 3 // 18サイクル
|
||
#define ST_CTRDG_AD16_2ND_6CYC 0 // 2nd 6サイクル
|
||
#define ST_CTRDG_AD16_2ND_4CYC 1 // 4サイクル
|
||
|
||
#define ST_CTRDG_PHI_OUT_NONE 0 // φ端子出力クロック Lo固定
|
||
#define ST_CTRDG_PHI_OUT_4MCK 1 // 4MHz
|
||
#define ST_CTRDG_PHI_OUT_8MCK 2 // 8MHz
|
||
#define ST_CTRDG_PHI_OUT_16MCK 3 // 16MHz
|
||
|
||
|
||
#ifdef __cplusplus
|
||
} // extern "C"
|
||
#endif
|
||
|
||
#endif // _IRIS_SUBP_DEFINE_H
|