/************************************************************************/
/* CQBBEL GNU CC Common Control Software / (C) Toshio MURAI 2011, 2012	*/
/*      This is Free Software;   You can redistribute this software     */
/*      and/or modify it under the terms of the GNU General Public      */
/*      License version 3, or (at your option) any later version.       */
/************************************************************************/
/*	Only For CQBBEL		Not yet Completed			*/

struct str_bus{
	volatile unsigned short	BSC;	/* FFFFF066H バス・サイズ・コンフィギュレーション・レジスタBSC ○ 5555H*/
	volatile unsigned short NONE[3];/* 068-06D	*/
	volatile unsigned char	VSWC;	/* FFFFF06EH システム・ウエイト・コントロール・レジスタ VSWC ○ 77H	*/
};
#define	BUS		((struct str_bus *) 0xFFFFF066)	


//FFFFF9FEH 周辺エミュレーション・レジスタ1 PEMU1注 ○ ○ 00H
struct str_debug{
	volatile unsigned char OCDM;	
		///FFFFF9FCH オンチップ・デバッグ・モード・レジスタ OCDM ○ ○ 01H	->　0x00へ変更
};
#define	DEBUG	((struct str_debug *) 0xFFFFF9FC)

struct str_dl {
	//volatile unsigned short PDL;	//FFFFF004H  ポートDLレジスタ PDL
	volatile unsigned char PDLL;	//FFFFF004H  ポートDLレジスタL PDLL
	volatile unsigned char PDLH;	//FFFFF005H  ポートDLレジスタH PDLH
	volatile unsigned char	PDH;	//FFFFF006H  ポートDHレジスタ PDH
	volatile unsigned char	NN1;
	volatile unsigned short NONE;	//FFFFF008H
	volatile unsigned char PCT;	//FFFFF00AH  ポートCTレジスタ PCT   //PMCT//PMCCT
	volatile unsigned char	NN0;
	volatile unsigned char PCM;	//FFFFF00CH  ポートCMレジスタ PCM	//PMCM//PMCCM
};

#define	PORTDL		((struct str_dl *) 0xFFFFF004)	
	///ポートレジスタ
#define	PORTDLM		((struct str_dl *) 0xFFFFF024)	
	//ポートモード・レジスタ
#define	PORTDLMC	((struct str_dl *) 0xFFFFF044)	
	//ポートモード・コントロール・レジスタ

	//FFFFF066H バス・サイズ・コンフィギュレーション・レジスタBSC
	//FFFFF06EH システム・ウエイト・コントロール・レジスタ VSWC

struct str_dma {	
	volatile unsigned short DSAL;	//FFFFF080H DMAソース・アドレス・レジスタ0L DSA0L
	volatile unsigned short DSAH;	//FFFFF082H DMAソース・アドレス・レジスタ0H DSA0H
	volatile unsigned short DDAL;	//FFFFF084H DMAデスティネーション・アドレス・レジスタ0L DDA0L
	volatile unsigned short DDAH;	//FFFFF086H DMAデスティネーション・アドレス・レジスタ0H DDA0H
};
#define	DMA0	((struct str_dma *)0xFFFFF080)
#define	DMA1	((struct str_dma *)0xFFFFF088)
#define	DMA2	((struct str_dma *)0xFFFFF090)
#define	DMA3	((struct str_dma *)0xFFFFF098)


//	volatile unsigned short DBC0;	//FFFFF0C0H DMA転送カウント・レジスタ0 DBC0

//	volatile unsigned short DADC0;	//FFFFF0D0H DMAアドレシング・コントロール・レジスタ0 DADC0	R/W

//	volatile unsigned short DCHC0;	//FFFFF0E0H DMAチャネル・コントロール・レジスタ0 DCHC0
//	volatile unsigned short DCHC1;	//FFFFF0E2H DMAチャネル・コントロール・レジスタ1 DCHC1
//	volatile unsigned short DCHC2;	//FFFFF0E4H DMAチャネル・コントロール・レジスタ2 DCHC2
//	volatile unsigned short DCHC3;	//FFFFF0E6H DMAチャネル・コントロール・レジスタ3 DCHC3
#define	DBC		((struct str_dmac *)0xFFFFF0C0)
#define	DADC 	((struct str_dmac *)0xFFFFF0D0)
#define	DCHC	((struct str_dmac *)0xFFFFF0E0)

