X68k/IOMAP: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
{{subpage|game=Sharp X68000}}
{{subpage|game=Sharp X68000}}
<nowiki> - I/O MAP MANUAL -
<pre> - I/O MAP MANUAL -


==============================================================================
==============================================================================
Line 3,909: Line 3,909:


==============================================================================
==============================================================================
</nowiki>
</pre>

Revision as of 06:23, 5 June 2016

This is a sub-page of X68k.

	- I/O MAP MANUAL -

==============================================================================

・例外ベクタ(メーカー予約:$00~3f)

address	vector
$000000	  $00	リセット後の SSP
$000004	  $01	〃	     PC
$000008	  $02	バスエラー
$00000c	  $03	アドレスエラー
$000010	  $04	不当命令
$000014	  $05	0 による除算
$000018	  $06	CHK 命令
$00001c	  $07	TRAPV 命令 , FTRAPcc 命令
$000020	  $08	特権違反
$000024	  $09	トレース例外処理
$000028	  $0a	未実装命令 line 1010 emulator (SX コール)
$00002c	  $0b	〃	   line 1111 emulator (DOS コール,浮動小数点演算)
$000030	  $0c	未使用
$000034	  $0d	FPU プロトコルバイオレーション例外処理
$000038	  $0e	〃  フォーマットエラー例外処理
$00003c	  $0f	未初期化割り込み
$000040	  $10	未使用
$000044	  $11	〃
$000048	  $12	〃
$00004c	  $13	〃
$000050	  $14	〃
$000054	  $15	〃
$000058	  $16	〃
$00005c	  $17	〃
$000060	  $18	スプリアス割り込み
$000064	  $19	レベル  1 割り込み(オートベクタ時)
$000068	  $1a	〃	2 〃
$00006c	  $1b	〃	3 〃
$000070	  $1c	〃	4 〃
$000074	  $1d	〃	5 〃
$000078	  $1e	〃	6 〃
$00007c	  $1f	〃	7 〃(NMI)
$000080	  $20	trap #0
$000084	  $21	〃   #1
$000088	  $22	〃   #2
$00008c	  $23	〃   #3
$000090	  $24	〃   #4
$000094	  $25	〃   #5
$000098	  $26	〃   #6
$00009c	  $27	〃   #7
$0000a0	  $28	〃   #8  (システム予約)
$0000a4	  $29	〃   #9  (OS デバッガ用)
$0000a8	  $2a	〃   #10 (リセット/電原オフ処理)
$0000ac	  $2b	〃   #11 (BREAK キー処理)
$0000b0	  $2c	〃   #12 (COPY キー処理)
$0000b4	  $2d	〃   #13 (CTRL+C 処理)
$0000b8	  $2e	〃   #14 (エラー処理)
$0000bc	  $2f	〃   #15 (IOCS コール)
$0000c0	  $30	FPU BSUN	(Branch/Set on Unordered) 例外処理
$0000c4	  $31	〃  INEX1,INEX2	(Inexact Decimal Input,Inexact Operation)
$0000c8	  $32	〃  DZ		(Divide by Zero)
$0000cc	  $33	〃  UNFL	(Underflow)
$0000d0	  $34	〃  OPERR	(Operand Error)
$0000d4	  $35	〃  OVFL	(Overflow)
$0000d8	  $36	〃  SNAN	(Signalling Not A Number)
$0000dc	  $37	未使用
$0000e0	  $38	MMU
$0000e4	  $39	〃
$0000e8	  $3a	〃
$0000ec	  $3b	未使用
 …	   …	…
$0000fc	  $3f	未使用

・例外ベクタ(ユーザ割り込み:$40~$ff)

address	vector
$000100	  $40	MFP	RTCアラーム/1Hz
$000104	  $41	MFP	外部パワー OFF
$000108	  $42	MFP	フロントスイッチ OFF
$00010c	  $43	MFP	FM 音源
$000110	  $44	MFP	Timer-D (BG 処理で使用)
$000114	  $45	MFP	Timer-C (マウス/カーソル/FDD 制御等)
$000118	  $46	MFP	V-DISP
$00011c	  $47	MFP	RTC クロック
$000120	  $48	MFP	Timer-B
$000124	  $49	MFP	キーシリアル出力エラー
$000128	  $4a	MFP	キーシリアル出力空
$00012c	  $4b	MFP	キーシリアル入力エラー
$000130	  $4c	MFP	キーシリアル入力あり
$000134	  $4d	MFP	Timer-A
$000138	  $4e	MFP	CRTC・IRQ
$00013c	  $4f	MFP	H-SYNC
$000140	  $50	SCC(B)	送信バッファ空
$000144	  $51	SCC(B)	〃
$000148	  $52	SCC(B)	外部/ステータス変化
$00014c	  $53	SCC(B)	〃
$000150	  $54	SCC(B)	受信キャラクタ有効(マウス 1 バイト入力)
$000154	  $55	SCC(B)	〃
$000158	  $56	SCC(B)	スペシャル Rx コンディション
$00015c	  $57	SCC(B)	〃
$000160	  $58	SCC(A)	送信バッファ空
$000164	  $59	SCC(A)	〃
$000168	  $5a	SCC(A)	外部ステータス変化
$00016c	  $5b	SCC(A)	〃
$000170	  $5c	SCC(A)	受信キャラクタ有効(RS-232C 1 バイト入力)
$000174	  $5d	SCC(A)	〃
$000178	  $5e	SCC(A)	スペシャル Rx コンディション
$00017c	  $5f	SCC(A)	〃
$000180	  $60	I/O	FDC ステータス割り込み
$000184	  $61	I/O	FDC 挿入/排出割り込み
$000188	  $62	I/O	HDC ステータス割り込み
$00018c	  $63	I/O	プリンタレディー割り込み
$000190	  $64	DMAC	#0 終了  (FDD)
$000194	  $65	DMAC	#0 エラー(〃 )
$000198	  $66	DMAC	#1 終了  (SASI)
$00019c	  $67	DMAC	#1 エラー(〃  )
$0001a0	  $68	DMAC	#2 終了  (IOCS _DMAMOVE,_DMAMOV_A,_DMAMOV_L)
$0001a4	  $69	DMAC	#2 エラー(〃				   )
$0001a8	  $6a	DMAC	#3 終了  (ADPCM)
$0001ac	  $6b	DMAC	#3 エラー(〃   )
$000200	  $6c	SPC	SCSI 割り込み(内蔵 SCSI)
$000204	  $6d	未使用
…	  …	…
$0003d4	  $f5	未使用
$0003d8	  $f6	SPC	SCSI 割り込み(SCSI ボード)
$0003dc	  $f7	未使用
…	  …	…
$0003fc	  $ff	未使用

==============================================================================

・グラフィックVRAM

 G-VRAM は実画面サイズ及び色数によって構造が異なり、合計 512KB の VRAM が分割
されて割り当てられている. ドットの表現は垂直型で、どのモードでも 1 ドットは必
ず 1 ワードで表し、16/256 色表示モードではそのうち 4/8 ビットのみが有効となる.

	X = 通常の設定モードでの X 座標
	Y = 〃			 Y 座標
	P = プレーン番号
	ADR = 65536色表示モードで (X,Y) 点をアクセスする時のアドレス
	BIT = 〃					    ビット位置

実画面512×512ドット、65536色表示:
	有効ビット	下位 16 ビット
	1 ライン	1024 バイト(512 ワード)
	ページ 0	$c00000~$c7ffff

実画面512×512ドット、256色表示:
	有効ビット	下位 8 ビット
	1 ライン	1024 バイト(512 ワード)
	ページ 0	$c00000~$c7ffff
	ページ 1	$c80000~$cfffff

	ADR = $c00000+Y×1024+X×2
	BIT = P×8 ~ P×8+7 の 8 ビット

実画面512×512ドット、16色表示:
	有効ビット	下位 4 ビット
	1 ライン	1024 バイト(512 ワード)
	ページ 0	$c00000~$c7ffff
	ページ 1	$c80000~$cfffff
	ページ 2	$d00000~$d7ffff
	ページ 3	$d80000~$dfffff

	ADR = $c00000+Y×1024+X×2
	BIT = P×4 ~ P×4+3 の 4 ビット

実画面1024×1024ドット、16色表示:
	有効ビット	下位 4 ビット
	1 ライン	2048 バイト(1024 ワード)
	ページ 0	$c00000~$dfffff

	ADR = $c00000+(Y&511)×1024+(X&511)×2
	BIT = (Y≧512)×8+(X≧512)×4 ~
	      (Y≧512)×8+(X≧512)×4+3 の 4 ビット

==============================================================================

・テキストVRAM

 T-VRAM は実画面サイズ1024×1024、16 色表示に固定で 4 プレーン合計 512KB の
VRAM が割り当てられている. ドットの表現は水平型で、1 ワードは横 16 ドットの各
プレーンにおけるパレットコードを表わす.

	1 ライン	128 バイト(64 ワード)
	プレーン 0	$e00000~$e1ffff
	プレーン 1	$e20000~$e3ffff
	プレーン 2	$e40000~$e5ffff
	プレーン 3	$e60000~$e7ffff

==============================================================================

・CRTコントローラ

address	size	R/W
$e80000	1.w	  W	R00	水平トータル		┐
$e80002	1.w	  W	R01	水平同期終了位置	│水平タイミング制御
$e80004	1.w	  W	R02	水平表示開始位置	│
$e80006	1.w	  W	R03	水平表示終了位置	┘
$e80008	1.w	  W	R04	垂直トータル		┐
$e8000a	1.w	  W	R05	垂直同期終了位置	│垂直タイミング制御
$e8000c	1.w	  W	R06	垂直表示開始位置	│
$e8000e	1.w	  W	R07	垂直表示終了位置	┘
$e80010	1.w	  W	R08	外部同期水平アジャスト	: 水平位置微調整
$e80012	1.w	  W	R09	ラスタ番号		: ラスタ割り込み用
$e80014	1.w	  W	R10	X 位置			┐テキスト画面スクロール
$e80016	1.w	  W	R11	Y 位置			┘
$e80018	1.w	  W	R12	X0			┐
$e8001a	1.w	  W	R13	Y0			│
$e8001c	1.w	  W	R14	X1			│
$e8001e	1.w	  W	R15	Y1			│グラフィック画面
$e80020	1.w	  W	R16	X2			│	スクロール
$e80022	1.w	  W	R17	Y2			│
$e80024	1.w	  W	R18	X3			│
$e80026	1.w	  W	R19	Y3			┘
$e80028	1.w	R/W	R20	メモリモード/表示モード制御
$e8002a	1.w	R/W	R21	同時アクセス/ラスタコピー/高速クリアプレーン撰択
$e8002c	1.w	  W	R22	ラスタコピー動作用	: ラスタ番号
$e8002e	1.w	  W	R23	テキスト画面アクセスマスクパターン
$e80481	1.b	R/W	動作	画像取り込み/高速クリア/ラスタコピー制御


CRTC R00($e80000):
	bit 15				 8   7				 0
	  ┌───────────────┬───────────────┐
	  │				 │		  水平トータル │
	  └───────────────┴───────────────┘
		水平同期期間×水平表示ドット数
	R00 = ───────────────── -1
		データ表示期間×8
	※最下位ビットは必ず 1 にすること.

CRTC R01($e80002):
	bit 15				 8   7				 0
	  ┌───────────────┬───────────────┐
	  │				 │		水平同期終了位置 │
	  └───────────────┴───────────────┘
		水平同期パルス幅×水平表示ドット数
	R01 = ─────────────────── -1
		データ表示期間×8

CRTC R02($e80004):
	bit 15				 8   7				 0
	  ┌───────────────┬───────────────┐
	  │				 │		水平表示開始位置 │
	  └───────────────┴───────────────┘
		(水平同期パルス幅+水平バックポーチ)×水平表示ドット数
	R02 = ───────────────────────────── -5
		データ表示期間×8

CRTC R03($e80006):
	bit 15				 8   7				 0
	  ┌───────────────┬───────────────┐
	  │				 │		水平表示終了位置 │
	  └───────────────┴───────────────┘
		(水平同期パルス幅-水平フロントポーチ)×水平表示ドット数
	R03 = ────────────────────────────── -5
		データ表示期間×8

CRTC R04($e80008):
	bit 15			10   9					 0
	  ┌───────────┬───────────────────┐
	  │			 │			  垂直トータル │
	  └───────────┴───────────────────┘
		垂直同期期間
	R04 = ──────── -1
		水平同期期間

CRTC R05($e8000a):
	bit 15			10   9					 0
	  ┌───────────┬───────────────────┐
	  │			 │			垂直同期終了位置 │
	  └───────────┴───────────────────┘
		垂直同期パルス幅
	R05 = ────────── -1
		水平同期期間

CRTC R06($e8000c):
	bit 15			10   9					 0
	  ┌───────────┬───────────────────┐
	  │			 │			垂直表示開始位置 │
	  └───────────┴───────────────────┘
		垂直同期パルス幅+垂直バックポーチ
	R06 = ─────────────────── -1
		水平同期期間

CRTC R07($e8000e):
	bit 15			10   9					 0
	  ┌───────────┬───────────────────┐
	  │			 │			垂直表示終了位置 │
	  └───────────┴───────────────────┘
		垂直同期期間-垂直フロントポーチ
	R07 = ────────────────── -1
		水平同期期間

CRTC R08($e80010):
	bit 15				 8   7				 0
	  ┌───────────────┬───────────────┐
	  │				 │	 外部同期水平アジャスト │
	  └───────────────┴───────────────┘

CRTC R09($e80012):
	bit 15			10   9					 0
	  ┌───────────┬───────────────────┐
	  │			 │			   ラスタ番号 │
	  └───────────┴───────────────────┘
		垂直同期パルス幅+垂直バックポーチ
	R09 = ─────────────────── +ラスタ番号
		水平同期期間
	    = R06 +1 +ラスタ番号

CRTC R10($e80014):
	bit 15			10   9					 0
	  ┌───────────┬───────────────────┐
	  │			 │				  X位置 │
	  └───────────┴───────────────────┘

CRTC R11($e80016):
	bit 15			10   9					 0
	  ┌───────────┬───────────────────┐
	  │			 │				  Y位置 │
	  └───────────┴───────────────────┘

CRTC R12($e80018):
	bit 15			10   9   8				 0
	  ┌───────────┬───────────────────┐
	  │			 │ │			   X0 │
	  └───────────┴───────────────────┘
	※実画面512×512ドットのモードでは bit 8~0 までが有効.

CRTC R13($e8001a):
	bit 15			10   9   8				 0
	  ┌───────────┬───────────────────┐
	  │			 │ │			   Y0 │
	  └───────────┴───────────────────┘
	※実画面512×512ドットのモードでは bit 8~0 までが有効.

CRTC R14($e8001c):
	bit 15				 8				 0
	  ┌─────────────┬─────────────────┐
	  │			   │			   X1 │
	  └─────────────┴─────────────────┘
	※実画面1024×1024ドットのモードでは使用されない.

CRTC R15($e8001e):
	bit 15				 8				 0
	  ┌─────────────┬─────────────────┐
	  │			   │			   Y1 │
	  └─────────────┴─────────────────┘
	※実画面1024×1024ドットのモードでは使用されない.

CRTC R16($e80020):
	bit 15				 8				 0
	  ┌─────────────┬─────────────────┐
	  │			   │			   X2 │
	  └─────────────┴─────────────────┘
	※実画面1024×1024ドットのモードでは使用されない.

CRTC R17($e80022):
	bit 15				 8				 0
	  ┌─────────────┬─────────────────┐
	  │			   │			   Y2 │
	  └─────────────┴─────────────────┘
	※実画面1024×1024ドットのモードでは使用されない.

CRTC R18($e80024):
	bit 15				 8				 0
	  ┌─────────────┬─────────────────┐
	  │			   │			   X3 │
	  └─────────────┴─────────────────┘
	※実画面1024×1024ドットのモードでは使用されない.

CRTC R19($e80026):
	bit 15				 8				 0
	  ┌─────────────┬─────────────────┐
	  │			   │			   Y3 │
	  └─────────────┴─────────────────┘
	※実画面1024×1024ドットのモードでは使用されない.

CRTC R20($e80028):
	bit 15	    13  12  11  10   9   8   7	     5   4   3   2   1   0
	  ┌─────┬─┬─┬─┬───┬─────┬─┬───┬───┐
	  │	   │ │ │ │ COL │	   │HF│ VD │ HD │
	  └─────┴─┴─┴─┴───┴─────┴─┴───┴───┘
			│ │ └ SIZE
			│ G-MEM
			└ T-MEM

	bit 12	 T-MEM	T-VRAM使用モード
			%0  : 表示用
			%1  : バッファ用
	bit 11	 G-MEM	G-VRAM使用モード
			%0  : 表示用
			%1  : バッファ用(bit 10~8 は無効)
			      (G-VRAM が 65536 色表示時と同じ構造になる)
	bit 10	 SIZE	実画面サイズ
			%0  :  512× 512ドット
			%1  : 1024×1024ドット
	bit 9~8 COL	色数モード
			%00 :	 16色
			%01 :	256色
			%10 : 未定義
			%11 : 65536色
	bit 4	 HF	水平偏向周波数
			%0  : 15.98kHz
			%1  : 31.50kHz
	bit 3~2 VD	垂直ドット数
			%00 :  256ドット
			%01 :  512ドット
			%10 : 1024ドット・インタレース(HF=%1の時のみ)
			%11 : 〃
	bit 1~0 HD	水平ドット数
			%00 : 256ドット
			%01 : 512ドット
			%10 : 768ドット
			%11 : クロック 50MHz モード(Compact XVI 以降のみ)

CRTC R21($e8002a):
	bit 15			10   9   8   7   6   5   4   3   2   1   0
	  ┌───────────┬─┬─┬───────┬───────┐
	  │			 │ │ │ │ │ │ │ │ │ │ │
	  └───────────┴─┴─┴───────┴───────┘
				  │ │	AP3~AP0	CP3~CP0
				  MEN SA

	bit 9	MEN	テキスト画面アクセスマスク
			%0 : 無効
			%1 : 有効
	bit 8	SA	テキスト画面同時アクセス
			%0 : 無効
			%1 : 有効
	bit 7~4 AP3~AP0
			テキスト画面同時アクセス対象プレーン選択
			%0 : 選択
			%1 : 非選択
	bit 3~0 CP3~CP0
			┌ テキスト画面ラスタコピー対象プレーン選択
			└ グラフィック画面高速クリア対象ページ〃
			%0 : 選択
			%1 : 非選択