;
#define	IREQ	((struct str_ireq *) 0xFFFFF100)
struct str_ireq {
	volatile unsigned short IMR0;	//FFFFF100H  割り込みマスク・レジスタ0 IMR0
		//FFFFF100H 割り込みマスク・レジスタ0L IMR0L
		//FFFFF101H 割り込みマスク・レジスタ0H IMR0H
	volatile unsigned short	IMR1;	//FFFFF102H  割り込みマスク・レジスタ1 IMR1
		//FFFFF102H 割り込みマスク・レジスタ1L IMR1L
		//FFFFF103H 割り込みマスク・レジスタ1H IMR1H
	volatile unsigned short IMR2;	//FFFFF104H  割り込みマスク・レジスタ2 IMR2
		//FFFFF104H 割り込みマスク・レジスタ2L IMR2L
		//FFFFF105H 割り込みマスク・レジスタ2H IMR2H
	volatile unsigned short IMR3;	//FFFFF106H  割り込みマスク・レジスタ3 IMR3
		//FFFFF106H 割り込みマスク・レジスタ3L IMR3L
		//FFFFF107H 割り込みマスク・レジスタ3H IMR3H
	volatile unsigned short	NONE[4];
	volatile unsigned short LVIIC;	//FFFFF110H  割り込み制御レジスタ LVIIC
	volatile unsigned char PIC0;	//FFFFF112H  割り込み制御レジスタ PIC0
	volatile unsigned char NPIC0;	
	volatile unsigned char PIC1;	//FFFFF114H  割り込み制御レジスタ PIC1
	volatile unsigned char NPIC1;
	volatile unsigned char PIC2;	//FFFFF116H  割り込み制御レジスタ PIC2
	volatile unsigned char NPIC2;	
	volatile unsigned char PIC3;	//FFFFF118H  割り込み制御レジスタ PIC3
	volatile unsigned char NPIC3;	
	volatile unsigned short PIC4;	//FFFFF11AH  割り込み制御レジスタ PIC4
	volatile unsigned short PIC5;	//FFFFF11CH  割り込み制御レジスタ PIC5
	volatile unsigned short PIC6;	//FFFFF11EH  割り込み制御レジスタ PIC6
	volatile unsigned short PIC7;	//FFFFF120H  割り込み制御レジスタ PIC7
	volatile unsigned short TQ0OVIC;	//FFFFF122H  割り込み制御レジスタ TQ0OVIC
	volatile unsigned short TQ0CCIC0;	//FFFFF124H  割り込み制御レジスタ TQ0CCIC0
	volatile unsigned short TQ0CCIC1;	//FFFFF126H  割り込み制御レジスタ TQ0CCIC1
	volatile unsigned short TQ0CCIC2;	//FFFFF128H  割り込み制御レジスタ TQ0CCIC2
	volatile unsigned short TQ0CCIC3;	//FFFFF12AH  割り込み制御レジスタ TQ0CCIC3
	volatile unsigned short TP0OVIC;	//FFFFF12CH  割り込み制御レジスタ TP0OVIC
	volatile unsigned short TP0CCIC0;	//FFFFF12EH  割り込み制御レジスタ TP0CCIC0
	volatile unsigned short TP0CCIC1;	//FFFFF130H  割り込み制御レジスタ TP0CCIC1
	volatile unsigned short TP1OVIC;	//FFFFF132H  割り込み制御レジスタ TP1OVIC
	volatile unsigned char TP1CCIC0;	//FFFFF134H  割り込み制御レジスタ TP1CCIC0
	volatile unsigned char	NON135;
	volatile unsigned short TP1CCIC1;	//FFFFF136H  割り込み制御レジスタ TP1CCIC1
	volatile unsigned short TP2OVIC;	//FFFFF138H  割り込み制御レジスタ TP2OVIC
	volatile unsigned short TP2CCIC0;	//FFFFF13AH  割り込み制御レジスタ TP2CCIC0
	volatile unsigned short TP2CCIC1;	//FFFFF13CH  割り込み制御レジスタ TP2CCIC1
	volatile unsigned short TP3OVIC;	//FFFFF13EH  割り込み制御レジスタ TP3OVIC
	volatile unsigned short TP3CCIC0;	//FFFFF140H  割り込み制御レジスタ TP3CCIC0
	volatile unsigned short TP3CCIC1;	//FFFFF142H  割り込み制御レジスタ TP3CCIC1
	volatile unsigned short TP4OVIC;	//FFFFF144H  割り込み制御レジスタ TP4OVIC
	volatile unsigned short TP4CCIC0;	//FFFFF146H  割り込み制御レジスタ TP4CCIC0
	volatile unsigned short TP4CCIC1;	//FFFFF148H  割り込み制御レジスタ TP4CCIC1
	volatile unsigned short TP5OVIC;	//FFFFF14AH  割り込み制御レジスタ TP5OVIC
	volatile unsigned short TP5CCIC0;	//FFFFF14CH  割り込み制御レジスタ TP5CCIC0
	volatile unsigned short TP5CCIC1;	//FFFFF14EH  割り込み制御レジスタ TP5CCIC1
	volatile unsigned short TM0EQIC0;	//FFFFF150H  割り込み制御レジスタ TM0EQIC0
	volatile unsigned short CB0RIC;	//FFFFF152H  割り込み制御レジスタ CB0RIC/IICIC1
	volatile unsigned short CB0TIC;	//FFFFF154H  割り込み制御レジスタ CB0TIC
	volatile unsigned short CB1RIC;	//FFFFF156H  割り込み制御レジスタ CB1RIC
	volatile unsigned short CB1TIC;	//FFFFF158H  割り込み制御レジスタ CB1TIC
	volatile unsigned short CB2RIC;	//FFFFF15AH  割り込み制御レジスタ CB2RIC
	volatile unsigned short CB2TIC;	//FFFFF15CH  割り込み制御レジスタ CB2TIC
	volatile unsigned short CB3RIC;	//FFFFF15EH  割り込み制御レジスタ CB3RIC
	volatile unsigned short CB3TIC;	//FFFFF160H  割り込み制御レジスタ CB3TIC
	volatile unsigned short UA0RIC;	//FFFFF162H  割り込み制御レジスタ UA0RIC/CB4RIC
	volatile unsigned short UA0TIC;	//FFFFF164H  割り込み制御レジスタ UA0TIC/CB4TIC
	volatile unsigned short UA1RIC;	//FFFFF166H  割り込み制御レジスタ UA1RIC/IICIC2
	volatile unsigned short UA1TIC;	//FFFFF168H  割り込み制御レジスタ UA1TIC
	volatile unsigned short UA2RIC;	//FFFFF16AH  割り込み制御レジスタ UA2RIC/IICIC0
	volatile unsigned short UA2TIC;	//FFFFF16CH  割り込み制御レジスタ UA2TIC
	volatile unsigned short ADIC;	//FFFFF16EH  割り込み制御レジスタ ADIC
	volatile unsigned short DMAIC0;	//FFFFF170H  割り込み制御レジスタ DMAIC0
	volatile unsigned short DMAIC1;	//FFFFF172H  割り込み制御レジスタ DMAIC1
	volatile unsigned short DMAIC2;	//FFFFF174H  割り込み制御レジスタ DMAIC2
	volatile unsigned short DMAIC3;	//FFFFF176H  割り込み制御レジスタ DMAIC3
	volatile unsigned short KRIC;	//FFFFF178H  割り込み制御レジスタ KRIC
	volatile unsigned short WTIIC;	//FFFFF17AH  割り込み制御レジスタ WTIIC
	volatile unsigned short WTIC;	//FFFFF17CH  割り込み制御レジスタ WTIC
};


struct str_system {
	volatile unsigned char ISPR;	//FFFFF1FAH インサービス・プライオリティ・レジスタ ISPR
	volatile unsigned char	N0;
	volatile unsigned char PRCMD;	//FFFFF1FCH コマンド・レジスタ PRCMD W
	volatile unsigned char	N1;
	volatile unsigned char PSC;	//FFFFF1FEH パワー・セーブ・コントロール・レジスタ PSC
};
#define	SYSTEM	((struct str_system *)0xFFFFF1FA)

#define	ADC	((struct str_adc *)0xFFFFF200)
struct str_adc {
		volatile unsigned char ADA0M0;//FFFFF200H A/Dコンバータ・モード・レジスタ0 ADA0M0
		volatile unsigned char ADA0M1;//FFFFF201H A/Dコンバータ・モード・レジスタ1 ADA0M1
		volatile unsigned char ADA0S;//FFFFF202H A/Dコンバータ・チャネル指定レジスタ ADA0S
		volatile unsigned char ADA0M2;//FFFFF203H A/Dコンバータ・モード・レジスタ2 ADA0M2
		volatile unsigned char ADA0PFM;//FFFFF204H パワー・フェイル比較モード・レジスタ ADA0PFM
		volatile unsigned char ADA0PFT;//FFFFF205H パワー・フェイル比較しきい値レジスタ ADA0PFT
};
#define ADD ((struct str_add *)0xFFFFF210)
struct str_add {
		volatile unsigned short ADA0CR0;//FFFFF210H A/D変換結果レジスタ0 ADA0CR0
		//FFFFF211H A/D変換結果レジスタ0Ｈ ADA0CR0H
		volatile unsigned short ADA0CR1;//FFFFF212H A/D変換結果レジスタ1 ADA0CR1
		//FFFFF213H A/D変換結果レジスタ1Ｈ ADA0CR1H
		volatile unsigned short ADA0CR2;//FFFFF214H A/D変換結果レジスタ2 ADA0CR2
		//FFFFF215H A/D変換結果レジスタ2Ｈ ADA0CR2H
		volatile unsigned short ADA0CR3;//FFFFF216H A/D変換結果レジスタ3 ADA0CR3
		//FFFFF217H A/D変換結果レジスタ3Ｈ ADA0CR3H
		volatile unsigned short ADA0CR4;//FFFFF218H A/D変換結果レジスタ4 ADA0CR4
		//FFFFF219H A/D変換結果レジスタ4Ｈ ADA0CR4H
		volatile unsigned short ADA0CR5;//FFFFF21AH A/D変換結果レジスタ5 ADA0CR5
		//FFFFF21BH A/D変換結果レジスタ5Ｈ ADA0CR5H
		volatile unsigned short ADA0CR6;//FFFFF21CH A/D変換結果レジスタ6 ADA0CR6
		//FFFFF21DH A/D変換結果レジスタ6Ｈ ADA0CR6H
		volatile unsigned short ADA0CR7;//FFFFF21EH A/D変換結果レジスタ7 ADA0CR7
		//FFFFF21FH A/D変換結果レジスタ7Ｈ ADA0CR7H
		volatile unsigned short ADA0CR8;//FFFFF220H A/D変換結果レジスタ8 ADA0CR8
		//FFFFF221H A/D変換結果レジスタ8Ｈ ADA0CR8H
		volatile unsigned short ADA0CR9;//FFFFF222H A/D変換結果レジスタ9 ADA0CR9
		//FFFFF223H A/D変換結果レジスタ9Ｈ ADA0CR9H
		volatile unsigned short ADA0CR10;//FFFFF224H A/D変換結果レジスタ10 ADA0CR10
		//FFFFF225H A/D変換結果レジスタ10Ｈ ADA0CR10H
		volatile unsigned short ADA0CR11;//FFFFF226H A/D変換結果レジスタ11 ADA0CR11
		//FFFFF227H A/D変換結果レジスタ11Ｈ ADA0CR11H
};		


		//FFFFF280H D/A変換値設定レジスタ0 DA0CS0
		//FFFFF281H D/A変換値設定レジスタ1 DA0CS1
		//FFFFF282H D/Aコンバータ・モード・レジスタ DA0M

		//FFFFF300H キー・リターン・モード・レジスタ KRM
		//FFFFF308H セレクタ動作制御レジスタ0 SELCNT0
		//FFFFF318H ノイズ除去制御レジスタ NFC
		//FFFFF320H プリスケーラ・モード・レジスタ1 PRSM1
		//FFFFF321H プリスケーラ・コンペア・レジスタ1 PRSCM1
		//FFFFF324H プリスケーラ・モード・レジスタ2 PRSM2
		//FFFFF325H プリスケーラ・コンペア・レジスタ2 PRSCM2
		//FFFFF328H プリスケーラ・モード・レジスタ3 PRSM3
		//FFFFF329H プリスケーラ・コンペア・レジスタ3 PRSCM3
		//FFFFF340H IIC分周クロック選択レジスタ0 OCKS0
		//FFFFF344H IIC分周クロック選択レジスタ1 OCKS1