CRTC R22($e8002c):
	bit 15				 8   7				 0
	  ┌───────────────┬───────────────┐
	  │		  ソースラスタ │ ディスティネーションラスタ │
	  └───────────────┴───────────────┘
				(転送元)			(転送先)

CRTC R23($e8002e):
	bit 15								 0
	  ┌───────────────────────────────┐
	  │						  マスクパタン │
	  └───────────────────────────────┘
	%0 : データが変更される
	%1 : データが変更されない

CRTC 動作ポート($e80481):
	bit  7		 4   3   2   1   0
	  ┌───────┬─┬─┬─┬─┐
	  │		 │RC│ 0│FC│VI│
	  └───────┴─┴─┴─┴─┘

	bit 3	RC	テキスト画面ラスタコピー開始
			%0 : 停止
			%1 : 開始
	bit 1	FC	グラフィック画面高速クリア開始
			%0 : 停止
			%1 : 開始
			※高速クリア動作が終了すると自動的に 0 になる.
	bit 0	VI	画像取り込み開始
			%0 : 停止
			%1 : 開始

==============================================================================

・ビデオコントローラ

address	size
$e82000	256.w	--	グラフィックパレット
$e82200	256.w	--	テキストパレット、スプライト+BG パレット
$e82400	1.w	R0	画面モード
$e82500	1.w	R1	プライオリティ制御
$e82600	1.w	R2	ON/OFF 制御/特殊プライオリティ


グラフィックパレット($e82000):
	 グラフィックパレットは 16/256色表示モードと 65536色表示モードでは構
	造が異なる.

	   16色表示:
		 先頭 16 ワードが使用される. パレットから読み出された値はその
		ままカラーコードとして出力される.
	  256色表示:
		 先頭 256 ワードが使用される. パレットから読み出された値はそ
		のままカラーコードとして出力される.
	65536色表示:
		 テキストパレットや 16/256色表示モードでのグラフィックパレッ
		トは 1 ワード単位のカラーコードが色数だけ並んでいるが、65536
		色表示モードでのグラフィックパレットはカラーコードを上位/下位
		のバイト単位に分割し、それが 256 個飛び飛びに並んだものが二組
		(上位/下位)ある.
		 カラーコード出力時には G-VRAM のデータが上位バイトと下位バイ
		トに分割され、それぞれ独立して決定されたのち、合成される.

		PH = G-VRAM のデータの上位バイト
		PL = 〃		      下位〃
		CH = 出力されるカラーコードの上位バイト
		CL = 〃			     下位〃 

		CH = *(unsigned char)($e82002+PH×2-PH&1)
		CL = *(unsigned char)($e82000+PL×2-PL&1)

		address	size	CH		CL
		$e82000	1.b	--		PL = $00
		$e82001	1.b	--		PL = $01
		$e82002	1.b	PH = $00	--
		$e82003	1.b	PH = $01	--
		$e82004	1.b	--		PL = $02
		$e82005	1.b	--		PL = $03
		$e82006	1.b	PH = $02	--
		$e82007	1.b	PH = $03	--
				……
				……
		$e821f8	1.b	--		PL = $fc
		$e821f9	1.b	--		PL = $fd
		$e821fa	1.b	PH = $fc	--
		$e821fb	1.b	PH = $fd	--
		$e821fc	1.b	--		PL = $fe
		$e821fd	1.b	--		PL = $ff
		$e821fe	1.b	PH = $fe	--
		$e821ff	1.b	PH = $ff	--
		($e82000 は PL = $00 の時の CL の値、と読むこと)

テキストパレット($e82200):
	 テキストパレットとスプライト+BG パレットは 16 ワードのパレットブロ
	ックが 16 個並び、一部共用となっている.
	 テキストパレットはこのうち先頭のパレットブロック 0 だけが使用され、
	パレットから読み出された値はそのままカラーコードとして出力される.

スプライト+BG パレット($e82200):
	 テキストパレットと同様だが、パレットブロック 0~15 の全てを使用でき
	る. 使用するパレット番号は、PCG のデータが下位 4 ビットの値となり、ス
	プライトスクロールレジスタや BG データエリアのデータが上位 4 ビットの
	値となって決定される.

VC R0($e82400):
	bit 15						     3   2   1   0
	  ┌─────────────────────────┬─┬───┐
	  │						   │ │ COL │
	  └─────────────────────────┴─┴───┘
								SIZ

	bit 2	 SIZ	実画面サイズ
			%0  :  512× 512ドット
			%1  : 1024×1024ドット
	bit 1~0 COL	色モード
			%00 :	 16色
			%01 :	256色
			%10 : 未定義
			%11 : 65536色
	※CRTC R20 のビット 10~8 と同じ値を設定すること.

VC R1($e82500):
	bit 15  14  13  12  11  10   9   8   7   6   5   4   3   2   1   0
	  ┌───┬───┬───┬───┬───┬───┬───┬───┐
	  │   │ SP │ TX │ GR │ GP3 │ GP2 │ GP1 │ GP0 │
	  └───┴───┴───┴───┴───┴───┴───┴───┘

	bit 13~12 SP	スプライト画面の優先順位
	bit 11~10 TX	テキスト	〃
	bit  9~ 8 GR	グラフィック	〃
	bit  7~ 6 GP3	四番目に優先順位の高いグラフィック画面のページ番号
	bit  5~ 4 GP2	三番目		〃
	bit  3~ 2 GP1	二番目		〃
	bit  1~ 0 GP0	最も優先順位の高いグラフィック画面のページ番号

	※SP/TX/GR は、優先順位を高くする画面から %00/%01/%10 を設定する.
	※グラフィック画面が 1 ページの場合、GP3~GP0 は一組として扱う.
	 また、2 ページの場合は GP3~GP2/GP1~GP0 をそれぞれ一組として扱う.
	※GP3~GP0 設定値
	  65536色表示 : %1110_0100
	    256色表示 : %1110_0100(ページ 1 < ページ 0)
			%0100_1110(ページ 0 < ページ 1)
	     16色表示 : %1110_0100(ページ 3 < ページ 2 < ページ 1 < ページ 0)
			    …
			%0001_1011(ページ 0 < ページ 1 < ページ 2 < ページ 3)

VC R2($e82600):
	bit 15  14  13  12  11  10   9   8   7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐
	  │YS│AH│ │ │ │ │ │ │ │ │ │ │ │ │ │ │
	  └─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘
		  VHT EXON H/P B/P G/G G/T │	SON TON GS4 GS3 GS2 GS1 GS0
					   BCON

	bit 15	YS	ビデオカット
			(スーパーインポーズ時でもビデオ画像を表示しない)
	bit 14	AH	半透明 : テキストパレット 0
			※EXON や H/P 等と無関係に強制的に半透明モードになる.
	bit 13	VHT	半透明 : ビデオ画像(カラーイメージユニットで利用)
	bit 12	EXON	特殊プライオリティ/半透明モード有効
	bit 11	H/P	%0 : 特殊プライオリティ選択
			%1 : 半透明モード選択
	bit 10	B/P	%0 : シャープ予約
			%1 : グラフィック画面の最下位ビットで領域指定
	bit  9	G/G	半透明 : グラフィック画面
	bit  8	G/T	半透明 : テキスト/スプライト画面
			※グラフィック画面のプライオリティが高い場合のみ有効)
	bit  7	BCON	ボーダーカラー表示 ON(%1)/OFF(%0) 制御
	bit  6	SON	スプライト画面 ON(%1)/OFF(%0) 制御
	bit  5	TON	テキスト画面 ON(%1)/OFF(%0) 制御
	bit  4	GS4	グラフィック画面 ON(%1)/OFF(%0) 制御
						(実画面1024×1024ドット時)
	bit  3~0 GS3~GS0
			グラフィック画面 ON(%1)/OFF(%0) 制御
						(実画面 512× 512ドット時)

	※グラフィック画面が 1 ページの場合、GS3~GS0 の各ビットには全て同じ
	 値を設定する. また、2 ページの場合は GS3~GS2/GS1~GS0 をそれぞれ
	 一組として扱い同じ組の各ビットには全て同じ値を設定する.

==============================================================================

・DMAC

 HD63450 は 4 個のチャンネルを持ち、X680x0 では チャンネル #0、#1、#3 がそれ
ぞれ FD、HD、ADPCM に割り当てられている. チャンネル #2 はユーザに解放されてお
り、REQ(DMA 転送要求信号)、ACK(応答信号)、PCL(汎用入力信号)などが拡張スロット
に配線されているのでメモリ-メモリ間転送や拡張ボードで利用可能である.

 DMAC のレジスタは各チャンネル毎に $e84000 から $40 バイトずつ存在する. ただ
し、GCR(ジェネラルコントロールレジスタ)は チャンネル #3 だけにある.


address	channel
$e84000	#0
$e84040	#1
$e84080	#2
$e840c0	#3


offset	size	R/W
+$00	1.b	R/W	CSR	チャンネルステータスレジスタ
+$01	1.b	R	CER	チャンネルエラーレジスタ
+$02	1.w	---
+$04	1.b	R/W	DCR	デバイスコントロールレジスタ
+$05	1.b	R/W	OCR	オペレーションコントロールレジスタ
+$06	1.b	R/W	SCR	シーケンスコントロールレジスタ
+$07	1.b	R/W	CCR	チャンネルコントロールレジスタ
+$08	1.w	---
+$0a	1.w	R/W	MTC	メモリトランスファカウンタ
+$0c	1.l	R/W	MAR	メモリアドレスレジスタ
+$10	1.l	---
+$14	1.l	R/W	DAR	デバイスアドレスレジスタ
+$18	1.w	---
+$1a	1.w	R/W	BTC	ベーストランスファカウンタ
+$1c	1.l	R/W	BAR	ベースアドレスレジスタ
+$20	1.l	---
+$24	1.b	---
+$25	1.b	R/W	NIV	ノーマルインタラプトベクタ
+$26	1.b	---
+$27	1.b	R/W	EIV	エラーインタラプトベクタ
+$28	1.b	---
+$29	1.b	R/W	MFC	メモリファンクションコード
+$2a	1.w	---
+$2c	1.b	---
+$2d	1.b	R/W	CPR	チャンネルプライオリティレジスタ
+$2e	1.w	---
+$30	1.b	---
+$31	1.b	R/W	DFC	デバイスファンクションコード
+$32	3.w	---
+$38	1.b	---
+$39	1.b	R/W	BFC	ベースファンクションコード
+$3a	1.l	---
+$3e	1.b	---
+$3f	1.b	R/W	GCR	ジェネラルコントロールレジスタ


DMAC CSR(+$00):
	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬─┬─┬─┬─┬─┐
	  │ │ │ │ │ │ │ │ │
	  └─┴─┴─┴─┴─┴─┴─┴─┘
	    COC BTC NDT ERR ACT DIT PCT PCS

	bit 7	COC	チャンネルオペレーションコンプリート
			%0 : チャンネル動作未完了
			%1 : 〃		   完了
	bit 6	BTC	ブロックトランスファコンプリート
			%0 : ブロック転送動作未完了
			%1 : 〃		     完了
	bit 5	NDT	ノーマルデバイスターミネーション
			%0 : DONE 信号によるデバイス停止ではない
			%1 : DONE 信号による正常なデバイス停止
	bit 4	ERR	エラービット
			%0 : エラーなし
			%1 : エラー発生(ERROR CODE ビットにエラー内容が入る)
	bit 3	ACT	チャンネルアクティブ
			%0 : チャンネル非アクティブ
			%1 : チャンネルアクティブ(動作中)
	bit 2	DIT	DONE 入力トランジッション
			%0 : DONE 入力はない
			%1 : OCR の BTD ビットが %1 の時に DONE 入力があった
			___
	bit 1	PCT	PCL トランジッション
			%0 : PCL の立ち下がり(High → Low の変化)はない
			%1 : 〃					 が発生した
			___
	bit 0	PCS	PCL ラインステータス
			%0 : PCL = Low
			%1 : PCL = High

	※ACT、PCS 以外のビットは一度 %1 になると、そのビットに %1 を書き込む
	 かリセットが掛るまで %1 のままになる. 特に COC、BTC、NDT、ERR、ACT
	 ビットが %1 になっている時には次の転送動作を行うことが出来ないので、
	 使用前にクリアする必要がある.

DMAC CER(+$01):
	bit  7	     5   4		 0
	  ┌─────┬─────────┐
	  │	 0  │   ERROR CODE │
	  └─────┴─────────┘

	bit 4~0	ERROR CODE
			%00000 : エラーなし
			%00001 : コンフィグレーションエラー
			%00010 : 動作タイミングエラー
			%00011 : (未使用)
			%001rr : アドレスエラー
			%010rr : バスエラー
			%011rr : カウントエラー
			%10000 : 外部強制停止
			%10001 : ソフトウェア強制停止

DMAC DCR(+$04):
	bit  7   6   5   4   3   2   1   0
	  ┌───┬───┬─┬─┬───┐
	  │ XRM │ DTYP │ │ 0│ PCL │
	  └───┴───┴─┴─┴───┘
			    DPS

	bit 7~6 XRM	エクスターナルリクエストモード
			%00 : バースト転送モード
			%01 : (未定義)
			%10 : ホールドなし サイクルスチールモード
			%11 : ホールド付き 〃
	bit 5~4 DTYP	デバイスタイプ
			%00 : 68000 バスタイプ		┐デュアル
			%01 : 6800  〃			┘	アドレスモード
			      ___
			%10 : ACK 付きデバイス		┐シングル
			      ___    _____		│	アドレスモード
			%11 : ACK と READY 付きデバイス	┘
			※デュアルアドレスモードで使用すること(通常は %00).
	bit 3	 DPS	デバイスポートサイズ
			%0  :  8 ビットポート
			%1  : 16 〃
	bit 1~0 PCL	ペリフェラルコントロールライン
			%00 : ステータス入力
			%01 : インタラプト付きステータス入力
			%10 : 1/8 スタートパルス
			%11 : ABORT(強制終了)入力

DMAC OCR(+$05):
	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬───┬───┬───┐
	  │ │ │ SIZE │ CHAIN│ REQG │
	  └─┴─┴───┴───┴───┘
	    DIR BTD

	bit 7	 DIR	ディレクション
			%0  : メモリ→デバイス(MAR → DAR)
			%1  : デバイス→メモリ(DAR → MAR)
	bit 6	 BTD	DONE 付き複数ブロック転送
			%0  : 通常動作
			%1  : DONE 入力があると、強制的に次のブロックの転送を
			      行う
	bit 5~4 SIZE	オペランドサイズ
			%00 : バイト( 8bit)
			%01 : ワード(16bit)
			%10 : ロングワード(32bit)
			%11 : パックなし ポートサイズ 8bit バイト(8bit)転送
	bit 3~2 CHAIN	チェイニングオペレーション
			%00 : チェイン動作なし
			%01 : (未使用)
			%10 : アレイチェイニング
			%11 : リンクアレイチェイニング
	bit 1~0 REQG	リクエストジェネレーションメソッド
			%00 : オートリクエスト限定速度
			%01 : 〃	      最大速度
			%10 : 外部要求転送(REQ ラインによる)
			%11 : 最初の転送はオートリクエスト
			      二番目以降は外部要求転送
			※チャンネル #0、#1、#3 は外部要求転送で使用すること.

DMAC SCR(+$06):
	bit  7		 4   3   2   1   0
	  ┌───────┬───┬───┐
	  │	  0	 │ MAC │ DAC │
	  └───────┴───┴───┘

	bit 3~2 MAC	メモリアドレスカウント
			%00 : メモリアドレスレジスタは変化させない
			%01 : 転送が行われるごとにメモリアドレスレジスタを増加
			%10 : 〃					  減少
			%11 : (未使用)
	bit 1~0 DAC	デバイスアドレスカウント
			%00 : デバイスアドレスレジスタは変化させない
			%01 : 転送が行われるごとにデバイスアドレスレジスタを増加
			%10 : 〃					    減少
			%11 : (未使用)

DMAC CCR(+$07):
	bit  7   6   5   4   3   2	 0
	  ┌─┬─┬─┬─┬─┬─────┐
	  │ │ │ │ │ │   0	 │
	  └─┴─┴─┴─┴─┴─────┘
	    STR CNT HLT SAB INT

	bit 7	STR	スタートオペレーション
			%1 : 動作スタート
	bit 6	CNT	コンティニューオペレーション
			%0 : コンティニュー動作なし
			%1 : 〃		       あり
	bit 5	HLT	ホルトオペレーション
			%1 : チャンネル動作一時停止
	bit 4	SAB	ソフトウェアアボート
			%1 : チャンネル動作の停止
	bit 3	INT	インタラプトイネーブル
			%0 : 割り込み発生許可
			%1 : 〃		 禁止

DMAC MTC(+$0a):
	転送オペランド数を指定する.

DMAC MAR(+$0c):
	転送するメモリアドレスを指定する.

DMAC DAR(+$14):
	転送するデバイスアドレスを指定する.

DMAC BTC(+$1a):
	アレイチェインモードでの転送ブロック数(転送情報テーブル数)を指定する.

DMAC BAR(+$1c):
	アレイチェイン/リンクアレイチェインモードでの転送情報テーブルの先頭ア
	ドレスを指定する.

DMAC NIV(+$25):
	CSR ERR が %0 の時に発生した割り込みで使用するベクタ番号を指定する.

DMAC EIV(+$27):
	CSR ERR が %1 の時に発生した割り込みで使用するベクタ番号を指定する.

DMAC MFC(+$29):
	bit  7		     3   2   1   0
	  ┌─────────┬─────┐
	  │	   0	   │ │ │ │
	  └─────────┴─────┘
				FC2 FC1 FC0

	bit 2~0 FC2~FC0
			メモリファンクションコード
			%000 : (未使用)
			%001 : ユーザデータ
			%010 : ユーザプログラム
			%011 : (未使用)
			%100 : (未使用)
			%101 : スーパバイザデータ
			%110 : スーパバイザプログラム
			%111 : インタラプトアクノリッジ

DMAC CPR(+$2d):
	bit  7			 2   1   0
	  ┌───────────┬───┐
	  │	    0	 │ CP │
	  └───────────┴───┘

	bit 1~0 CP	チャンネルプライオリティ
			%00 : 最も高い優先度
			%01 : 二番目に高い優先度
			%10 : 〃
			%11 : 最も低い優先度

DMAC DFC(+$31):
	(MFC と同様)

DMAC BFC(+$39):
	(MFC と同様)