struct str_port {
	volatile unsigned char	P0;	//FFFFF400H ポート0レジスタ P0
	volatile unsigned char	N0;
	volatile unsigned char	P1;	//FFFFF402H ポート1レジスタ P1
	volatile unsigned char	N1;
	volatile unsigned short NP2;	//FFFFF404H
	volatile unsigned short P3;	//FFFFF406H ポート3レジスタ P3
		//volatile unsigned char P3L;	//FFFFF406H ポート3レジスタL P3L
		//volatile unsigned char P3H;	//FFFFF407H ポート3レジスタH P3H
	volatile unsigned char	P4;	//FFFFF408H ポート4レジスタ P4
	volatile unsigned char	N4;
	volatile unsigned char	P5;	//FFFFF40AH ポート5レジスタ P5
	volatile unsigned char	N5;
	volatile unsigned short NP6;	//FFFFF40CH
	volatile unsigned char P7L;	//FFFFF40EH ポート7レジスタL P7L
	volatile unsigned char P7H;	//FFFFF40FH ポート7レジスタH P7H
	volatile unsigned short NP8;	//FFFFF410H
	//volatile unsigned short P9;	//FFFFF412H ポート9レジスタ P9
	volatile unsigned char P9L;	//FFFFF412H ポート9レジスタL P9L
	volatile unsigned char P9H;	//FFFFF413H ポート9レジスタH P9H
};
#define	PORT	((struct str_port *)0xFFFFF400)
		//FFFFF420H ポート0モード・レジスタ PM0
#define	PORTM	((struct str_port *)0xFFFFF420)
		//FFFFF440H ポート0モード・コントロール・レジスタ PMC0
#define	PORTMC	((struct str_port *)0xFFFFF440)
		//FFFFF460H ポート0ファンクション・コントロール・レジスタ PFC0
#define	PORTFC	((struct str_port *)0xFFFFF460)


		//FFFFFC60H ポート0ファンクション・レジスタ PF0
#define	PORTPF		((struct str_port *)0xFFFFFC60)
		//FFFFFC66H ポート3ファンクション・レジスタ PF3
		//FFFFFC73H ポート9ファンクション・レジスタＨ PF9H
#define	PORTPFCE	((struct str_port *)0xFFFFF700)
		//FFFFF706H ポート3ファンクション・コントロール拡張レジスタL PFCE3L
		//FFFFF713H ポート9ファンクション・コントロール拡張レジスタH PFCE9H
#define	PORTINTF	((struct str_port *)0xFFFFFC00)
		//FFFFFC00H 外部割り込み立ち下がりエッジ指定レジスタ0 INTF0
		//FFFFFC06H 外部割り込み立ち下がりエッジ指定レジスタ3 INTF3
		//FFFFFC13H 外部割り込み立ち下がりエッジ指定レジスタ9H INTF9H
#define	PORTINTR	((struct str_port *)0xFFFFFC20)		
		//FFFFFC20H 外部割り込み立ち上がりエッジ指定レジスタ0 INTR0
		//FFFFFC26H 外部割り込み立ち上がりエッジ指定レジスタ3 INTR3
		//FFFFFC33H 外部割り込み立ち上がりエッジ指定レジスタ9H INTR9H




struct str_data {
		//FFFFF484H データ・ウエイト・コントロール・レジスタ0 DWC0
		//FFFFF488H アドレス・ウエイト・コントロール・レジスタ AWC
		//FFFFF48AH バス・サイクル・コントロール・レジスタ BCC
		//FFFFF540H TMQ0制御レジスタ0 TQ0CTL0
		//FFFFF541H TMQ0制御レジスタ1 TQ0CTL1
		//FFFFF542H TMQ0I/O制御レジスタ0 TQ0IOC0
		//FFFFF543H TMQ0I/O制御レジスタ1 TQ0IOC1
		//FFFFF544H TMQ0I/O制御レジスタ2 TQ0IOC2
		//FFFFF545H TMQ0オプション・レジスタ0 TQ0OPT0
		//FFFFF546H TMQ0キャプチャ／コンペア・レジスタ0 TQ0CCR0
		//FFFFF548H TMQ0キャプチャ／コンペア・レジスタ1 TQ0CCR1
		//FFFFF54AH TMQ0キャプチャ／コンペア・レジスタ2 TQ0CCR2
		//FFFFF54CH TMQ0キャプチャ／コンペア・レジスタ3 TQ0CCR3
		//FFFFF54EH TMQ0カウンタ・リード・バッファ・レジスタ TQ0CNT
};