DMAC GCR(+$3f):
	bit  7		 4   3   2   1   0
	  ┌───────┬───┬───┐
	  │	  0	 │ BT │ BR │
	  └───────┴───┴───┘

	bit 3~2 BT	バーストタイム
			(1 バーストあたりの DMA クロックサイクル数)
			%00 :  16 クロック
			%01 :  32 〃
			%10 :  64 〃
			%11 : 128 〃
	bit 1~0 BR	バンドウィズスレシオ(バンド占有率)
			%00 : 50.00%
			%01 : 25.00%
			%10 : 12.50%
			%11 :  6.25%
	※限定速度オートリクエストモードのチャンネルにのみ影響する.

==============================================================================

・エリアセット

 メインメモリのユーザ領域/スーパーバイザ領域を選択する為のレジスタ. 書き出し
専用で、読み出しは出来ない.


address	size
$e86001	1.b	エリアセットレジスタ
$eaff81	1.b	拡張エリアセットレジスタ 0($200000~$3fffff)
$eaff83	1.b	〃			 1($400000~$5fffff)
$eaff85	1.b	〃			 2($600000~$7fffff)
$eaff87	1.b	〃			 3($800000~$9fffff)
$eaff89	1.b	〃			 4($a00000~$bfffff)


エリアセットレジスタ($e86001):
	 0 番地からどれだけのメモリ領域をスーパバイザ領域にするかを 8KB 単位
	で指定する. 0 番地から、((設定値+1)×8192-1)までのアドレスがスーパバ
	イザ領域となり、最大で 2MB(($ff+1)×8192-1)の範囲が指定できる.
	 本体リセット時、このレジスタには 0 が設定される.

拡張エリアセットレジスタ:
	 $200000 番地から 256KB 単位でスーパバイザ領域にするかどうかを指定す
	る. レジスタ #0 の bit 0 ~ bit 7、…、レジスタ #4 の bit 0 ~ bit 7
	の順に、$200000~$bfffff の単位が指定できる.
	 本体リセット時、このレジスタには全て 0 が設定される.
	※X68030 で追加されたレジスタ(X68000 でも使用可能だが本体リセット時に
	 初期化されない?).

==============================================================================

・MFP

 マルチファンクションペリフェラル MC68901 は 4 個のタイマ、1 チャンネルのシリ
アルポート(USART)、8 ビット分の汎用 I/O ポート(GPIP)を持っている.
 X680x0/Human68k での割り当ては以下のようになっている.

	タイマ	A	V-DISP(垂直表示期間)信号による割り込み
	〃	B	シリアルポートのクロック生成
	〃	C	カーソル点滅/FDD 制御等の割り込み
	〃	D	BG プロセス切り換え用の割り込み
	シリアルポート	キーボード入出力
	汎用 I/O ポート	各種信号による割り込み


address	size	R/W
$e88001	1.b	R	GPIP	汎用 I/O レジスタ		┐
$e88003	1.b	R/W	AER	アクティブエッジレジスタ	│GPIP 制御
$e88005	1.b	R/W	DDR	データ方向レジスタ		┘
$e88007	1.b	R/W	IERA	割り込みイネーブルレジスタ A	┐
$e88009	1.b	R/W	IERB	〃			   B	│
$e8800b	1.b	R/W	IPRA	割り込みペンディングレジスタ A	│
$e8800d	1.b	R/W	IPRB	〃			     B	│
$e8800f	1.b	R/W	ISRA	割り込みインサービスレジスタ A	│割り込み制御
$e88011	1.b	R/W	ISRB	〃			     B	│
$e88013	1.b	R/W	IMRA	割り込みマスクレジスタ A	│
$e88015	1.b	R/W	IMRB	〃		       B	│
$e88017	1.b	R/W	VR	ベクタレジスタ			┘
$e88019	1.b	R/W	TACR	タイマ A コントロールレジスタ	┐
$e8801b	1.b	R/W	TBCR	タイマ B 〃			│
$e8801d	1.b	R/W	TCDCR	タイマ C&D コントロールレジスタ	│
$e8801f	1.b	R/W	TADR	タイマ A データレジスタ		│タイマ制御
$e88021	1.b	R/W	TBDR	タイマ B 〃			│
$e88023	1.b	R/W	TCDR	タイマ C 〃			│
$e88025	1.b	R/W	TDDR	タイマ D 〃			┘
$e88027	1.b	R/W	SCR	SYNC キャラクタレジスタ		┐
$e88029	1.b	R/W	UCR	USART コントロールレジスタ	│
$e8802b	1.b	R/W	RSR	レシーバステータスレジスタ	│USART 制御
$e8802d	1.b	R/W	TSR	トランスミッタステータスレジスタ│
$e8802f	1.b	R/W	UDR	USART データレジスタ		┘


MFP GPIP($e88001):
	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬─┬─┬─┬─┬─┐
	  │ │ │ │ │ │ │ │ │
	  └─┴─┴─┴─┴─┴─┴─┴─┘
	  │ │ │ │ │ │ │ └ ALARM
	  │ │ │ │ │ │ └ EXPON
	  │ │ │ │ │ └ POW SW
	  │ │ │ │ └ FMIRQ
	  │ │ │ └ V-DISP
	  │ │ └ 常に %1
	  │ └ CIRQ
	  └ H-SYNC

	bit 7~0 に GPIP 7~0 の各信号の状態がそのまま入力される.

	bit 7 H-SYNC	CRTC の H-SYNC 信号
			%0 : 'L'(水平帰線期間)
			%1 : 'H'( 〃 同期 〃 )
	bit 6 CIRQ	CRTC の割り込み要求信号(ラスタ割り込み)
			%0 : 割り込み要求中
			%1 : 〃		 なし
	bit 5 (未使用)	常に %1
	bit 4 V-DISP	CRTC の V-DISP 信号
			%0 : 'L'(垂直帰線期間)
			%1 : 'H'( 〃 表示 〃 )
	bit 3 FMIRQ	FM 音源 IC の割り込み要求信号
			%0 : 割り込み要求中
			%1 : 〃		 なし
	bit 2 POW SW	本体前面の電源スイッチの状態
			%0 : 電源スイッチ ON(通常)
			%1 : 〃		  OFF
	bit 1 EXPON	EXPON 信号
			%0 : 'L'
			%1 : 'H'(通常)
	bit 0 ALARM	RTC の ALARM 信号
			%0 : 'L'
			%1 : 'H'(通常)

MFP AER($e88003):
	(GPIP と同様)

	各信号ごとに、割り込みを発生させる変化方向を設定する.
	%0 : %0 → %1 の変化で割り込み発生
	%1 : %1 → %0 〃

MFP DDR($e88005):
	(GPIP と同様)

	各信号ごとに、入力/出力のいずれで使うのかを設定する.
	%0 : 入力
	%1 : 出力
	※X680x0 では全て入力として使用する.

MFP IERA($e88007):
	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬─┬─┬─┬─┬─┐
	  │ │ │ │ │ │ │ │ │
	  └─┴─┴─┴─┴─┴─┴─┴─┘
	  │ │ │ │ │ │ │ └ タイマ B
	  │ │ │ │ │ │ └ 送信エラー
	  │ │ │ │ │ └ 送信バッファエンプティ
	  │ │ │ │ └ 受信エラー
	  │ │ │ └ 受信バッファフル
	  │ │ └ タイマ A
	  │ └ CIRQ(GPIP 6)
	  └ H-SYNC(GPIP 7)

	bit 7	CRTC H-SYNC(水平同期信号)
	bit 6	CRTC ラスタ割り込み
	bit 5	タイマ A
	bit 4	MPSC 受信バッファフル(受信データ読み取り要求)
	bit 3	〃   受信エラー
	bit 2	〃   送信バッファエンプティ(送信データ書き込み要求)
	bit 1	〃   送信エラー
	bit 0	タイマ B

	各割り込みの発生の許可/禁止を設定する.
	%0 : 割り込み発生禁止
	%1 : 〃		 許可

MFP IERB($e88009):
	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬─┬─┬─┬─┬─┐
	  │ │ │ │ │ │ │ │ │
	  └─┴─┴─┴─┴─┴─┴─┴─┘
	  │ │ │ │ │ │ │ └ ALARM(GPIP 0)
	  │ │ │ │ │ │ └ EXPON(GPIP 1)
	  │ │ │ │ │ └ POW SW(GPIP 2)
	  │ │ │ │ └ FMIRQ(GPIP 3)
	  │ │ │ └ タイマ D
	  │ │ └ タイマ C
	  │ └ V-DISP(GPIP 4)
	  └ (GPIP 5)

	(IERA と同様)

MFP IPRA($e8800b):
	(IERA と同様)

	 割り込み要求がペンディング(保留)されていることを示す. 割り込み要求が
	発生すれば %1 になり、割り込み要求が受け取られたら %0 に戻る.
	%0 : 割り込み要求はペンディングされていない
	%1 : 〃			       されている
	※IERA/IERB によって割り込みが禁止されるか、IPRA/IPRB に %0 を書き込む
	 事によっても %0 に戻る.

MFP IPRB($e8800d):
	(IERB と同様)
	(IPRA と同様)

MFP ISRA($e8800f):
	(IERA と同様)

	 割り込みがインサービス(処理中)であるとを示す.
	 ソフトウェア EOI(End Of interrupt = サービス終了通知)モードでは、MFP
	から MPU に割り込みが伝えられると %1 になり、%0 を ISRA/ISRB に書き込
	むと %0 に戻る.
	 自動 EOI モードでは、割り込みを伝えた時点で自動的に %0 に戻る.
	%0 : 割り込み要求は処理中ではない
	%1 : 〃			 である

MFP ISRB($e88011):
	(IERB と同様)
	(ISRA と同様)

MFP IMRA($e88013):
	(IERA と同様)

	 割り込みのマスク制御を設定する.
	%0 : 割り込み要求をマスクする  (割り込み発生不可)
	%1 : 〃			 しない(〃	    可  )
	※IERA/IERB は割り込みの発生を抑制するが、IMRA/IMRB は割り込み要因が発
	 生しても割り込み要求を出力しないだけである.

MFP IMRB($e88015):
	(IERB と同様)
	(IMRA と同様)

MFP VR($e88017):
	bit  7   6   5   4   3   2   1   0
	  ┌───────┬─┬─────┐
	  │ ベクタ番号 │ S│     │
	  └───────┴─┴─────┘

	bit 7~4	割り込みベクタの上位 4 ビット
			MFP による割り込み時に出力するベクタ番号の上位 4 ビッ
			トの値を設定する. 下位 4 ビットは割り込み要因によって
			決定される(優先度の高い順から %1111~%0000).
	bit 3		インサービスレジスタイネーブル
			%0 : オート EOI モード	    (インサービスレジスタ無効)
			%1 : ソフトウェア EOI モード(〃			 有効)

MFP TACR($e88019):
	bit  7	     5   4   3   2   1   0
	  ┌─────┬─┬───────┐
	  │	   │ │ │ │ │ │
	  └─────┴─┴───────┘
			│	AC3~AC0
		  リセット TAO

	bit 4	 リセット TAO
			タイマ出力(TAO)リセット
			%0 : 通常動作
			%1 : タイマ出力ピンの状態を'L'に設定する
	bit 3~0 AC3~AC0
			タイマの動作モード
			%0000 : タイマストップ
			%0001 : ディレイモード		(÷  4 プリスケーラ)
			%0010 : 〃			(÷ 10 〃	   )
			%0011 : 〃			(÷ 16 〃	   )
			%0100 : 〃			(÷ 50 〃	   )
			%0101 : 〃			(÷ 64 〃	   )
			%0110 : 〃			(÷100 〃	   )
			%0111 : 〃			(÷200 〃	   )
			%1000 : イベントカウントモード
			%1001 : パルス幅測定モード	(÷  4 プリスケーラ)
			%1010 : 〃			(÷ 10 〃	   )
			%1011 : 〃			(÷ 16 〃	   )
			%1100 : 〃			(÷ 50 〃	   )
			%1101 : 〃			(÷ 64 〃	   )
			%1110 : 〃			(÷100 〃	   )
			%1111 : 〃			(÷200 〃	   )

MFP TBCR($e8801b):
	bit  7	     5   4   3   2   1   0
	  ┌─────┬─┬───────┐
	  │	   │ │ │ │ │ │
	  └─────┴─┴───────┘
			│	BC3~BC0
		  リセット TBO

	(TACR と同様)

MFP TCDCR($e8801d):
	bit  7   6   5   4   3   2   1   0
	  ┌─┬─────┬─┬─────┐
	  │ │ │ │ │ │ │ │ │
	  └─┴─────┴─┴─────┘
		CC2~CC0	DC2~DC0

	bit 6~4 CC2~CC0
			タイマ C 動作モード
			%000 : タイマストップ
			%001 : ディレイモード	(÷  4 プリスケーラ)
			%010 : 〃		(÷ 10 〃	   )
			%011 : 〃		(÷ 16 〃	   )
			%100 : 〃		(÷ 50 〃	   )
			%101 : 〃		(÷ 64 〃	   )
			%110 : 〃		(÷100 〃	   )
			%111 : 〃		(÷200 〃	   )
	bit 2~0 DC2~DC0
			タイマ D 動作モード
			(CC2~CC0 と同様)

MFP TADR($e8801f):
	タイマ A の値.

MFP TBDR($e88021):
	タイマ B の値.

MFP TCDR($e88023):
	タイマ C の値.

MFP TDDR($e88025):
	タイマ D の値.

MFP SCR($e88027):
	同期転送モードで使用する.

MFP UCR($e88029):
	bit  7   6   5   4   3   2   1   0
	  ┌─┬───┬───┬─┬─┬─┐
	  │ │ │ │ │ │PE│ │ │
	  └─┴───┴───┴─┴─┴─┘
	  CLK WL1 WL0 ST1 ST0   E/O

	bit 7	 CLK	送受信速度
			%0  : 入力クロック周波数と同一
			%1  : 〃		の 1/16
	bit 6~5 WL1~WL0
			データ長
			%00 : 8bit
			%01 : 7bit
			%10 : 6bit
			%11 : 5bit
	bit 4~3 ST1~ST0
			同期モード/スタートビット長/ストップビット長
					スタートビット	ストップビット
			%00 : 同期	0		0
			%01 : 〃	1		1
			%10 : 〃	1		1.5
			%11 : 非同期	1		2
	bit 2	 PE	パリティ有効/無効
			%0  : パリティ無効
			%1  : 〃      有効
	bit 1	 E/O	パリティ偶数/奇数
			%0  : 奇数パリティ
			%1  : 偶数〃

	※X680x0 ではキーボードとの通信に使用されているため、非同期 1/16 クロ
	 ックモード、データ長 8 ビット、ストップビット 1、パリティ無しで
	 2400bps の設定にしなければならない.

MFP RSR($e8802b):
	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬─┬─┬─┬─┬─┐
	  │BF│OE│PE│FE│ │ │SS│RE│
	  └─┴─┴─┴─┴─┴─┴─┴─┘
			  │ └ M/CIP
			  └ F/S or B

	bit 7	BF	バッファフル
			%0 : 受信バッファは空
			%1 : 〃		 にデータが入っている
	bit 6	OE	オーバーランエラー
			%0 : 正常動作
			%1 : オーバーランエラーが発生した
	bit 5	PE	パリティエラー
			%0 : 正常動作
			%1 : パリティエラーが発生した
	bit 4	FE	フレーミングエラー
			%0 : 正常動作
			%1 : フレーミングエラーが発生した
			     (ストップビットが見つからない)
	bit 3	F/S or B
			ファウンド/サーチまたはブレーク
			 同期モード時:
				%0 を書き込むとワードワーチモードになり、SYNC
				キャラクタと同じデータが受信されると %1 になる.
			非同期モード時:
				%0 : ブレークを検出した
				%1 : ブレーク状態ではない
	bit 2	M/CIP	マッチ/文字処理中
			 同期モード時:
				%0 : 受信ワードは SCR と一致していない
				%1 : 〃			    している
	bit 1	SS	シンクロナスストップ
			%0 : SCR と一致するキャラクタは取り込まない
			%1 : 〃			     も取り込む
	bit 0	RE	レシーバイネーブル
			%0 : レシーバディセーブル
			%1 : 〃      イネーブル

MFP TSR($e8802d):
	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬─┬─┬───┬─┐
	  │BE│UE│AT│ │ B│ H│ L│TE│
	  └─┴─┴─┴─┴─┴───┴─┘
			END

	bit 7	 BE	バッファエンプティ
			%0 : 送信バッファにデータが入っている
			%1 : 〃		 は空
	bit 6	 UE	アンダーランエラー
			%0 : 正常動作
			%1 : アンダーランが発生した
	bit 5	 AT	オートターンアラウンド
			%0 : 通常動作
			%1 : トランスミッタがディセーブルになると自動的にレシー
			     バをイネーブルする(レシーバイネーブル後、自動的に
			     クリアされる)
	bit 4	 END
			%0 : トランスミッタはイネーブルになっている
			%1 : 〃		     ディセーブルされている
	bit 3	 B	ブレーク
			%0 : 通常動作
			%1 : SO 端子(送信データ端子)をブレーク状態にする
			※非同期モード時のみ有効.
	bit 2~1 H~L	High/Low
			%00 : TE = %0 の時、SO 端子 = ハイインピーダンス
			%01 : 〃		    = Low
			%10 : 〃		    = High
			%11 : ループバックモード
	bit 0	 TE	トランスミッタイネーブル
			%0 : トランスミッタディセーブル
			%1 : 〃		   イネーブル

MFP UDR read($e8802f):
	bit  7   6			 0
	  ┌─┬─────────────┐
	  │ │		Key Code │
	  └─┴─────────────┘
	  └ Make/Break

	最後に押されたキー若しくは最後に離されたキーのキーコードが読み出される.
	一度読んだ後も次の入力が発生するまでは、最後の入力キーコードを保持する.

	bit 7	Make/Break
		%0 : キーが押された
		%1 : 〃    離された

MFP UDR write($e8802f):
	bit  7   6   5   4   3   2   1   0
	  ┌───────────────┐
	  │D7│D6│D5│D4│D3│D2│D1│D0│
	  └───────────────┘

	キーボードへの制御コマンドを書き込む.


※スプリアス割り込み
 MFP のレジスタを操作して割り込みを禁止する時、MPU の割り込みマスクレベルが禁
止しようとしている割り込みを受け付ける設定であった場合、レジスタを操作した瞬間
に割り込みが発生すると、割り込みを正しく処理できずにスプリアス割り込みが発生す
る. これを防ぐには MPU の割り込みマスクを設定して割り込みを受け付けないように
するか、スプリアス割り込みが呼び出されても何もせずに戻るルーチンに置き換えれば
よい.