struct str_tmp {
	volatile unsigned char	CTL0;	//FFFFF590H TMP0制御レジスタ0 TP0CTL0
	volatile unsigned char	CTL1;	//FFFFF591H TMP0制御レジスタ1 TP0CTL1
	volatile unsigned char	IOC0;	//FFFFF592H TMP0I/O制御レジスタ0 TP0IOC0
	volatile unsigned char	IOC1;	//FFFFF593H TMP0I/O制御レジスタ1 TP0IOC1
	volatile unsigned char	IOC2;	//FFFFF594H TMP0I/O制御レジスタ2 TP0IOC2
	volatile unsigned char	PT0;	//FFFFF595H TMP0オプション・レジスタ0 TP0OPT0
	volatile unsigned short	CCR0;	//FFFFF596H TMP0キャプチャ／コンペア・レジスタ0 TP0CCR0
	volatile unsigned short	CCR1;	//FFFFF598H TMP0キャプチャ／コンペア・レジスタ1 TP0CCR1
	volatile unsigned short	CNT;	//FFFFF59AH TMP0カウンタ・リード・バッファ・レジスタ TP0CNT
	volatile unsigned short NONE[2];
};
#define	TMP0	((struct str_tmp *)0xFFFFF590)
#define	TMP1	((struct str_tmp *)0xFFFFF5A0)
#define	TMP2	((struct str_tmp *)0xFFFFF5B0)
#define	TMP3	((struct str_tmp *)0xFFFFF5C0)
#define	TMP4	((struct str_tmp *)0xFFFFF5D0)
#define	TMP5	((struct str_tmp *)0xFFFFF5E0)

struct str_watch {
	volatile unsigned char	WDTM2;
		//FFFFF6D0H ウォッチドッグ・タイマ・モード・レジスタ2 WDTM2 ○ 67H	->0x00　禁止へ
	volatile unsigned char	WDTE;
		//FFFFF6D1H ウォッチドッグ・タイマ・イネーブル・レジスタWDTE ○ 9AH　アクセス不要
};
#define	WATCHDOC ((struct str_watch *)0xFFFFF6D0)

struct str_timer {
		//FFFFF680H 時計タイマ動作モード・レジスタ WTM
		//FFFFF690H TMM0制御レジスタ0 TM0CTL0
		//FFFFF694H TMM0コンペア・レジスタ0 TM0CMP0
		//FFFFF6C0H 発振安定時間選択レジスタ OSTS
		//FFFFF6C1H PLLロックアップ時間指定レジスタ PLLS

		//FFFFF6D0H ウォッチドッグ・タイマ・モード・レジスタ2 WDTM2
		//FFFFF6D1H ウォッチドッグ・タイマ・イネーブル・レジスタWDTE

		//FFFFF6E0H リアルタイム出力バッファ・レジスタ0Ｌ RTBL0
		//FFFFF6E2H リアルタイム出力バッファ・レジスタ0Ｈ RTBH0
		//FFFFF6E4H リアルタイム出力ポート・モード・レジスタ0 RTPM0
		//FFFFF6E5H リアルタイム出力ポート・コントロール・レジスタ0 RTPC0
	

		
		//FFFFF802H システム・ステータス・レジスタ SYS


		//FFFFF80CH 内蔵発振モード・レジスタ RCM
		//FFFFF810H DMAトリガ要因レジスタ0 DTFR0
		//FFFFF812H DMAトリガ要因レジスタ1 DTFR1
		//FFFFF814H DMAトリガ要因レジスタ2 DTFR2
		//FFFFF816H DMAトリガ要因レジスタ3 DTFR3
};