==============================================================================

・キーボード制御コマンド

	bit  7   6   5   4		 0
	  ┌─┬─┬─┬─────────┐
	  │ 0│ 0│ │  TV CTRL Code │
	  └─┴─┴─┴─────────┘

	ディスプレイ制御信号を発生させる.

	bit 4~0 TV CTRL Code
		コード	 名称		機能				キー
		%00000 : ---		(無効)
		%00001 : Vol.up		音量 up				[↑]
		%00010 : Vol.down	〃   down			[↓]
		%00011 : Vol.normal	〃   標準			[,]
		%00100 : Call		チャンネルコール		[CLR]
		%00101 : CS down	テレビ画面(初期化)
		%00110 : Mute		消音				[0]
		%00111 : CH 16		(無効)
		%01000 : BR up		テレビ/コンピュータ画面切り替え(トグル)
									[.]
		%01001 : BR down	テレビ/外部入力切り替え(トグル)	[=]
		%01010 : BR 1/2		コントラストノーマル
		%01011 : CH up		チャンネル up			[→]
		%01100 : CH down	〃	   down			[←]
		%01101 : ---		(無効)
		%01110 : Power ON/OFF	電源 ON/OFF(トグル)
		%01111 : CS 1/2		スーパーインポーズ ON/OFF(トグル)
					コントラストダウン		[+]
		%10000 : CH 1		チャンネル 1			[1]
		%10001 : CH 2		〃	   2			[2]
		%10010 : CH 3		〃	   3			[3]
		%10011 : CH 4		〃	   4			[4]
		%10100 : CH 5		〃	   5			[5]
		%10101 : CH 6		〃	   6			[6]
		%10110 : CH 7		〃	   7			[7]
		%10111 : CH 8		〃	   8			[8]
		%11000 : CH 9		〃	   9			[9]
		%11001 : CH 10		〃	   10			[/]
		%11010 : CH 11		〃	   11			[*]
		%11011 : CH 12		〃	   12			[-]
		%11100 : CH 13		テレビ画面			[=]
		%11101 : CH 14		コンピュータ画面		[.]
		%11110 : CH 15		スーパーインポーズ ON/OFF(トグル)
					コントラストダウン		[+]
		%11111 : ---		〃
					コントラストノーマル
		※X1 コンパチモードの = . + は %11100 ~ %11110 の動作.

	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬─┬─┬───┬─┐
	  │ 0│ 1│ 0│ 0│ 0│   │ │
	  └─┴─┴─┴─┴─┴───┴─┘
					└ MSCTRL

	マウスコントロール信号を制御する.

	bit 0	MSCTRL
		%0 : MSCTRL を 'Low' にする
		%1 : 〃        'High' 〃

	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬─┬─┬───┬─┐
	  │ 0│ 1│ 0│ 0│ 1│   │ │
	  └─┴─┴─┴─┴─┴───┴─┘
					└ KEY EN

	キーデータの送出を許可/禁止する.
	禁止中もキースキャンは行うのでディスプレイ制御は可能.

	bit 0	KEY EN
		%0 : キーデータ送出禁止
		%1 : 〃		   許可

	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬─┬─┬─┬─┬─┐
	  │ 0│ 1│ 0│ 1│ 0│ 0│ │ │
	  └─┴─┴─┴─┴─┴─┴─┴─┘	__
					└ X68K/X1

	ディスプレイコントロールキーモードを選択する.

		     __
	bit 0	X68K/X1
		%0 : X1 コンパチモード
		%1 : X68000 モード

	キー	X68000 モード				X1 コンパチモード
	+	スーパーインポーズ ON/OFF(トグル)	スーパーインポーズ
	=	TV/外部入力切り替え(トグル)		TV
	.	TV/コンピュータ切り替え(トグル)		コンピュータ

	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬─┬─┬─┬───┐
	  │ 0│ 1│ 0│ 1│ 0│ 1│BRIGHT│
	  └─┴─┴─┴─┴─┴─┴───┘

	キーボード上の LED の明るさを選択する.

	bit 1~0 BRIGHT
		%00 : 明るい
		%01 : やや明るい
		%10 : やや暗い
		%11 : 暗い

	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬─┬─┬─┬─┬─┐
	  │ 0│ 1│ 0│ 1│ 1│ 0│ │ │
	  └─┴─┴─┴─┴─┴─┴─┴─┘
					└ CTRL EN

	本体からキーボードに要求するディスプレイ制御コマンドを受け付けるか否か
	を設定する.

	bit 0	CTRL EN
		%0 : 本体からのディスプレイ制御無効
		%1 : 〃			       有効

	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬─┬─┬─┬─┬─┐
	  │ 0│ 1│ 0│ 1│ 1│ 1│ │ │
	  └─┴─┴─┴─┴─┴─┴─┴─┘
					└ OPT.2 EN

	OPT.2 キーによるディスプレイ制御を許可/禁止する.

	bit 0	OPT.2 EN
		%0 : OPT.2 キーによるディスプレイ制御禁止
		%1 : 〃				     許可

	bit  7   6   5   4   3		 0
	  ┌─┬─┬─┬─┬───────┐
	  │ 0│ 1│ 1│ 0│ REP. DELAY │
	  └─┴─┴─┴─┴───────┘

	キーリピートが開始されるまでの時間を設定する.
	キーリピート開始までの時間は (REP. DELAY)×100+200ms で、リセット時は
	500ms に初期化される.

	bit  7   6   5   4   3		 0
	  ┌─┬─┬─┬─┬───────┐
	  │ 0│ 1│ 1│ 1│ REP. TIME  │
	  └─┴─┴─┴─┴───────┘

	キーリピートの間隔を設定する.
	キーリピート間隔は (REP. TIME)^2×5+30ms で、リセット時は 110ms に初
	期化される.

	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬─┬─┬─┬─┬─┐
	  │ 1│ │ │ │ │ │ │ │
	  └─┴─┴─┴─┴─┴─┴─┴─┘
		│ │ │ │ │ │ └ かな
		│ │ │ │ │ └ ローマ字
		│ │ │ │ └ コード入力
		│ │ │ └ CAPS
		│ │ └ INS
		│ └ ひらがな
		└ 全角

	キーボード上の LED の点灯/消灯を制御する. 各ビットが %0 で点灯、%1 で
	消灯.

	bit 6	全角
	bit 5	ひらがな
	bit 4	INS
	bit 3	CAPS
	bit 2	コード入力
	bit 1	ローマ字
	bit 0	かな


※以下のコマンドは Compact キーボード用(未確認).

	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬─┬─┬─┬─┬─┐
	  │ 0│ 1│ 0│ 0│ 0│ 1│ 1│ 1│
	  └─┴─┴─┴─┴─┴─┴─┴─┘

	キーボードの種類を判別する. このコマンドを出力後に $fe が入力されれば
	Compact のキーボードである.

	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬─┬─┬─┬─┬─┐
	  │ 0│ 1│ 0│ 0│ 0│ 1│ 0│ │
	  └─┴─┴─┴─┴─┴─┴─┴─┘
					└ NUM LED

	Compact キーボード上の NUM キー LED の点灯/消灯を制御する.

	bit 0	NUM LED
		%0 : 消灯
		%1 : 点灯

==============================================================================

・RTC

 RTC(リアルタイムクロック RP5C15)のレジスタは二つのバンクが同一アドレスに割り
当てられており、どちらのバンクをアクセスするかは MODE レジスタのビット 0 で設
定する. なお、時間を設定するレジスタは全て BCD フォーマットとなっている.


address	size	BANK 0			BANK 1
$e8a001	1.b	 1 秒カウンタ		CLKOUT セレクトレジスタ
$e8a003	1.b	10 秒	〃		Adjust
$e8a005	1.b	 1 分	〃		アラーム  1 分レジスタ
$e8a007	1.b	10 分	〃		〃	 10 分	〃
$e8a009	1.b	 1 時間	〃		〃	  1 時間〃
$e8a00b	1.b	10 時間	〃		〃	 10 時間〃
$e8a00d	1.b	曜日	〃		〃	 曜日	〃
$e8a00f	1.b	 1 日	〃		〃	  1 日	〃
$e8a011	1.b	10 日	〃		〃	 10 日	〃
$e8a013	1.b	 1 月	〃		(未使用)
$e8a015	1.b	10 月	〃		12/24 時間セレクタ
$e8a017	1.b	 1 年	〃		閏年カウンタ
$e8a019	1.b	10 年	〃		(未使用)
$e8a01b	1.b	MODE レジスタ		MODE レジスタ
$e8a01d	1.b	TEST 〃			TEST 〃
$e8a01f	1.b	RESET コントローラ	RESET コントローラ


RTC CLKOUT セレクトレジスタ($e8a001,BANK 1):
	bit  7		     3   2	 0
	  ┌─────────┬─────┐
	  │		   │ CLKOUT │
	  └─────────┴─────┘

	bit 2~0 CLKOUT
			CLKOUT 端子の出力波形選択
			%000 : ハイインピーダンス('H')(点灯)
			%001 : 16384Hz(点滅)
			%010 :  1024Hz( 〃 )
			%011 :   128Hz( 〃 )
			%100 :    16Hz( 〃 )
			%101 :     1Hz( 〃 )
			%110 :  1/60Hz( 〃 )
			%111 : 'L' レベル固定(消灯)
			※%101 : 立ち上がりで秒カウンタが進む
			 %110 : 〃	     分〃

RTC アジャストレジスタ($e8a003,BANK 1):
	bit  7			     1   0
	  ┌─────────────┬─┐
	  │			   │ │
	  └─────────────┴─┘
					Adjust

	bit 0	Adjust	秒カウンタアジャスト
			%0 : アジャスト OFF
			%1 : アジャスト ON
	※アジャストした場合、カウンタは 0 に戻るが、秒が 30 以上の場合は次の
	 分へ進む.

RTC 12/24 時間セレクタ($e8a015,BANK 1):
	bit  7			     1   0
	  ┌─────────────┬─┐
	  │			   │ │
	  └─────────────┴─┘
					12/24

	bit 0	12/24	12 時間計/24 時間計選択
			%0 : 12 時間計
			%1 : 24 〃
	※12 時間計の場合、10 時間レジスタのビット 1 が午前/午後を表わす.
	 %0 : 午前
	 %1 : 午後

RTC 閏年カウンタ($e8a017,BANK 1):
	bit  7			 2   1   0
	  ┌───────────┬───┐
	  │			 │ Leap │
	  └───────────┴───┘

	bit 1~0	閏年から経過した年数
			%00 : 今年が閏年
			%01 : 三年後が閏年
			%10 : 二年〃
			%11 : 来年が閏年
	※西暦を 4 で割った余りを設定すればよい.

RTC MODE レジスタ($e8a01b):
	bit  7		 4   3   2   1   0
	  ┌───────┬─┬─┬─┬─┐
	  │		 │ │ │ │ │
	  └───────┴─┴─┴─┴─┘
			  │ │	└ BANK 1/0
			  │ └ アラーム EN
			  └─── タイマ EN

	bit 3	タイマ EN
			タイマ動作許可/禁止
			%0 : タイマ動作禁止(秒以降のカウンタは停止)
			%1 : 〃        許可(通常動作)
	bit 2	アラーム EN
			アラーム動作許可/禁止
			%0 : アラーム動作禁止
			%1 : 〃		 許可
	bit 0	BANK 1/0
			レジスタバンク選択
			%0 : BANK 0
			%1 : BANK 1

RTC TEST レジスタ($e8a01d):
	bit  7		 4   3   2   1   0
	  ┌───────┬───────┐
	  │		 │ │ │ │ │
	  └───────┴───────┘
			   TEST3~TEST0

	※通常は全て %0 を設定すること.

RTC RESET コントローラ($e8a01f):
	bit  7		 4   3   2   1   0
	  ┌───────┬─┬─┬─┬─┐
	  │		 │ │ │ │ │
	  └───────┴─┴─┴─┴─┘
			  │ │ │ └ アラーム RESET
			  │ │ └─── タイマ RESET
			  │ └ 16Hz ON
			  └──  1Hz ON

	bit 3	 1Hz ON
			Alarm 端子からの 1Hz パルス出力制御
			%0 : 出力 ON
			%1 : 〃   OFF
	bit 2	16Hz ON
			Alarm 端子からの 16Hz パルス出力制御
			%0 : 出力 ON
			%1 : 〃   OFF
	bit 1	タイマ RESET
			秒未満の桁のカウンタのリセット/解除
			%0 : 通常動作
			%1 : カウンタリセット
	bit 0	アラーム RESET
			%0 : アラームリセット解除
			%1 : 〃		     する

==============================================================================

・プリンタ

address	size	R/W
$e8c001	1.b	  W	プリンタデータ
$e8c003	1.b	  W	プリンタストローブ


プリンタデータ($e8c001):
	プリンタに出力するデータを書き込む.

プリンタストローブ($e8c003):
	bit  7			     1   0
	  ┌─────────────┬─┐
	  │			   │ │
	  └─────────────┴─┘
					STR0

	bit 0	STR0	STROBE 信号
			%0 : STROBE 信号を Low  レベルにする
			%1 : 〃		   High 〃

==============================================================================

・システムポート

address	size	R/W
$e8e001	1.b	R/W	#1	コンピュータ画面コントラスト
$e8e003	1.b	R/W	#2	ディスプレイ/3D スコープ制御
$e8e005	1.b	  W	#3	カラーイメージユニット制御
$e8e007	1.b	R/W	#4	キーボード/NMI/ドットクロック制御
$e8e009	1.b	  W	#5	ROM/DRAM ウェイト数制御
$e8e00b	1.b	R	#6	MPU 種別/動作クロック読み出し
$e8e00d	1.b	  W	#7	SRAM 書き込み制御
$e8e00f	1.b	  W	#8	本体電源 OFF 制御


System Port #1($e8e001):
	bit  7		 4   3		 0
	  ┌───────┬───────┐
	  │		 │	CONTRAST │
	  └───────┴───────┘

	bit 3~0 CONTRAST
			コンピュータ画面コントラスト
			%0000 : 最も暗い
			  …
			%1111 : 最も明るい

System Port #2($e8e003):
	bit  7		 4   3   2   1   0
	  ┌───────┬─┬─┬─┬─┐
	  │		 │ │ │ │ │
	  └───────┴─┴─┴─┴─┘
			  │   │ └ 3D-R
			 TV CTRL  └── 3D-L

	bit 3	TV CTRL
			(書き込み時)
			%0 : ディスプレイ制御信号を 0 にする
			%1 : 〃			    1 〃
			(読み込み時)
			%0 : ディスプレイの電源は ON
			%1 : 〃			  OFF
	bit 1	3D-L
			%0 : 3D スコープ左シャッター CLOSE
			%1 : 〃			     OPEN
	bit 0	3D-R
			%0 : 3D スコープ右シャッター CLOSE
			%1 : 〃			     OPEN

System Port #3($e8e005):
	bit  7	     5   4		 0
	  ┌─────┬─────────┐
	  │	   │		 │
	  └─────┴─────────┘
			カラーイメージユニット制御

	bit 4~0	カラーイメージユニット制御
			書き込んだ値は、そのまま IMAGE IN 端子の 17~21 ピンに
			出力される.

System Port #4($e8e007):
	bit  7		 4   3   2   1   0
	  ┌───────┬─┬─┬─┬─┐
	  │		 │ │ │ │ │
	  └───────┴─┴─┴─┴─┘
			  │ │ └ HRL
			  │ └ NMI RESET
			  └ KEY CTRL

	bit 3	KEY CTRL
			(書き込み時)
			%0 : キーデータ送信不可
			%1 : 〃		   可
			(読み込み時)
			%0 : キーボードコネクタが抜かれている
			%1 : 〃			 差し込まれている
	bit 2	NMI RESET
			%0 : NMI リセットしない
			%1 : 〃		 する
			※NMI の処理が終了した時点で %1 を書き込む
	bit 1	HRL	高解像度モード時のドットクロック切り替え
			%0 : 分周比を 1/2、1/3、1/6 にする(通常)
			%1 : 〃       1/2、1/4、1/8 〃

System Port #5($e8e009):
	bit  7		 4   3		 0
	  ┌───────┬───────┐
	  │	ROM Wait │  DRAM Wait │
	  └───────┴───────┘

	bit 7~4 ROM Wait
			ROM アクセス時のウェイト数
			設定値 +2 のウェイトがかかる.
	bit 3~0 DRAM Wait
			DRAM アクセス時のウェイト数
			設定値 +2 のウェイトがかかる.
			ただし、$0 の場合スタティックカラム動作中は 0 ウェイト、
			ページ間を跨ぐ時は 4 ウェイト.
	※X68030 で追加されたポート.
	※$4(6 ウェイト)で 16MHz 相当、$a(12 ウェイト)で 10MHz 相当モード.

System Port #6($e8e00b):
	bit  7		 4   3		 0
	  ┌───────┬───────┐
	  │	CPU Type │  CPU Clock │
	  └───────┴───────┘

	bit 7~4 CPU Type
			%1100 : 68040
			%1101 : 68030
			%1110 : 68020
			%1111 : 68000
	bit 3~0 CPU Clock
			%1001 : 50MHz
			%1010 : 40〃
			%1011 : 33〃
			%1100 : 25〃
			%1101 : 20〃
			%1110 : 16〃
			%1111 : 10〃
	※X68000 XVI で追加されたポート. それ以前の機種では $ff が読み出される.
	 また、X68030 では 16/10MHz 相当モードであっても $dc である.

System Port #7($e8e00d):
	bit  7   6   5   4   3   2   1   0
	  ┌───────────────┐
	  │  SRAM Write Enable Control │
	  └───────────────┘

	bit 7~0	SRAM Write Enable Control
			$31 を書き込むと SRAM への書き込みが許可になり、それ以
			外の値を書き込むと禁止になる.

System Port #8($e8e00f):
	bit  7   6   5   4   3   2   1   0
	  ┌───────┬───────┐
	  │		 │		 │
	  └───────┴───────┘
			  Power Off Control

	bit 3~0	Power Off Control
			$00、$0f、$0f を順に書き込むと本体の電源が OFF になる.

==============================================================================

・OPM

 OPM(Fm Operator Type-m YM2151)のレジスタへの書き込みは、レジスタ番号設定ポー
トにアクセスするレジスタ番号を設定してからデータポートにデータを書き込む手順で
行う. レジスタからの読み込むは出来ず、常にステータスレジスタが読み出される.


address	size	R/W
$e90001	1.b	  W	レジスタ番号設定ポート
$e90003	1.b	R	ステータスレジスタ
〃	〃	  W	データポート


レジスタ番号設定ポート($e90001):
	bit  7				 0
	  ┌───────────────┐
	  │		  レジスタ番号 │
	  └───────────────┘

	次に書き込むレジスタ番号を設定する.

データポート($e90003):
	bit  7				 0
	  ┌───────────────┐
	  │			 データ │
	  └───────────────┘

	レジスタへ書き込む値を設定する.

ステータスレジスタ($e90003):
	bit  7   6		 2   1   0
	  ┌─┬─────────┬─┬─┐
	  │ B│		 │ │ │
	  └─┴─────────┴─┴─┘
				  │ └ 1ST(B)
				  └── 1ST(A)

	bit 7	B	書き込み BUSY フラグ
			%0 : 通常動作	     (次のデータは書き込み可  )
			%1 : データ書き込み中(〃		  不可)
	bit 1	1ST(A)
			%0 : タイマ A はオーバーフローしていない
			%1 : 〃       オーバーフロー発生
	bit 0	1ST(B)
			%0 : タイマ B はオーバーフローしていない
			%1 : 〃       オーバーフロー発生


OPM レジスタ一覧

num
$00		---
$01		テストレジスタ
$02~$07	---
$08		KON レジスタ
$09~$0e	---
$0f		ノイズジェネレータ制御レジスタ
$10		タイマ A 設定レジスタ(上位)
$11		〃		     (下位)
$12		タイマ B 設定レジスタ
$13		---
$14		タイマ制御レジスタ
$15~$17	---
$18		LFO 周波数設定レジスタ
$19		PMD/AMD 設定レジスタ
$1a		---
$1b		汎用出力/LFO 出力波形制御レジスタ
$1c~$1f	---
$20~$27	チャンネル構成/出力制御レジスタ	┐
$28~$2f	KC(キーコード)レジスタ		│1 チャンネルごとに設定
$30~$37	KF(キーフラクション)レジスタ	│
$38~$3f	PMS/AMS 設定レジスタ		┘
$40~$5f	DT1/MUL 設定レジスタ		┐
$60~$7f	TL(トータルレベル)設定レジスタ	│
$80~$7f	KS/AR 設定レジスタ		│1 スロットごとに設定
$a0~$bf	AMS-EN/D1R 設定レジスタ		│
$c0~$df	DT2/D2R 設定レジスタ		│
$e0~$ff	D1L/RR 設定レジスタ		┘


$01(テストレジスタ):
	bit  7			 2   1   0
	  ┌───────────┬─┬─┐
	  │		  TEST │ │ │
	  └───────────┴─┴─┘
				└─│─┘
				LFO RESET

	bit 7~2,0	TEST
			テスト用の為全て 0 にする.
	bit 1		LFO RESET
			%0 : LFO 出力をスタートさせる
			%1 : LFO をリセットする

$08(KON レジスタ):
	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬─┬─┬─────┐
	  │ │C2│C1│M2│M1│ CH No. │
	  └─┴─┴─┴─┴─┴─────┘

	bit 6		C2
			%0 : C2 出力 OFF
			%1 : 〃      ON
	bit 5		C1
			%0 : C1 出力 OFF
			%1 : 〃      ON
	bit 4		M2
			%0 : M2 出力 OFF
			%1 : 〃      ON
	bit 3		M1
			%0 : M1 出力 OFF
			%1 : 〃      ON
	bit 2~0	CH No.
			チャンネル番号選択
			%000 : チャンネル 1
				…
			%111 : チャンネル 8

$0f(ノイズジェネレータ制御レジスタ):
	bit  7   6   5   4		 0
	  ┌─┬───┬─────────┐
	  │NE│   │	  NFRQ │
	  └─┴───┴─────────┘

	bit 7	 NE	ノイズイネーブル
			%0 : ノイズ出力 OFF
			%1 : 〃		ON
	bit 4~0 NFRQ	ノイズ周波数
						  4000
			ノイズ周波数 Fnoise = ───── (kHz)
						32×NFRQ
						    2^17-1
			ノイズ周期   Tnoise = ──────── (Hz)
						Fnoise×(10^3)

$10(タイマ A 設定レジスタ):
	bit  7				 0
	  ┌───────────────┐
	  │		   CLKA(上位) │
	  └───────────────┘

$11(タイマ A 設定レジスタ):
	bit  7			 2   1   0
	  ┌───────────┬───┐
	  │			 │   │
	  └───────────┴───┘
				  CLKA(下位)

	CLKA = CLKA(上位)<<2 + CLKA(下位)

			 64×(1024-CLKA)
	タイマ時間 Ta = ───────── (ms)
				4000

$12(タイマ B 設定レジスタ):
	bit  7				 0
	  ┌───────────────┐
	  │			  CLKB │
	  └───────────────┘

			 1024×(256-CLKB)
	タイマ時間 Tb = ───────── (ms)
				4000

$14(タイマ制御レジスタ):
	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬───┬───┬───┐
	  │ │ │ │ │ │ │ │ │
	  └─┴─┴───┴───┴───┘
	  │   │ │ │ │ │ └ LOAD(A)
	  CSM   │ │ │ │ └── LOAD(B)
		  │ │ │ └ IRQEN(A)
		  │ │ └── IRQEN(B)
		  │ └ F-RESET(A)
		  └── F-RESET(B)

	bit 7	CSM
			%0 : 通常動作
			%1 : タイマ A のオーバーフロー時に全スロット ON
	bit 5	F-RESET(B)
			%0 : 通常動作
			%1 : タイマ B オーバーフローフラグリセット
	bit 4	F-RESET(A)
			%0 : 通常動作
			%1 : タイマ A オーバーフローフラグリセット
	bit 3	IRQEN(B)
			%0 : タイマ B 割り込みディセーブル
			%1 : 〃		      イネーブル
	bit 2	IRQEN(A)
			%0 : タイマ A 割り込みディセーブル
			%1 : 〃		      イネーブル
	bit 1	LOAD(B)
			%0 : タイマ B 動作停止
			%1 : 〃		  開始
	bit 0	LOAD(A)
			%0 : タイマ A 動作停止
			%1 : 〃		  開始

$18(LFO 周波数設定レジスタ):
	bit  7				 0
	  ┌───────────────┐
	  │			  LFRQ │
	  └───────────────┘

	LFO の発振周波数を設定する.

$19(PMD/AMD 設定レジスタ):
	bit  7   6			 0
	  ┌─┬─────────────┐
	  │ F│		 PMD/AMD │
	  └─┴─────────────┘

	bit 7	 F	下位 7bit を PMD/AMD のどちらに設定するかの選択
			%0 : AMD
			%1 : PMD
	bit 6~0 PMD/AMD
			LFO の出力レベル設定

$1b(汎用出力/LFO 出力波形制御レジスタ):
	bit  7   6   5		 2   1   0
	  ┌─┬─┬───────┬───┐
	  │ │ │		 │  W │
	  └─┴─┴───────┴───┘
	  CT1 CT2

	bit 7	 CT1	ADPCM クロック切り替え
			%0 : 8MHz
			%1 : 4〃
	bit 6	 CT2	FDC READY 端子制御
			%0 : 通常動作
			%1 : 強制的に READY 状態にする
	bit 1~0 W	LFO 出力波形選択
			%00 : 鋸波
			%01 : 矩形波
			%10 : 三角波
			%11 : ノイズ
	※OPM レジスタは読み出しが出来ないので、ADPCM/FDC/LFO のうち一部だけを
	 変更する場合の為に設定値が IOCS ワーク $9da.b に保存されている. 変更
	 しない設定はワークの値を用い、また値を変更した場合はワークも更新する
	 こと.


$20~$27(チャンネル構成/出力制御レジスタ):
	bit  7   6   5	     3   2	 0
	  ┌─┬─┬─────┬─────┐
	  │ │ │	 FL │   CON │
	  └─┴─┴─────┴─────┘
	  │ └ L-CH EN
	  └── R-CH EN

	bit 7	 R-CH EN
			%0 : 右チャンネルへの出力 OFF
			%1 : 〃			  ON
	bit 6	 L-CH EN
			%0 : 左チャンネルへの出力 OFF
			%1 : 〃			  ON
	bit 5~3 FL	M1 スロットのフィードバック率
			%000 : 0(フィードバック OFF)
			%001 :  π/16
			%010 :  π/8
			%011 :  π/4
			%100 :  π/2
			%101 :  π
			%110 : 2π
			%111 : 4π
	bit 2~0 CON	Connection(スロットの接続方法)
			%000 :	M1 → C1 → M2 → C2 → OUT
			%001 :	C1 ┐
				M1 ┴→ M2 → C2 → OUT
			%010 :	   M1 ┐
				C1 → M2 ┴→ C2 → OUT
			%011 :	   M2 ┐
				M1 → C1 ┴→ C2 → OUT
			%100 :	M1 → C1 ┐
				M2 → C2 ┴→ OUT
			%101 :	  ┌→ C1 ┐
				M1 ┼→ M2 ┼→ OUT
				  └→ C2 ┘
			%110 :	M1 → C1 ┐
				   M2 ┼→ OUT
				   C2 ┘
			%111 :	M1 ┐
				C1 ┼→ OUT
				M2 ┤
				C2 ┘

$28~$2f(KC レジスタ):
	bit  7   6	 4   3		 0
	  ┌─┬─────┬───────┐
	  │ │   OCT │	  NOTE │
	  └─┴─────┴───────┘

	bit 6~4 OCT	オクターブ指定
	bit 3~0 NOTE	NOTE 指定
			%0000 : D#
			%0001 : E (ミ)
			%0010 : F (ファ)
			%0100 : F#
			%0101 : G (ソ)
			%0110 : G#
			%1000 : A (ラ)
			%1001 : A#
			%1010 : B (シ)
			%1100 : C (ド)
			%1101 : C#
			%1110 : D (レ)
	※X680x0 では OPM に本来のクロック 3.579545MHz ではなく、4MHz を与えて
	 いるので、約 1 音(192.27 セント)高い音が出る.

$30~$37(KF レジスタ):
	bit  7			 2   1   0
	  ┌───────────┬───┐
	  │		   KF │	 │
	  └───────────┴───┘

	bit 7~2 KF	キーフラクション
			1 音(100 セント)間を 1.6 セント(=100/64)単位で音程の微
			調整を行う.

$38~$3f(PMS/AMS 設定レジスタ):
	bit  7   6	 4   3   2   1   0
	  ┌─┬─────┬───┬───┐
	  │ │   PMS │	 │ AMS │
	  └─┴─────┴───┴───┘

	bit 6~4 PMS	LFO による周波数変調度設定
			%000 :    0 セント
			%001 : ±  5 〃
			%010 : ± 10 〃
			%011 : ± 20 〃
			%100 : ± 50 〃
			%101 : ±100 〃
			%110 : ±400 〃
			%111 : ±700 〃
	bit 1~0 AMS	LFO による出力レベル変調度設定
			%00 : 0dB
			%01 : 23.90625dB
			%10 : 47.8125 〃
			%11 : 95.625  〃
	※数値はいずれも LFO の出力レベルが最大の時の値.

$40~$5f(DT1/MUL 設定レジスタ):
	bit  7   6	 4   3		 0
	  ┌─┬─────┬───────┐
	  │ │   DT1 │	   MUL │
	  └─┴─────┴───────┘

	bit 6~4 DT1
			KC、KF で与えた周波数をさらにずらす量の設定(微調整)
	bit 3~0 MUL
			KC、KF で与えた周波数の倍率の設定(0 なら 0.5 倍)

$60~$7f(TL 設定レジスタ):
	bit  7   6			 0
	  ┌─┬─────────────┐
	  │ │		   TL │
	  └─┴─────────────┘

	bit 6~0 TL	トータルレベル
			各スロットの出力レベルを 0.75dB 単位で設定する. TL = 0
			の時が最も出力信号レベルが大きく、TL = $7f の時が最も
			小さい.
			Lmax = 最大出力レベル
			出力レベル L = Lmax×10^(-1.75/20×TL)

$80~$7f(KS/AR 設定レジスタ):
	bit  7   6   5   4		 0
	  ┌───┬─┬─────────┐
	  │ KS │ │	   AR │
	  └───┴─┴─────────┘

	bit 7~6 KS
			KC によるアタック、ファーストディケイ、セカンドディケ
			イ、リリース時間の変化量の設定. 各設定値のレートに対し、
			int(int(KC/4)/(2^(3-KS)))を加える.
	bit 4~0 AR	アタックレート
			キーオンされてから減衰量が 0dB になるまでの時間の設定.

$a0~$bf(AMS-EN/D1R 設定レジスタ):
	bit  7   6   5   4		 0
	  ┌─┬───┬─────────┐
	  │ │   │	   D1R │
	  └─┴───┴─────────┘
	 AMS-EN

	bit 7	 AMS-EN
			LFO による出力レベル変調
			%0 : 変調をかけない
			%1 : 〃    かける
	bit 4~0 D1R	ファーストディケイ時間
			ファーストディケイからセカンドディケイに移るまでの時間.

$c0~$df(DT2/D2R 設定レジスタ):
	bit  7   6   5   4		 0
	  ┌───┬─┬─────────┐
	  │ DT2 │ │	   D2R │
	  └───┴─┴─────────┘

	bit 7~6 DT2	KC、KF で与えた周波数をさらにずらす量
			%00 : +  0 セント(×1.00 倍)
			%01 : +600 〃	 (×1.41 倍)
			%10 : +781 〃	 (×1.57 倍)
			%11 : +950 〃	 (×1.73 倍)
	bit 4~9 D2R	セカンドディケイ時間
			セカンドディケイから完全な消音までの時間.

$e0~$ff(D1L/RR 設定レジスタ):
	bit  7   6   5   4   3   2   1   0
	  ┌───────┬───────┐
	  │	   D1L │	   RR │
	  └───────┴───────┘

	bit 7~4 D1L
			ファーストディケイからセカンドディケイに移るときのレベ
			ル Ld1 を決定する.
			0 ≦ D1L ≦ $e のとき、 Ld1 = -3×D1L (dB)
			D1L = $f のとき、	Ld1 = -3×D1L -48 (dB)
	bit 3~0 RR	リリース時間
			キーオフしてから音が消えるまでの時間.

==============================================================================

・ADPCM

address	size	R/W
$e92001	1.b	R	ADPCM ステータス
〃	〃	  W	ADPCM コマンド
$e92003	1.b	R/W	データ入出力
$e9a005	1.b	R/W	ADPCM サンプルレート/出力制御


ADPCM ステータス($e92001):
	bit  7   6   5			 0
	  ┌─┬─┬───────────┐
	  │ │ 1│		    0 │
	  └─┴─┴───────────┘
	 PLAY/REC

	bit 7	PLAY/REC
		%0 : 再生中
		%1 : 録音中/スタンバイ中

ADPCM コマンド($e92001):
	bit  7		     3   2   1   0
	  ┌─────────┬─┬─┬─┐
	  │		  0 │ │ │SP│
	  └─────────┴─┴─┴─┘
				│ └ PLAY ST
				└ REC ST

	bit 2	REC ST
		%0 : 通常動作
		%1 : ADPCM 録音開始
	bit 1	PLAY ST
		%0 : 通常動作
		%1 : ADPCM 再生開始
	bit 0	SP
		%0 : 通常動作
		%1 : 録音/再生動作停止

データ入出力($e92003):
	bit  7		 4   3		 0
	  ┌───────┬───────┐
	  │	Data n+1 │	 Data n │
	  └───────┴───────┘

	ADPCM データの入出力を行うレジスタ. 4 ビットのサンプリングデータを 2
	個一組で入出力する. サンプリングデータは最上位ビットが符号で、残りが絶
	対値となっている.

ADPCM サンプルレート/出力制御($e9a005):
	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬─┬───┬───┐
	  │ │ │ │ │	 │	 │
	  └─┴─┴─┴─┴───┴───┘
	  │	│ PC5 PC4 │	  └ PCM PAN
	  │	│	  └ Sampling Rate
	  │	└ IOA5
	  └ IOA6

	bit 7	 IOA6	ジョイスティック #1 トリガ B
			%0 : 通常動作
			%1 : B ボタンが押された状態にする
	bit 6	 IOA5	ジョイスティック #1 トリガ A
			%0 : 通常動作
			%1 : A ボタンが押された状態にする
	bit 5	 PC5	ジョイスティック #2 コントロール
			%0 : 通常動作
			%1 : 操作禁止
	bit 4	 PC4	ジョイスティック #1 コントロール
			%0 : 通常動作
			%1 : 操作禁止
	bit 3~2 Sampling Rate
			ADPCM サンプリングレート切り替え
							 4MHz	 8MHz
			%00 : 基本クロックの 1/1024	(3.9k	 7.8k)
			%01 : 〃	     1/768	(5.2k	10.4k)
			%10 : 〃	     1/512	(7.8k	15.6k)
			%11 : (未使用)
	bit 1~0 PCM PAN
			ADPCM 出力制御
			%00 : 左右とも ON
			%01 : 右のみ ON
			%10 : 左のみ ON
			%11 : 左右とも OFF
	※基本クロックは OPM レジスタ $1b の bit 7 で選択する.

==============================================================================

・FDC

address	size	R/W
$e94001	1.b	R	FDC ステータスレジスタ
〃	〃	  W	FDC コマンドレジスタ
$e94003	1.b	R	FDC データレジスタ
〃	〃	  W	FDC コマンドレジスタ
$e94005	1.b	R	ドライブステータス
〃	〃	  W	ドライブオプション信号制御
$e94007	1.b	  W	アクセスドライブセレクト等


FDC ステータスレジスタ($e94001):
	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬─┬─┬─┬─┬─┐
	  │ │ │ │ │ │ │ │ │
	  └─┴─┴─┴─┴─┴─┴─┴─┘
	  RQM DIO NDM CB  D3B D2B D1B D0B

	bit 7	 RQM	Request for Master
			%0 : FDC のデータ転送準備が出来ていない
			%1 : 〃				 いる
	bit 6	 DIO	Data Input/Output
			%0 : ホストから FDC への転送
			%1 : FDC からホストへの転送
	bit 5	 NDM	Non-DMA Mode
			%0 : Non-DMA モードでのデータ転送中でない
			%1 : 〃				   である
			※C-PHASE、R-PHASE では常に %0.
	bit 4	 CB	FDC Busy
			%0 : FDC 動作中でない
			%1 : FDC 動作中
			※シーク/キャリブレートの E-PHASE ではセットされない.
	bit 3~0 D3B~D0B
			FDn Busy
			%0 : ドライブはシーク中/シーク完了割り込み保留中でない
			%1 : 〃						である