struct str_clock {
	volatile unsigned char	PSMR;	//FFFFF820H パワー・セーブ・モード・レジスタ PSMR
	volatile unsigned char	NO0;
	volatile unsigned char CKC;	//FFFFF822H クロック・コントロール・レジスタ CKC
	volatile unsigned char	NO1;
	volatile unsigned char LOCKR;	//FFFFF824H ロック・レジスタ LOCKR
	volatile unsigned char	NO2;
	volatile unsigned short	NONE0;	//FFFFF826H
	volatile unsigned char PCC;	//FFFFF828H プロセッサ・クロック・コントロール・レジスタPCC
	volatile unsigned char	NO3;
	volatile unsigned short	NONE1;	//FFFFF82AH
	volatile unsigned char PLLCTL;	//FFFFF82CH PLLコントロール・レジスタ PLLCTL
	volatile unsigned char	NO4;
	volatile unsigned char PSC;	//FFFFF82EH CPU動作クロック・ステータス・レジスタ CCLS
	volatile unsigned char	NO5;
};
#define CLOCK	((struct str_clock *) 0xFFFFF820)

struct str_system2 {

		//FFFFF870H クロック・モニタ・モード・レジスタ CLM
		//FFFFF888H リセット要因フラグ・レジスタ RESF
		//FFFFF890H 低電圧検出レジスタ LVIM
		//FFFFF891H 低電圧検出レベル選択レジスタ LVIS
		//FFFFF892H 内蔵RAMデータ・ステータス・レジスタ RAMS
		//FFFFF8B0H プリスケーラ・モード・レジスタ0 PRSM0
		//FFFFF8B1H プリスケーラ・コンペア・レジスタ0 PRSCM0
		//FFFFF9FCH オンチップ・デバッグ・モード・レジスタ OCDM
		//FFFFF9FEH 周辺エミュレーション・レジスタ1 PEMU1注
};
struct str_uart {
		volatile unsigned char CTL0;//FFFFFA00H UARTA0制御レジスタ0 UA0CTL0
		volatile unsigned char CTL1;//FFFFFA01H UARTA0制御レジスタ1 UA0CTL1
		volatile unsigned char CTL2;//FFFFFA02H UARTA0制御レジスタ2 UA0CTL2
		volatile unsigned char PT0;//FFFFFA03H UARTA0オプション制御レジスタ0 UA0OPT0
		volatile unsigned char STR;//FFFFFA04H UARTA0状態レジスタ UA0STR
		volatile unsigned char RX;//FFFFFA06H UARTA0受信データ・レジスタ UA0RX
		volatile unsigned char TX;//FFFFFA07H UARTA0送信データ・レジスタ UA0TX
};
		//FFFFFA10H UARTA1制御レジスタ0 UA1CTL0
		//FFFFFA20H UARTA2制御レジスタ0 UA2CTL0
#define	UART0	((struct str_uart *)0xFFFFFA00)
#define	UART1	((struct str_uart *)0xFFFFFA10)
#define	UART2	((struct str_uart *)0xFFFFFA20)