FDC コマンドレジスタ($e94001):
	初期化等のコマンド(SET STANDBY、RESET STANDBY、SOFTWARE RESET の指定を
	行うレジスタ.

FDC データレジスタ($e94003):
	データの入出力を行うレジスタ.

FDC コマンドレジスタ($e94003):
	通常のコマンドの指定を行うレジスタ.

IOC ドライブステータス($e94005):
	bit  7   6   5			 0
	  ┌─┬─┬───────────┐
	  │ │ │		    0 │
	  └─┴─┴───────────┘
	  │ └ ERROR DISK
	  └ DISK IN

	bit 7	DISK IN
		%0 : ディスク非挿入状態
		%1 : 〃      挿入状態
	bit 6	ERROR DISK
		%0 : ディスク誤挿入ではない
		%1 : ディスク誤挿入(bit 7 も %1 になる)

IOC ドライブオプション信号制御($e94005):
	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬─┬─┬─┬─┬─┐
	  │ │ │ │ 0│ │ │ │ │
	  └─┴─┴─┴─┴─┴─┴─┴─┘
	  │ │ │	  │ │ │ └ DRIVE #0
	  │ │ │	  │ │ └── DRIVE #1
	  │ │ │	  │ └──── DRIVE #2
	  │ │ │	  └────── DRIVE #3
	  │ │ └ EJECT ON/OFF
	  │ └ EJECT MASK
	  └ LED CTRL

	bit 7	LED CTRL
		%0 : FD アクセスランプを消灯する
		%1 : 〃			点滅する
		※メディア非挿入状態のときのみ有効.
	bit 6	EJECT MASK
		%0 : イジェクトボタン有効(イジェクトボタン上の LED が 点灯)
		%1 : 〃		     無効(〃			      消灯)
	bit 5	EJECT ON/OFF
		%0 : メディアをイジェクトしない
		%1 : 〃			 する
	bit 3~0
		DRIVE #3~#0
		%1 → %0 の変化時、bit 7~5 で選択したオプション機能が働く.

IOC アクセスドライブセレクト等($e94007):
	bit  7   6   5   4   3   2   1   0
	  ┌─┬───┬─┬───┬───┐
	  │ │  0 │ │  0 │   │
	  └─┴───┴─┴───┴───┘
	  │		│		└ ACCESS DRIVE
	  │		└ 2HD/2DD
	  └ MOTOR ON

	bit 7	MOTOR ON
		%0 : ドライブセレクトディセーブル/モータ OFF
						(アクセスランプは緑色になる)
		%1 : 〃		     イネーブル  /モータ ON
						(〃		 赤色〃    )
	bit 4	2HD/2DD
		%0 : 2HD ディスク
		%1 : 2DD/2D ディスク
		※X680x0 内蔵ドライブでは 2HD のみ使用可能.
	bit 1~0
		ACCESS DRIVE
		アクセスするドライブ番号を設定する.

==============================================================================

・SASI

address	size	R/W
$e96001	1.b	R/W	SASI データ入出力
$e96003	1.b	R	SASI ステータス入力
〃	〃	  W	SEL 信号 H
$e96005	1.b	  W	データ任意
$e96007	1.b	  W	SEL 信号 L


SASI データ入出力($e96001):
	 データの入出力ポート. このポートにアクセスすると自動的に REQ-ACK ハ
	ンドシェークが行われる.

SASI ステータス入力($e96003):
	bit  7	     5   4   3   2   1   0
	  ┌─────┬─┬─┬─┬─┬─┐
	  │	   │ │ │ │ │ │
	  └─────┴─┴─┴─┴─┴─┘
			MSG C/D I/O BSY REQ

	bit 4	MSG	Message
			%0 : DATA ラインの内容はメッセージバイトではない
			%1 : 〃					である
	bit 3	C/D	Command/Data
			%0 : DATA ラインの内容はデータ
			%1 : 〃			コマンド/ステータス
	bit 2	I/O	Input/Output
			%0 : ホスト→コントローラ(Output)
			%1 : コントローラ→ホスト(Input)
	bit 1	BSY	BUSY
			%0 : BUSY 状態ではない
			%1 : 〃       である
	bit 0	REQ	Request
			%0 : 通常動作
			%1 : コントローラがホストにデータ転送を要求している

SEL 信号 H($e96003):
	書き込まれたデータを SASI バスに出力し、SEL 信号を '0'(H レベル)にする.

データ任意($e96005):
	RESET 信号を約 300μs 間 '1'(L レベル)にする.

SEL 信号 H($e96007):
	書き込まれたデータを SASI バスに出力し、SEL 信号を '1'(L レベル)にする.

==============================================================================

・SPC

address	size	R/W
$e96021	1.b	R	BDID (Bus Device ID)
〃	〃	  W	〃
$e96023	1.b	R/W	SCTL (SPC Control)
$e96025	1.b	R/W	SCMD (SPC Command)
$e96029	1.b	R	INTS (Interrupt Sense)
〃	〃	  W	〃
$e9602b	1.b	R	PSNS (Phase Sense)
〃	〃	  W	SDGC (SPC Diag Control)
$e9602d	1.b	R	SSTS (SPC Status)
$e9602f	1.b	R	SERR (SPC Error Status)
$e96031	1.b	R/W	PCTL (Phase Control)
$e96033	1.b	R	MBC  (Modified Byte Counter)
$e96035	1.b	R/W	DREG (Data Register)
$e96037	1.b	R	TEMP (Temporary Register)
〃	〃	  W	〃
$e96039	1.b	R/W	TCH  (Transfer Counter High)
$e9603b	1.b	R/W	TCM  (Transfer Counter Mid)
$e9603d	1.b	R/W	TCL  (Transfer Counter Low)

※SCSI ボードの場合は $ea0001~$ea001d.


BDID read($e96021):
	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬─┬─┬─┬─┬─┐
	  │#7│#6│#5│#4│#3│#2│#1│#0│
	  └─┴─┴─┴─┴─┴─┴─┴─┘
	  ID

	設定した ID 番号のビットが %1 になったデータが読み出される.

BDID write($e96021):
	bit  7   6   5   4   3   2   1   0
	  ┌─────────┬─────┐
	  │		   │   ID │
	  └─────────┴─────┘

	自分自身の ID 番号を設定する.

SCTL($e96023):
	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬─┬─┬─┬─┬─┐
	  │ │ │ │ │ │ │ │ │
	  └─┴─┴─┴─┴─┴─┴─┴─┘
	  │ │ │ │ │ │ │ └ Interrupt Enable
	  │ │ │ │ │ │ └ Reselect Enable
	  │ │ │ │ │ └ Select Enable
	  │ │ │ │ └ Parity Enable
	  │ │ │ └ Arbitration Enable
	  │ │ └ Diag Mode
	  │ └ Control Reset
	  └ Reset&Disable

	bit 7	Reset&Disable
			SPC 内レジスタ及び制御回路のリセット
			%0 : 通常動作
			%1 : リセットする
	bit 6	Control Reset
			SPC のデータ転送制御回路のリセット
			%0 : 通常動作
			%1 : リセットする
	bit 5	Diag Mode
			%0 : 通常動作
			%1 : SPC を自己診断モードにする
	bit 4	Arbitration Enable
			アービトレーションフェーズの実行可否制御
			%0 : アービトレーションフェーズは行わない
			%1 : セレクション/リセレクションフェーズの前にアービト
			     レーションフェーズを行う
	bit 3	Parity Enable
			SCSI バスのデータラインのパリティチェック
			%0 : パリティチェックをしない
			%1 : 〃		       する
	bit 2	Select Enable
			セレクションへの応答制御
			%0 : セレクションフェーズに応答しない
			%1 : 〃			       する
	bit 1	Reselect Enable
			リセレクションへの応答制御
			%0 : リセレクションフェーズに応答しない
			%1 : 〃				 する
	bit 0	Interrupt Enable
			SPC 割り込み制御
			%0 : 割り込み発生禁止
			%1 : 〃		 許可
			※割り込み禁止状態でも、割り込み要因は INTS レジスタに
			 反映される.

SCMD($e96025):
	bit  7	     5   4   3   2   1   0
	  ┌─────┬─┬─┬─────┐
	  │	   │ │ │ │ │ │
	  └─────┴─┴─┴─────┘
		│	│ │	  └ Transfer Modifire
		│	│ └ Intercept Transfer
		│	└ RST Out
		└ Command Code

	bit 7~5 Command Code
			SPC への動作指示
			%000 : Bus Release
			%001 : Select
			%010 : Reset ATN
			%011 : Set ATN
			%100 : Transfer
			%101 : Transfer Pause
			%110 : Reset ACK/REQ
			%111 : Set ACK/REQ
	bit 4	 RST Out
			SCSI バスの RST(リセット)信号制御
			%0 : RTS を %0(High レベル)にする(通常動作)
			%1 : 〃     %1(Low  〃    )にする
	bit 3	 Intercept Transfer
			マニュアル転送時のデータバッファ保持
			%0 : バッファ内容は保持されない
			%1 : 〃		       される
	bit 2	 Program Transfer
			%0 : DMA で転送を行う(DREQ は出力される  )
			%1 : CPU 〃	     (〃	 されない)
	bit 1	 (未使用)
			常に %0 にする.
	bit 0	 Termination Mode
			イニシエータ時:
			%0 : バイトカウント = 0 で転送停止
			%1 : バイトカウント = 0 でも REQ に応答する
			ターゲット時:
			%0 : バイトカウント = 0 になるまで転送を続行する
			%1 : パリティエラー発生時に転送を停止する

INTS read($e96029):
	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬─┬─┬─┬─┬─┐
	  │ │ │ │ │ │ │ │ │
	  └─┴─┴─┴─┴─┴─┴─┴─┘
	  │ │ │ │ │ │ │ └ Reset Condition
	  │ │ │ │ │ │ └ SPC Hard Error
	  │ │ │ │ │ └ Time Out
	  │ │ │ │ └ Service Required
	  │ │ │ └ Command Complete
	  │ │ └ Disconnected
	  │ └ Reselected
	  └ Selected

	bit 7	Selected
		%0 : 通常動作
		%1 : SCSI 上の他のデバイスからセレクションフェーズによって選択
		     された
	bit 6	Reselected
		%0 : 通常動作
		%1 : SCSI 上の他のデバイスからリセレクションフェーズによって選
		     択された
	bit 5	Disconnected
		%0 : 通常動作
		%1 : SCSI 上でバスフリーフェーズが検出された(SCTL bit 7=1 の時).
	bit 4	Command Complete
		%0 : 通常動作
		%1 : Select コマンドや Transfer コマンドの実行が完了した
	bit 3	Service Required
		%0 : 通常動作
		%1 : イニシエータとして動作中にバス上のフェーズと PCTL レジス
		     タで指定されるフェーズが一致しないため、Transfer コマンド
		     を実行できない(できなくなった)
	bit 2	Time Out
		%0 : 通常動作
		%1 : セレクション/リセレクション実行後一定期間たっても相手から
		     の応答がない
	bit 1	SPC Hard Error
		%0 : 通常動作
		%1 : SERR レジスタに示されるエラーのうち、
			・TC Parity Error
			・Short Transfer Period
		     が検出された
	bit 0	Reset Condition
		%0 : 通常動作
		%1 : SCSI バスガ Reset された

INTS write($e96029):
	(INTS read と同様)

	%1 を書き込むと、INTS のそのビットの値が %0 に戻る.

PSNS($e9602b):
	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬─┬─┬─┬─┬─┐
	  │ │ │ │ │ │ │ │ │
	  └─┴─┴─┴─┴─┴─┴─┴─┘
	  REQ ACK ATN SEL BSY MSG C/D I/O

	bit 7	REQ
		%0 : REQ 信号は '0'(High レベル)
		%1 : 〃		'1'(Low  〃    )
	bit 6	ACK
		%0 : ACK 信号は '0'(High レベル)
		%1 : 〃		'1'(Low  〃    )
	bit 5	ATN
		%0 : ATN 信号は '0'(High レベル)
		%1 : 〃		'1'(Low  〃    )
	bit 4	SEL
		%0 : SEL 信号は '0'(High レベル)
		%1 : 〃		'1'(Low  〃    )
	bit 3	BSY
		%0 : BSY 信号は '0'(High レベル)
		%1 : 〃		'1'(Low  〃    )
	bit 2	MSG
		%0 : MSG 信号は '0'(High レベル)
		%1 : 〃		'1'(Low  〃    )
	bit 1	C/D
		%0 : C/D 信号は '0'(High レベル)
		%1 : 〃		'1'(Low  〃    )
	bit 0	I/O
		%0 : I/O 信号は '0'(High レベル)
		%1 : 〃		'1'(Low  〃    )

SDGC($e9602b):
	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬─┬─┬─┬─┬─┐
	  │ │ │ │ │ │ │ │ │
	  └─┴─┴─┴─┴─┴─┴─┴─┘
	  │ │ │   │ │ │ └ Diag I/O
	  │ │ │   │ │ └ Diag C/D
	  │ │ │   │ └ Diag MSG
	  │ │ │   └ Diag BSY
	  │ │ └ Xfer Enable
	  │ └ Diag ACK
	  └ Diag REQ

	bit 7~6,3~0
		診断モード時に SCSI バスの状態を設定する.
	bit 5	Xfer Enable
		プログラム転送時
		%0 : Data Request のかわりに割り込みを発生しない
		%1 : 〃					  する

SSTS($e9602d):
	bit  7   6   5   4   3   2   1   0
	  ┌───┬─┬─┬─┬─┬───┐
	  │	 │ │ │ │ │	 │
	  └───┴─┴─┴─┴─┴───┘
	  │ │ │ │ │ │ │ └ DREG status Empty
	  │ │ │ │ │ │ └── 〃	       Full
	  │ │ │ │ │ └ TC = 0
	  │ │ │ │ └ SCSI ResetIn
	  │ │ │ └ Transfer in progress
	  │ │ └ SPC Busy
	  │ └ Connected TARG
	  └── 〃	     INIT

	bit 7~6 Connected
			SPC と SCSI の結合状態
			%00 : 非結合中
			%01 : ターゲットとして結合中
			%10 : イニシエータとして結合中
			%11 : (未定義)
	bit 5	 SPC Busy
			%0 : コマンド実行中/実行待ち状態ではない
			%1 : 〃				である
	bit 4	 Transfer in progress
			%0 : 通常動作
			%1 : ハード転送実行中/SCSI で転送フェーズが要求されて
			     いる
	bit 3	 SCSI ResetIn
			SCSI バス上の RST 信号の状態
			%0 : RST 信号は '0'(High レベル)
			%1 : 〃		'1'(Low  〃    )
	bit 2	 TC = 0
			%0 : 転送バイトカウンタの内容がゼロではない
			%1 : 〃				   である
	bit 1~0 DREG status
			内部データバッファレジスタの状態
			%00 : 1~7 バイトのデータがある
			%01 : バッファは空
			%10 : 8 バイトのデータがある
			%11 : (未使用)

SERR($e9602f):
	bit  7   6   5   4   3   2   1   0
	  ┌───┬─┬─┬─┬─┬─┬─┐
	  │	 │ │ 0│ │ 0│ │ 0│
	  └───┴─┴─┴─┴─┴─┴─┘
	  │ │ │   │   └ Short Transfer Period
	  │ │ │   └ TC Parity Error
	  │ │ └ Xfer Out
	  │ └ Data Error SPC
	  └── 〃	      SCSI

	bit 7~6 Data Error
			%00 : パリティエラーは検出されなかった
			%01 : アウトプット動作時、SCSI バスに出力しようとした
			      データにパリティエラーを検出した
			%10 : (未定義)
			%11 : インプット動作時、SCSI バスに出力しようとしたデ
			      ータにパリティエラーを検出した
	bit 5	 Xfer Out
			%0 : 通常動作
			%1 : Data Request 中(SDGC bit 5=1 の時に使用)
	bit 3	 TC Parity Error
			%0 : 正常
			%1 : 転送バイトカウンタの減算動作でパリティエラーが発
			     生した
	bit 1	 Short Transfer Period
			%0 : 正常
			%1 : REQ、または ACK 信号が SPC が追従できないほど速い
			     周期で入力された

PCTL($e96031):
	bit  7   6	     3   2   1   0
	  ┌─┬───────┬─────┐
	  │ │	  0 │	 │
	  └─┴───────┴─────┘
	  │			│ │ └ Transfer Phase MSG
	  Busfree INT Enable	│ └── 〃		  C/D
	 			└──── 〃		  I/O

	bit 7	 Busfree INT Enable
		%0 : 通常動作
		%1 : バスフリーフェーズを検出すると Disconnected 割り込みを発
		     生する
		※Select コマンド発行時や Disconnected 割り込みをリセットする
		 時は %0 にしておくこと.
	bit 2~0 Transfer Phase
		ターゲット 動作時:SCSI で実行するフェーズを指定
		イニシエータ動作時:実行予定のフェーズを指定
		%000 : データアウトフェーズ
		%001 : データイン〃
		%010 : コマンド〃
		%011 : ステータス〃
		%100 : (未使用)
		%101 : (未使用)
		%110 : メッセージアウト〃
		%111 : メッセージイン〃

MBC($e96033):
	bit  7		 4   3		 0
	  ┌───────┬───────┐
	  │	    0 │	   MBC │
	  └───────┴───────┘

	bit 3~0 MBC
		SPC 内部のバッファと CPU とのデータ転送数を制御するレジスタ.
		初期値は TCL レジスタの下位 4 ビットが設定される.

DREG($e96035):
	bit  7				 0
	  ┌───────────────┐
	  │			  Data │
	  └───────────────┘

	データ入出力を行うレジスタ. 8 バイトの FIFO バッファとなっている.

TEMP($e96037):
	bit  7				 0
	  ┌───────────────┐
	  │		 Temporary Data │
	  └───────────────┘

	マニュアル転送モードのときに SCSI とのデータ転送に使用するレジスタ.
	また、アービトレーション/セレクションで出力する ID 設定用としても使用
	される.

TCH($e96039):
	bit  7				 0
	  ┌───────────────┐
	  │	 Transfer Counter(上位) │
	  └───────────────┘

	 TCH/TCM/TCL を合せて、3 バイト(24 ビット)の転送バイト数カウンタとし
	て使用される. ハード転送時に SCSI 上で 1 バイトの転送が行われるごとに
	デクリメントされ、残りバイト数を保持する. また、セレクションフェーズで
	のタイムアウト時間設定用としても使用される.

TCM($e9603b):
	bit  7				 0
	  ┌───────────────┐
	  │	 Transfer Counter(中位) │
	  └───────────────┘

TCL($e9603d):
	bit  7				 0
	  ┌───────────────┐
	  │	 Transfer Counter(下位) │
	  └───────────────┘

==============================================================================

・SCC

 SCC(シリアルコミュニケーションコントローラ Z8530)のレジスタへのアクセスは、
コマンドポートにこれからアクセスするレジスタ番号を書き込み、次にコマンドポート
へ値を書き込むか読み込めばよい. レジスタ番号を設定していない時は WR0/RR0 にア
クセスされる. レジスタ番号を設定後、一度アクセスするとレジスタの指定が解除され
次回指定しなければ WR0/RR0 へのアクセスに戻る.


address	size
$e98001	1.b	チャンネル B コマンドポート
$e98003	1.b	〃	     データポート
$e98005	1.b	チャンネル A コマンドポート
$e98007	1.b	〃	     データポート


WR0	CRC 初期化/SCC 初期化/アクセスレジスタ選択
WR1	送受信割り込み設定
WR2	割り込みベクタ設定
WR3	受信動作パラメータ設定
WR4	送受信動作関係のパラメータ設定
WR5	送信動作パラメータ設定
WR6	同期キャラクタ/SDLC アドレス設定
WR7	〃	      /SDLC フラグ設定
WR8	送信バッファ($e98003/$e98007 と同一)
WR9	割り込み発生制御/SCC リセット(チャンネル A/B で共通)
WR10	トランスミッタ/レシーバ制御
WR11	クロックモード制御
WR12	ボーレートジェネレータ(下位)
WR13	〃		      (上位)
WR14	DPLL 動作モード設定
WR15	外部/ステータス割り込み発生許可/禁止制御

RR0	送受信バッファ/制御端子ステータス
RR1	スペシャル Rx コンディションステータス/端数コード読み出し
RR2	割り込みベクタ
RR3	ペンディングされている割り込み要因(チャンネル A にのみ存在)
RR8	受信バッファ($e98003/$e98007 と同一)
RR10	FM モードでの Missing Clock/SDLC での動作ステータス
RR12	WR12 設定値
RR13	WR13 〃
RR15	WR15 〃


WR0:
	bit  7   6   5	     3   2	 0
	  ┌───┬─────┬─────┐
	  │	 │	   │	 │
	  └───┴─────┴─────┘
	  │		│	  └ Register Select
	  │		└ Command Code
	  └ CRC Reset Command

	bit 7~6 CRC Reset Command
			%00 : ヌルコード(何もしない)
			%01 : 受信 CRC チェッカリセット
			%10 : 送信 CRC ジェネレータリセット
			%11 : 送信アンダーラン/EOM ラッチリセット
	bit 5~3 Command Code
			SCC 動作コマンド
			%000 : ヌルコード(何もしない)
			%001 : 上位レジスタ(WR8/RR8~15)選択
			%010 : 外部ステータス変化割り込みリセット
			%011 : アボート送出
			%100 : 次の受信割り込みイネーブル
			%101 : 送信割り込みペンディングビットリセット
			%110 : エラーリセット
			%111 : 最上位 IUS リセット
	bit 2~0 Register Select
			次にアクセスするレジスタ番号を設定する.

WR1:
	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬───┬─┬─┬─┐
	  │ │ │ │   │ │ │ │
	  └─┴─┴─┴───┴─┴─┴─┘
	  │ │ │ │   │ │ └ E/S INT Enable
	  │ │ │ │   │ └ Tx INT Enable
	  │ │ │ │   └ Parity is Spec. Condition
	  │ │ │ └ Rx INT Mode
	  │ │ └ Wait/DREQ on Rx/Tx
	  │ └ Wait/DREQ Function
	  └ Wait/DREQ Enable

	bit 7	 Wait/DREQ Enable
			%0 : W/REQ 機能ディセーブル
			%1 : 〃        イネーブル
			※X680x0 では %0 に設定する.
	bit 6	 Wait/DREQ Function
			%0 : W/REQ 端子は Wait 信号として動作する
			%1 : 〃		  DMA 要求信号として動作する
	bit 5	 Wait/DREQ on Rx/Tx
			%0 : 送信動作で W/REQ 信号を使う
			%1 : 受信〃
	bit 4~3 Rx INT Mode
			受信割り込みモード
			%00 : 受信割り込み禁止
			%01 : 最初のキャラクタのみ割り込み発生
			%10 : 全ての受信キャラクタで割り込み発生
			%11 : スペシャル Rx コンディション時のみ割り込み発生
			※%01、%10 はスペシャル Rx コンディション割り込みも可.
	bit 2	 Parity is Spec. Condition
			パリティエラー
			%0 : スペシャル Rx コンディションにしない
			%1 : 〃				   する
	bit 1	 Tx INT Enable
			%0 : 送信割り込み禁止
			%1 : 〃		 許可
	bit 0	 E/S INT Enable
			%0 : 外部ステータス割り込み禁止
			%1 : 〃			   許可

WR2:
	bit  7				 0
	  ┌───────────────┐
	  │		  Vector Number │
	  └───────────────┘

	 割り込み発生時に使用するベクタ番号を設定する. WR9 VIS が %1 の時、設
	定した値のビット 4~6 又は 3~1 を割り込み要因によって変化させる.

WR3:
	bit  7   6   5   4   3   2   1   0
	  ┌───┬─┬─┬─┬─┬─┬─┐
	  │	 │ │ │ │ │ │ │
	  └───┴─┴─┴─┴─┴─┴─┘
	  │   │ │ │ │ │ └ Rx Enable
	  │   │ │ │ │ └ SYNC Char. Load INH
	  │   │ │ │ └ Address Search Mode
	  │   │ │ └ Rx CRC Enable
	  │   │ └ Enter Hunt Mode
	  │   └ Auto Enable
	  └ Rx bit/char.

	bit 7~6 Rx bit/char.
			受信キャラクタのビット長を指定する.
			%00 : 5 ビット/キャラクタ
			%01 : 7 〃
			%10 : 6 〃
			%11 : 8 〃
	bit 5	 Auto Enable
			%0 : 通常モード   ___		      ___
			%1 : オートモード(DCD = 'L' で受信可、CTS = 'L' で送信
			     可となる)
	bit 4	 Enter Hunt Mode
			%0 : 同期が確率した
			%1 : 同期確率モードとなる(同期キャラクタ/フラグと一致
			     するキャラクタが入力されるまで待つ)
	bit 3	 Rx CRC Enable
			%0 : 受信キャラクタの CRC 計算を行わない
			%1 : 〃				行う
	bit 2	 Address Search Mode
			SDLC モード時:
			%0 : 通常動作
			%1 : WR6 に書き込んだアドレスと一致しないメッセージを
			     無視する
	bit 1	 SYNC Char. Load INH
			SDLC モード時:
			%0 : 通常動作
			%1 : アドレスの上位 4 ビットだけを比較する
			SDLC モード以外の同期モード時:
			%0 : 通常動作
			%1 : WR6 と一致するキャラクタは受信しない
	bit 0	 Rx Enable
			%0 : 受信動作禁止
			%1 : 〃      許可

WR4:
	bit  7   6   5   4   3   2   1   0
	  ┌───┬───┬───┬─┬─┐
	  │	 │	 │	 │ │ │
	  └───┴───┴───┴─┴─┘
	  │   │   │   │ └ Parity Enable
	  │   │   │   └ Parity Even/Odd
	  │   │   └ STOP Bit
	  │   └ SYNC Mode
	  └ Clock Mode

	bit 7~6 Clock Mode
		%00 : × 1 クロックモード
		%01 : ×16 〃
		%10 : ×32 〃
		%11 : ×64 〃
	bit 5~4 SYNC Mode
		%00 :  8 ビット同期キャラクタ(Monosync)
		%01 : 16 〃		     (Bisync)
		%10 : SDLC モード('01111110' がフラグ)
		%11 : 外部同期モード(External Sync、X680x0 では使用不可)
		※STOP Bit = %00 の時のみ有効.
	bit 3~2 STOP Bit
		%00 : ストップビット なし(同期モード)
		%01 : 〃	     1	 ビット(非同期モード)
		%10 : 〃	     1.5 〃    (〃	    )
		%11 : 〃	     2	 〃    (〃	    )
	bit 1	 Parity Even/Odd
		%0 : 奇数
		%1 : 偶数
	bit 0	 Parity Enable
		%0 : パリティなし
		%1 : 〃      あり

	※X680x0 ではチャンネル B はマウスとの通信に使用されているため、非同期
	 1/16 クロックモード、データ長 8 ビット、ストップビット 2、パリティ無
	 しで 4800bps の設定にしなければならない.

WR5:
	bit  7   6   5   4   3   2   1   0
	  ┌─┬───┬─┬─┬─┬─┬─┐
	  │ │   │ │ │ │ │ │
	  └─┴───┴─┴─┴─┴─┴─┘
	  │ │	│ │ │ │ └ Tx CRC Enable
	  │ │	│ │ │ └ RTS
	  │ │	│ │ └ SDLC/CRC-16
	  │ │	│ └ Tx Enable
	  │ │	└ Send Break
	  │ └ Tx Bit/char.
	  └ DTR

	bit 7	 DTR
			%0 : DTR 信号を 'H' にする
			%1 : 〃		'L' 〃
	bit 6~5 Tx Bit/char.
			送信キャラクタのビット長を指定する.
			%00 : 5 ビット/キャラクタ
			%01 : 7 〃
			%10 : 6 〃
			%11 : 8 〃
	bit 4	 Send Break
			%0 : 通常動作
			%1 : ブレークを送出する(TxD を '0' のままにする)
	bit 3	 Tx Enable
			%0 : 送信動作禁止
			%1 : 〃      許可
	bit 2	 SDLC/CRC-16
			使用する CRC 生成多項式を選択する
			%0 : CRC-CCITT
			%1 : CRC-16
			※SDLC 使用時は %0 にすること.
	bit 1	 RTS	     ___
			%0 : RTS 端子を 'H' にする
			%1 : 〃		'L' 〃
	bit 0	 Tx CRC Enable
			%0 : 送信キャラクタの CRC 計算を行わない
			%1 : 〃				行う

WR6:
	bit  7				 0
	  ┌───────────────┐
	  │	   SYHC Char./Address │
	  └───────────────┘

	Monosync モード時 : 同期キャラクタを設定する.
	Bisync モード時   : 同期キャラクタの下位バイトを設定する.
	SDLC モード時	  : 自局のアドレスを設定する.

WR7:
	bit  7				 0
	  ┌───────────────┐
	  │		   SYHC Char. │
	  └───────────────┘

	Monosync モード時 : 同期キャラクタを設定する.
	Bisync モード時   : 同期キャラクタの上位バイトを設定する.
	SDLC モード時	  : フラグキャラクタ('01111110')を設定する.

WR8:
	bit  7				 0
	  ┌───────────────┐
	  │		  送信バッファ │
	  └───────────────┘

	$e98003(チャンネル B)/$e98007(チャンネル A)と同一.

WR9:
	bit  7   6   5   4   3   2   1   0
	  ┌───┬─┬─┬─┬─┬─┬─┐
	  │	 │ 0│ │ │ │ │ │
	  └───┴─┴─┴─┴─┴─┴─┘
	  │		│ │ │ │ └ VIS
	  │		│ │ │ └ NV
	  │		│ │ └ DLC
	  │		│ └ MIE
	  │		└ Status High/Status Low
	  └ Reset Command

	bit 7~6 Reset Command
			%00 : リセットしない
			%01 : チャンネルリセット B
			%10 : チャンネルリセット A
			%11 : 強制ハードウェアリセット
	bit 4	 Status High/Status Low
			割り込み要因によって変化させるベクタのビット位置
			%0 : bit 3~1
			%1 : bit 4~6
	bit 3	 MIE
			%0 : SCC の割り込み発生禁止
			%1 : 〃		       許可
	bit 2	 DLC
			%0 : 下位チェーン禁止
			%1 : 〃		 許可
	bit 1	 NV
			%0 : 割り込み応答時、ベクタを出力する
			%1 : 〃				 しない
	bit 0	 VIS
			%0 : ベクタ番号は固定
			%1 : 割り込み要因によってベクタを変化させる

WR10:
	bit  7   6   5   4   3   2   1   0
	  ┌─┬───┬─┬─┬─┬─┬─┐
	  │ │   │ │ │ │ │ │
	  └─┴───┴─┴─┴─┴─┴─┘
	  │ │	│ │ │ │ └ 6bit/8bit Sync
	  │ │	│ │ │ └ Loop Mode
	  │ │	│ │ └ Abort/Flag on Underrun
	  │ │	│ └ Mark/Flag Idle
	  │ │	└ Go Active on Poll
	  │ └ Data Encording
	  └ CRC Preset 1/0

	bit 7	 CRC Preset 1/0
			%0 : CRC ジェネレータ、CRC チェッカの初期値は All'0'
			%1 : 〃						 '1'
	bit 6~5 Data Encording
			TxD の変調モード
			%00 : NRZ
			%01 : NRZI
			%10 : FM(遷移'1')
			%11 : FM(遷移'0')
	bit 4	 Go Active on Poll
			SDLC のループモード時
			%0 : フラグ送信終了後、1 ビット遅延モードになる
			%1 : フラグ送信後、フラグがデータを送信する
	bit 3	 Mark/Flag Idle
			SDLC モード時
			%0 : アイドル時、フラグ(フラグアイドル)を送信する
			%1 : 〃		 TxD を '1'(マーク状態)にする
	bit 2	 Abort/Flag on Underrun
			SDLC モード時
			%0 : 送信アンダーラン発生時、CRC を送る
			%1 : 〃			     アボートとフラグを送る
	bit 1	 Loop Mode
			SDLC モード、同期モード時
			%0 : 通常動作
			%1 : ループモード(TxD と RxD を内部的に結線する)にする
	bit 0	 6bit/8bit Sync
			Monosync モード時:
			%0 : 同期キャラクタは 8bit
			%1 : 〃		      6bit
			Bisync モード時:
			%0 : 受信同期キャラクタは 16bit
			%1 : 〃			  12bit

WR11:
	bit  7   6   5   4   3   2   1   0
	  ┌─┬───┬───┬─┬───┐
	  │ │   │   │ │	 │
	  └─┴───┴───┴─┴───┘
	  │ │	│	│ └ TRxC Output
	  │ │	│	└ TRxc Out/In
	  │ │	└ Transmit Clock
	  │ └ Receive Clock
	  └ RTxC XTAL/NO XTAL

	bit 7	 RTxC XTAL/NO XTAL
			     ____
			%0 : RTxC はクロック入力端子となる
			     ____    ____
			%1 : RTxC と SYNC 端子で水晶発振回路を構成する
			※X680x0 では %0 に設定する.
	bit 6~5 Receive Clock
			受信クロック選択
			      ____
			%00 : RTxC 端子と同一
			      ____
			%01 : TRxC 端子と同一
			%10 : ボーレートジェネレータ出力
			%11 : DPLL 出力
	bit 4~3 Transmit Clock
			送信クロック選択(Receive Clock と同様)
	bit 2	 TRxc Out/In ____
			%0 : TRxC 端子は入力端子
			%1 : 〃		出力端子
	bit 1~0 TRxC Output
			____
			TRxC 端子から出力される信号源
			%00 : 水晶発振回路出力
			%01 : 送信クロック
			%10 : ボーレートジェネレータ出力
			%11 : DPLL 出力

WR12:
	bit  7				 0
	  ┌───────────────┐
	  │			TC(下位) │
	  └───────────────┘

	ボーレートジェネレータの出力周波数を指定する.
		   ボーレートジェネレータへの入力クロック周波数
	出力周波数 = ───────────────────────
				   2×(TC+2)
	※X680x0 の場合、出力周波数(bps) = 156250/(TC+2)
	※TC を変更する場合はボーレートジェネレータの動作を停止しておくこと.

WR13:
	bit  7				 0
	  ┌───────────────┐
	  │			TC(上位) │
	  └───────────────┘

WR14:
	bit  7	     5   4   3   2   1   0
	  ┌─────┬─┬─┬─┬─┬─┐
	  │	   │ │ │ │ │ │
	  └─────┴─┴─┴─┴─┴─┘
	  │		│ │ │ │ └ BRG Enable
	  │		│ │ │ └ BRG Source
	  │		│ │ └ DTR/REQ Function
	  │		│ └ Auto Echo
	  │		└ Local Loopback
	  └ DPLL Command

	bit 7~5 DPLL Command
			DPLL 動作モード選択
			%000 : Null Command
			%001 : Enter Search Mode
			%010 : Reset Missing Clock
			%011 : Disable DPLL
			%100 : Set Source = BRG
			%101 : Set Source = RTxC
			%110 : Set FM Mode
			%111 : Set NRZI Mode
	bit 4	 Local Loopback
			%0 : 通常動作
			%1 : RxD は外部と切り離され、TxD と内部接続される
	bit 3	 Auto Echo
			%0 : 通常動作
			%1 : TxD は外部と切り離され、RxD と内部接続される
	bit 2	 DTR/REQ Function
			%0 : DTR 端子は WR5 の DTR ビットで制御される
			%1 : 送信バッファ空/同期モードで CRC 送出時 DTR = 'L'
	bit 1	 BRG Source
			ボーレートジェネレータのクロック選択源
			%0 : RTxC 端子と同一(外部供給)
			%1 : SCC の PCLK(X680x0 では 5MHz)
	bit 0	 BRG Enable
			%0 : ボーレートジェネレータ停止
			%1 : 〃			   動作

WR15:
	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬─┬─┬─┬─┬─┐
	  │ │ │ │ │ │ 0│ │ 0│
	  └─┴─┴─┴─┴─┴─┴─┴─┘
	  │ │ │ │ │   └ Zero Count IE
	  │ │ │ │ └ DCD IE
	  │ │ │ └ Sync/Hunt IE
	  │ │ └ CTS IE
	  │ └ Tx Underrun/EOM IE
	  └ Break/Abort IE

	bit 7	Break/Abort IE
		%0 : ブレーク/アボート状態検出で割り込みを発生しない
		%1 : 〃					      する
	bit 6	Tx Underrun/EOM IE
		%0 : 送信アンダーラン/送信終了で割り込みを発生しない
		%1 : 〃					      する
	bit 5	CTS IE
		     ___
		%0 : CTS 端子の変化で割り込みを発生しない
		%1 : 〃				   する
	bit 4	Sync/Hunt IE
		非同期モード時:
		     ____
		%0 : SYNC 端子の変化で割り込みを発生しない
		%1 : 〃				    する
		同期モード/SDLC モード時:
		%0 : 同期の確立/喪失の変化で割り込みを発生しない
		%1 : 〃					  する
	bit 3	DCD IE
		     ___
		%0 : DCD 端子の状態変化で割り込みを発生しない
		%1 : 〃				       する
	bit 1	Zero Count IE
		%0 : ゼロカウント割り込みは発生しない
		%1 : ボーレートジェネレータのカウント値 =0 で外部ステータス割
		     り込み発生


RR0:
	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬─┬─┬─┬─┬─┐
	  │ │ │ │ │ │ │ │ │
	  └─┴─┴─┴─┴─┴─┴─┴─┘
	  │ │ │ │ │ │ │ └ Rx character Available
	  │ │ │ │ │ │ └ Zero Count
	  │ │ │ │ │ └ Tx buffer Empty
	  │ │ │ │ └ DCD
	  │ │ │ └ SYNC/Hunt
	  │ │ └ CTS
	  │ └ Tx Underrun/EOM
	  └ Break/Abort

	bit 7	Break/Abort
			非同期モード時:
			%0 : ブレーク状態から回復した/通常動作
			%1 : 〃		 を検出した
			SDLC モード時:
			%0 : アボートシーケンスが終了した/通常動作
			%1 : アボートシーケンス(7 個以上 '1' が連続する)を
			     検出した
	bit 6	Tx Underrun/EOM
			%0 : 通常動作
			%1 : 送信アンダーラン(バッファ内のキャラクタを全て送信
			     したが、新しいキャラクタの書き込みが行われなかっ
			     た)、または送信終了
	bit 5	CTS	CTS 端子の状態を示す
			     ___
			%0 : CTS 端子は 'H' レベル(送信禁止状態)
			%1 : 〃		'L' 〃	  (〃  許可〃  )
	bit 4	SYNC/Hunt
			非同期モード時:
			     ____
			%0 : SYNC 端子は 'H' レベル
			%1 : 〃		 'L' 〃
			同期モード/SDLC モード時:
			%0 : 同期が確立した
			%1 : 同期は確立していない(Hunt モード)
	bit 3	DCD	DCD 端子の状態を示す
			     ___
			%0 : DCD 端子は 'H' レベル(キャリア検出していない)
			%1 : 〃		'L' 〃	  (〃	   検出した	 )
	bit 2	Tx buffer Empty
			%0 : 送信バッファにキャラクタがある
			%1 : 〃		 が空になった
	bit 1	Zero Count
			%0 : 通常動作
			%1 : ボーレートジェネレータのカウント値が 0 になった
			※WR15 の bit 1 = %1 の時のみ有効.
	bit 0	Rx character Available
			受信バッファにキャラクタ(データ)が入っているかを示す
			%0 : バッファは空
			%1 : キャラクタがある

RR1:
	bit  7   6   5   4   3	     1   0
	  ┌─┬─┬─┬─┬─────┬─┐
	  │ │ │ │ │	   │ │
	  └─┴─┴─┴─┴─────┴─┘
	  │ │ │ │ │		└ All Sent
	  │ │ │ │ └ Residue Code 0~2
	  │ │ │ └ Parity Error
	  │ │ └ Rx Overrun Error
	  │ └ CRC/Framing Error
	  └ End-of-Frame

	bit 7	 End-of-Frame
			SDLC モード時
			%0 : 通常動作
			%1 : 正常な終了フラグを受け取った/
			     CRC エラービットと端数ビットが確定した
	bit 6	 CRC/Framing Error
			非同期モード時:
			%0 : 正常動作
			%1 : フレーミングエラー(ストップビットが見つからない)
			     を検出した
			同期モード/SDLC モード時:
			%0 : 正常動作
			%1 : CRC エラーを検出した
	bit 5	 Rx Overrun Error
			%0 : 正常動作
			%1 : 受信バッファがオーバーフローした
	bit 4	 Parity Error
			%0 : 正常動作
			%1 : 受信データ中にパリティエラーを検出した
	bit 3~1 Residue Code 0~2
			SDLC モード時、最後に受信したキャラクタの有効ビット数
			を示す.
			%111 : 1 ビット
			%000 : 2 〃
			%100 : 3 〃
			%010 : 4 〃
			%110 : 5 〃
			%001 : 6 〃
			%101 : 7 〃
			%011 : 8 〃
	bit 0	 All Sent
			非同期モード時
			%0 : キャラクタ送出中
			%1 : キャラクタの送出が完了した

RR2(チャンネル A):
	bit  7				 0
	  ┌───────────────┐
	  │		  Vector Number │
	  └───────────────┘

	WR2 への設定値がそのまま読み出せる.

RR2(チャンネル B):
	bit  7		 4   3	     1   0
	  ┌───────┬─────┬─┐
	  │		 │	   │ │
	  └───────┴─────┴─┘
		├───────│───┘
	  設定したベクタ番号	割り込み要因

	bit 7~4,0
		設定したベクタ番号
	bit 3~1
		割り込み要因
		%000 : チャンネル B 送信バッファ空
		%001 : 〃	    外部ステータス変化
		%010 : 〃	    受信キャラクタ有効
		%011 : 〃	    スペシャル Rx コンディション
		%100 : チャンネル B 送信バッファ空
		%101 : 〃	    外部ステータス変化
		%110 : 〃	    受信キャラクタ有効
		%111 : 〃	    スペシャル Rx コンディション
	※WR9 VIS が %1 の時は bit 3~1 ではなく bit 4~6 が変化する.

RR3:
	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬─┬─┬─┬─┬─┐
	  │ 0│ 0│ │ │ │ │ │ │
	  └─┴─┴─┴─┴─┴─┴─┴─┘
		  │ │ │ │ │ └ ChannelB EXT/STAT IP
		  │ │ │ │ └── ChannelB Tx IP
		  │ │ │ └──── ChannelB Rx IP
		  │ │ └ ChannelA EXT/STAT IP
		  │ └── ChannelA Tx IP
		  └──── ChannelA Rx IP

	割り込みがペンディング中に %1 になる.

	bit 5	ChannelA Rx IP
			チャンネル A 受信割り込み
	bit 4	ChannelA Tx IP
			チャンネル A 送信割り込み
	bit 3	ChannelA EXT/STAT IP
			チャンネル A 外部ステータス変化割り込み
	bit 2	ChannelB Rx IP
			チャンネル B 受信割り込み
	bit 1	ChannelB Tx IP
			チャンネル B 送信割り込み
	bit 0	ChannelB EXT/STAT IP
			チャンネル B 外部ステータス変化割り込み

RR8:
	bit  7				 0
	  ┌───────────────┐
	  │		  受信バッファ │
	  └───────────────┘

	$e98003(チャンネル B)/$e98007(チャンネル A)と同一.

RR10:
	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬─┬───┬─┬─┐
	  │ │ │ 0│ │  0 │ │ 0│
	  └─┴─┴─┴─┴───┴─┴─┘
	  │ │	│	  └ On Loop
	  │ │	└ Loop Sending
	  │ └ Two Clocks Missing
	  └── One Clock  Missing

	bit 7	One Clock  Missing
			%0 : その他の状態
			%1 : FM モード時、RxD で '1' がある筈の期間中にクロッ
			     クエッジが見つからなかった
	bit 6	Two Clocks Missing
			%0 : その他の状態
			%1 : FM モード時、連続二回の試みでクロックエッジが見つ
			     からなかった
	bit 4	Loop Sending
			SDLC モード時
			%0 : それ以外の状態
			%1 : ループモードで、SCC がループ上に送信動作をしてい
			     る
	bit 1	On Loop
			SDLC モード時:
			%0 : それ以外の状態
			%1 : ループモードで、SCC が実際にオンループにある
			Monosync 時:
			%0 : それ以外の状態
			%1 : ループモードで、トランスミッタがアクティブである

RR12:
	(WR12 と同様)
	WR12 設定値がそのまま読み出される.

RR13:
	(WR13 と同様)
	WR13 設定値がそのまま読み出される.

RR15:
	(WR15 と同様)
	WR15 設定値がそのまま読み出される.

==============================================================================

・ジョイスティックインターフェース

address	size	R/W
$e9a001	1.b	R	8255 ポート A(ジョイスティック #1)
$e9a003	1.b	R	8255 ポート B(ジョイスティック #2)
$e9a005	1.b	R/W	8255 ポート C(ジョイスティックコントロール)
$e9a007	1.b	  W	8255 コントロールワード(動作モード/ビット操作)


ジョイスティック #1($e9a001):
	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬─┬─┬─┬─┬─┐
	  │ │ │ │ │ │ │ │ │
	  └─┴─┴─┴─┴─┴─┴─┴─┘
		│ │	  │ │ │ └ FORWARD
		│ │	  │ │ └ BACK
		│ │	  │ └ LEFT
		│ │	  └ RIGHT
		│ └ TRG A
		└ TRG B

	bit 6	TRG B
		%0 : トリガ B ボタンは押されている
		%1 : 〃		      押されていない
	bit 5	TRG A
		%0 : トリガ A ボタンは押されている
		%1 : 〃		      押されていない
	bit 3	RIGHT
		%0 : 右スイッチは押されている
		%1 : 〃		 押されていない
	bit 2	LEFT
		%0 : 左スイッチは押されている
		%1 : 〃		 押されていない
	bit 1	BACK
		%0 : 下スイッチは押されている
		%1 : 〃		 押されていない
	bit 0	FORWARD
		%0 : 上スイッチは押されている
		%1 : 〃		 押されていない

ジョイスティック #2($e9a003):
	(ジョイスティック #1 と同様)

ジョイスティックコントロール($e9a005):
	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬─┬───┬───┐
	  │ │ │ │ │	 │	 │
	  └─┴─┴─┴─┴───┴───┘
	  │ │ │ │ │   └ PCM PAN
	  │ │ │ │ └ Sampling Rate
	  │ │ │ └ IOC4
	  │ │ └ IOC5
	  │ └ IOC6
	  └ IOC7

	bit 7	 IOC7
			%0 : 通常動作
			%1 : ジョイスティック #1 オプション機能 B 動作
	bit 6	 IOC6
			%0 : 通常動作
			%1 : ジョイスティック #1 オプション機能 A 動作
	bit 5	 IOC5
			%0 : 通常動作
			%1 : ジョイスティック #2 操作無効
	bit 4	 IOC4
			%0 : 通常動作
			%1 : ジョイスティック #1 操作無効
	bit 3~2 Sampling Rate
			ADPCM サンプリング周波数切り替え
	bit 1~0 PCM PAN
			ADPCM 出力切り替え

コントロールワード ビットセット/リセット($e9a007):
	bit  7   6	 4   3	     1   0
	  ┌─┬─────┬─────┬─┐
	  │ 0│	 │ BITSEL │ │
	  └─┴─────┴─────┴─┘
					DATA

	bit 3~1 BITSEL
			操作するビット位置(7~0)を指定する.
	bit 0	 DATA
			セットするデータを指定する.
	※最上位ビットが %0 の値を書き込むと、ポート C の任意のビットを操作す
	 る(コントロールワードのビットではない).

コントロールワード モード設定($e9a007):
	bit  7   6   5   4   3   2   1   0
	  ┌─┬───┬─┬─┬─┬─┬─┐
	  │ 1│   │ │ │ │ │ │
	  └─┴───┴─┴─┴─┴─┴─┘
		│	│ │ │ │ └ PORT C(Low) IN/OUT
		│	│ │ │ └ PORT B IN/OUT
		│	│ │ └ Group B Mode
		│	│ └ PORT C(High) IN/OUT
		│	└ PORT A IN/OUT
		└ Group A Mode

	bit 6~5 Group A Mode
			グループ A(ポート A とポート C 上位)の動作モード
			%00 : モード 0
			%01 : 〃     1
			%10 : 〃     2
			%11 : 〃     2
	bit 4	 PORT A IN/OUT
			%0 : ポート A は出力
			%1 : 〃		入力
	bit 3	 PORT C(High) IN/OUT
			%0 : ポート C(上位) は出力
			%1 : 〃		      入力
	bit 2	 Group B Mode
			グループ B(ポート B とポート C 下位)の動作モード
			%0 : モード 0
			%1 : 〃     1
	bit 1	 PORT B IN/OUT
			%0 : ポート B は出力
			%1 : 〃		入力
	bit 0	 PORT C(Low) IN/OUT
			%0 : ポート C(下位) は出力
			%1 : 〃		      入力
	※最上位ビットが %1 の値を書き込むと、動作モード設定を行う.

==============================================================================

・I/O コントローラ

address	size	R/W
$e9c001	1.b	R	割り込みステータス
〃	〃	  W	割り込みマスク
$e9c003	1.b	  W	割り込みベクタ


IOC 割り込みステータス($e9c001):
	bit  7   6   5   4   3   2   1   0
	  ┌─┬─┬─┬─┬─┬─┬─┬─┐
	  │ │ │ │ │ │ │ │ │
	  └─┴─┴─┴─┴─┴─┴─┴─┘
	  │ │ │ │ │ │ │ └ PRTI EN
	  │ │ │ │ │ │ └ FDDI EN
	  │ │ │ │ │ └ FDCI EN
	  │ │ │ │ └ HDDI EN
	  │ │ │ └ HDD INT
	  │ │ └ PRT INT
	  │ └ FDD INT
	  └ FDC INT

	bit 7	FDC INT
			%0 : FDC 割り込みは発生していない
			%1 : 〃		       している
	bit 6	FDD INT
			%0 : FDD 割り込みは発生していない
			%1 : 〃		       している
	bit 5	PRT INT
			%0 : プリンタ BUSY 信号 = High(BUSY 状態)
			%1 : 〃			= Low (READY 状態)
	bit 4	HDD INT
			%0 : HDD 割り込みは発生していない
			%1 : 〃		       している
	bit 3	HDDI EN
			%0 : HDD 割り込み禁止中
			%1 : 〃		 許可中
	bit 2	FDCI EN
			%0 : FDC 割り込み禁止中
			%1 : 〃		 許可中
	bit 1	FDDI EN
			%0 : FDD 割り込み禁止中
			%1 : 〃		 許可中
	bit 0	PRTI EN
			%0 : プリンタ割り込み禁止中
			%1 : 〃		     許可中

IOC 割り込みマスク($e9c001):
	bit  7		 4   3   2   1   0
	  ┌───────┬─┬─┬─┬─┐
	  │		 │ │ │ │ │
	  └───────┴─┴─┴─┴─┘
			  │ │ │ └ PRTI EN
			  │ │ └ FDDI EN
			  │ └ FDCI EN
			  └ HDDI EN

	bit 3	HDDI EN
			%0 : HDD 割り込み禁止
			%1 : 〃		 許可
	bit 2	FDCI EN
			%0 : FDC 割り込み禁止
			%1 : 〃		 許可
	bit 1	FDDI EN
			%0 : FDD 割り込み禁止
			%1 : 〃		 許可
	bit 0	PRTI EN
			%0 : プリンタ割り込み禁止
			%1 : 〃		     許可

IOC 割り込みベクタ($e9c003):
	bit  7			 2   1   0
	  ┌───────────┬───┐
	  │		  Vect │DEVICE│
	  └───────────┴───┘

	bit 7~2 Vect	ベクタ番号
			割り込み発生時に使用するベクタ番号を設定する.
			下位 2 ビットは割り込み要因によって自動的に決定される.
	bit 1~0 DEVICE	割り込み要因
			%00 : FDC 割り込み
			%01 : FDD 〃
			%10 : HDD 〃
			%11 : プリンタ割り込み

==============================================================================

・コプロセッサ I/O

address	size	R/W
$e9e000	1.w	R	応答 CIR
$e9e002	1.w	  W	コントロール CIR
$e9e004	1.w	R	セーブ CIR
$e9e006	1.w	R/W	リストア CIR
$e9e008	1.w	---	(オペレーションワード CIR)
$e9e00a	1.w	  W	コマンド CIR
$e9e00c	1.w	---
$e9e00e	1.w	  W	コンディション CIR
$e9e010	1.l	  W	オペランド CIR
$e9e014	1.w	R	レジスタ選択 CIR
$e9e016	1.w	---
$e9e018	1.l	  W	命令アドレス CIR
$e9e01c	1.l	---	(オペランドアドレス CIR)

※第二アドレスの場合は $e9e080~$e9e09f.


応答 CIR($e9e000):
	bit 15  14  13  12		 8   7				 0
	  ┌─┬─┬─┬─────────┬───────────────┐
	  │CA│PC│DR│	  機能 │		   パラメータ │
	  └─┴─┴─┴─────────┴───────────────┘

	bit 15	CA	カムアゲイン
			%1 : CPU による何らかのサービス要求あり
	bit 14	PC	プログラムカウンタ受け取り要求
			%1 : 要求あり
	bit 13	DR	データ(オペランド)の転送方向
			%0 : ホスト CPU → 68881
			%1 : 68881 → ホスト CPU
			※機能ビットが %00100(ヌルプリミティブ)、%11100(命令前
			 例外取得プリミティブ)、%11101(命令中例外取得プリミテ
			 ィブ)の時は %0.
	bit 12~8	機能
			%00100 : ヌルプリミティブ
			%10xxx : 実行アドレス評価/データ転送プリミティブ
			%01100 : 単一メインプロセッサレジスタ転送プリミティブ
			%00001 : 複数コプロセッサレジスタ転送プリミティブ
			%11100 : 命令前例外取得プリミティブ
			%11101 : 命令中例外取得プリミティブ
	bit  7~0	パラメータ

コントロール CIR($e9e002):
	 このレジスタに書き込みが行われると、68881 は実行中の処理を直ちに中止
	し、ペンディングされている例外を全てクリアした後、アイドル状態に復帰す
	る.

セーブ CIR($e9e004):
	 このレジスタを読み出すと、68881 は現在の処理動作を中断し、動作状態ス
	テータスを返す.

リストア CIR($e9e006):
	 このレジスタに書き込みが行われると、68881 は動作を中断しリストア動作
	を開始する.

オペレーションワード CIR($e9e008):
	68881 では使用されない.

コマンド CIR($e9e00a):
	 68881 に対して命令を書き込むレジスタ.

コンディション CIR($e9e00e):
	 条件チェックを行う為に使用する.

オペランド CIR($e9e010):
	 データ転送に使用する.

レジスタ選択 CIR($e9e014):
	 レジスタ転送命令実行時に、68881 から CPU にレジスタマスクを渡す為に
	使用される.

命令アドレス CIR($e9e018):
	 PC を渡す為に使用する.

オペランドアドレス CIR($e9e01c):
	 68881 では使用されない.

==============================================================================