struct str_csib {
		//FFFFFD00H CSIB0制御レジスタ0 CB0CTL0
		//FFFFFD01H CSIB0制御レジスタ1 CB0CTL1
		//FFFFFD02H CSIB0制御レジスタ2 CB0CTL2
		//FFFFFD03H CSIB0状態レジスタ CB0STR
		//FFFFFD04H CSIB0受信データ・レジスタ CB0RX
		//FFFFFD04H CSIB0受信データ・レジスタL CB0RXL
		//FFFFFD06H CSIB0送信データ・レジスタ CB0TX
		//FFFFFD06H CSIB0送信データ・レジスタL CB0TXL
		//FFFFFD10H CSIB1制御レジスタ0 CB1CTL0
		//FFFFFD11H CSIB1制御レジスタ1 CB1CTL1
		//FFFFFD12H CSIB1制御レジスタ2 CB1CTL2
		//FFFFFD13H CSIB1状態レジスタ CB1STR
		//FFFFFD14H CSIB1受信データ・レジスタ CB1RX
		//FFFFFD14H CSIB1受信データ・レジスタL CB1RXL
		//FFFFFD16H CSIB1送信データ・レジスタ CB1TX
		//FFFFFD16H CSIB1送信データ・レジスタL CB1TXL
		//FFFFFD20H CSIB2制御レジスタ0 CB2CTL0
		//FFFFFD21H CSIB2制御レジスタ1 CB2CTL1
		//FFFFFD22H CSIB2制御レジスタ2 CB2CTL2
		//FFFFFD23H CSIB2状態レジスタ CB2STR
		//FFFFFD24H CSIB2受信データ・レジスタ CB2RX
		//FFFFFD24H CSIB2受信データ・レジスタL CB2RXL
		//FFFFFD26H CSIB2送信データ・レジスタ CB2TX
		//FFFFFD26H CSIB2送信データ・レジスタL CB2TXL
		//FFFFFD30H CSIB3制御レジスタ0 CB3CTL0
		//FFFFFD31H CSIB3制御レジスタ1 CB3CTL1
		//FFFFFD32H CSIB3制御レジスタ2 CB3CTL2
		//FFFFFD33H CSIB3状態レジスタ CB3STR
		//FFFFFD34H CSIB3受信データ・レジスタ CB3RX
		//FFFFFD34H CSIB3受信データ・レジスタL CB3RXL
		//FFFFFD36H CSIB3送信データ・レジスタ CB3TX
		//FFFFFD36H CSIB3送信データ・レジスタL CB3TXL
		//FFFFFD40H CSIB4制御レジスタ0 CB4CTL0
		//FFFFFD41H CSIB4制御レジスタ1 CB4CTL1
		//FFFFFD42H CSIB4制御レジスタ2 CB4CTL2
		//FFFFFD43H CSIB4状態レジスタ CB4STR
		//FFFFFD44H CSIB4受信データ・レジスタ CB4RX
		//FFFFFD44H CSIB4受信データ・レジスタL CB4RXL
		//FFFFFD46H CSIB4送信データ・レジスタ CB4TX
		//FFFFFD46H CSIB4送信データ・レジスタL CB4TXL
		//FFFFFD80H IICシフト・レジスタ0 IIC0
		//FFFFFD82H IICコントロール・レジスタ0 IICC0
		//FFFFFD83H スレーブ・アドレス・レジスタ0 SVA0
		//FFFFFD84H IICクロック選択レジスタ0 IICCL0
		//FFFFFD85H IIC機能拡張レジスタ0 IICX0
		//FFFFFD86H IIC状態レジスタ0 IICS0
		//FFFFFD8AH IICフラグ・レジスタ0 IICF0
		//FFFFFD90H IICシフト・レジスタ1 IIC
		//FFFFFD92H IICコントロール・レジスタ1 IICC1
		//FFFFFD93H スレーブ・アドレス・レジスタ1 SVA1
		//FFFFFD94H IICクロック選択レジスタ1 IICCL1
		//FFFFFD95H IIC機能拡張レジスタ1 IICX1
		//FFFFFD96H IIC状態レジスタ1 IICS1
		//FFFFFD9AH IICフラグ・レジスタ1 IICF1
		//FFFFFDA0H IICシフト・レジスタ2 IIC2
		//FFFFFDA2H IICコントロール・レジスタ2 IICC2
		//FFFFFDA3H スレーブ・アドレス・レジスタ2 SVA2
		//FFFFFDA4H IICクロック選択レジスタ2 IICCL2
		//FFFFFDA5H IIC機能拡張レジスタ2 IICX2
		//FFFFFDA6H IIC状態レジスタ2 IICS2
		//FFFFFDAAH IICフラグ・レジスタ2 IICF2
		//FFFFFFBEH 外部バス・インタフェース・モード・コントロール・レジスタEXIMC
};


//UART0関連制御レジスタ
//#define UA0CTL0 *((volatile unsigned char *)0xFFFFFA00)
//#define UA0CTL1 *((volatile unsigned char *)0xFFFFFA01)
//#define UA0CTL2 *((volatile unsigned char *)0xFFFFFA02)
//#define UA0TX *((volatile unsigned char *)0xFFFFFA07)
//#define UA0RX *((volatile unsigned char *)0xFFFFFA06)
//#define UA0RIC *((volatile unsigned char *)0xFFFFF162)
//#define UA0TIC *((volatile unsigned char *)0xFFFFF164)

