IOMap

ページ名:IOMap

ハードウェア情報-IOMap


I/Oエリア

addr レジスタ名 R/W Word/Byte 備考
0000 インタラプトリクエストレジスタ(マスタ) R B

PIC

(マスタ)

インタラプトサービスレジスタ(マスタ) R
動作コマンドワード2(マスタ) W
動作コマンドワード3(マスタ) W
初期化コマンドワード1(マスタ) W
0002 インタラプトマスクレジスタ(マスタ) R B
動作コマンドワード1(マスタ) W
初期化コマンドワード2(マスタ) W
初期化コマンドワード3(マスタ) W
初期化コマンドワード4(マスタ) W
0010 インタラプトリクエストレジスタ(スレーブ) R B

PIC

(スレーブ)

インタラプトサービスレジスタ(スレーブ) R
動作コマンドワード2(スレーブ) W
動作コマンドワード3(スレーブ) W
初期化コマンドワード1(スレーブ) W

0012

インタラプトマスクレジスタ(スレーブ) R B
動作コマンドワード1(スレーブ) W
初期化コマンドワード2(スレーブ) W
初期化コマンドワード3(スレーブ) W
初期化コマンドワード4(スレーブ) W
0020 リセット要因レジスタ R B  

ソフトリセット,NMIベクタプロテクト,

ソフト電源制御

W  
0022 電源制御レジスタ W B  
0024 CPU MISC3レジスタ R B  
0025 CPU MISC4レジスタ R B  
0026 フリーランタイマレジスタ(下位) R W  
0027 フリーランタイマレジスタ(上位) R W  
0028 NMIマスクレジスタ R/W B  
0030 CPU識別レジスタ R B/W  
0031 R  
0032 シリアルROM制御レジスタ R B  
W B  
0034 SCSIモードステータスレジスタ R B  
0040

タイマカウントレジスタ

PIT1

R/W B PIT1
0042 R/W
0044 R/W
0046

コントロールレジスタ1

PIT1(#0~#2)

W B
0050

タイマカウントレジスタ

PIT2

R/W B PIT2
0052 R/W
0054 R/W
0056

コントロールレジスタ2

PIT2(#3~#5)

W B
0060 割り込み要因レジスタ R B  
割り込み制御レジスタ W  
0068 インターバルタイマII 制御レジスタ R/W B  
006A インターバルタイマII データレジスタ(下位) R/W B/W  
006B インターバルタイマII データレジスタ(上位) R/W B/W  
006C 1uWAITレジスタ R/W B  
0070 RTCデータレジスタ R/W B RTC
0080 RTCコマンドレジスタ W B
00A0 イニシャライズレジスタ W B DMAC
00A1 チャネルレジスタ R/W
00A2 カウントレジスタ(下位) R/W B/W
00A3 カウントレジスタ(上位) R/W
00A4 アドレスレジスタ(下位) R/W
00A5 アドレスレジスタ(中位) R/W
00A6 アドレスレジスタ(上位) R/W
00A7 アドレスレジスタ(最上位) R/W
00A8 デバイスコントロールレジスタ R/W W
00A9 R/W
00AA モードコントロールレジスタ R/W B
00AB ステータスレジスタ R
00AC テンポラリレジスタ(下位) R
00AD テンポラリレジスタ(上位) R
00AE リクエストレジスタ R/W
00AF マスクレジスタ R/W
00B0 イニシャライズレジスタ W B 拡張DMAC
00B1 チャネルレジスタ R/W
00B2 カウントレジスタ(下位) R/W B/W
00B3 カウントレジスタ(上位) R/W
0B4 アドレスレジスタ(下位) R/W
00B5 アドレスレジスタ(中位) R/W
00B6 アドレスレジスタ(上位) R/W
00B7 アドレスレジスタ(最上位) R/W
00B8 デバイスコントロールレジスタ R/W W
00B9 R/W
00BA モードコントロールレジスタ R/W B
00BB ステータスレジスタ R
00BC テンポラリレジスタ(下位) R
00BD テンポラリレジスタ(上位) R
00BE リクエストレジスタ R/W
00BF マスクレジスタ R/W
00C0 キャッシュ制御レジスタ R/W B  
00C2 キャッシュ診断レジスタ R/W B  
0200 ステータスレジスタ R B FDC
コマンドレジスタ W
0202 トラックレジスタ R/W
0204 セクタレジスタ R/W
0206 データレジスタ R/W
0208 ドライブステータスレジスタ R B FD I/F
ドライブコントロールレジスタ W
020C ドライブセレクトレジスタ W
020D FDドライブ識別レジスタ R
020E ドライブスイッチレジスタ R/W
0400 システムステータスレジスタ R B  
0402 予約済み
0404 システムステータスレジスタ R/W B

VRAM,RAM切替

0440 アドレスレジスタ W B CRTC
0442 データレジスタ(下位) W W/B
0443 データレジスタ(上位) W
0448 アドレスレジスタ W B

ビデオ出力

コントローラ

044A データレジスタ W B
044C

デジタルパレット

モディファイフラグレジスタ

R B FMR互換
0450 アドレスレジスタ R/W B

スプライト

コントローラ

0452 データレジスタ R/W
0458 アドレスレジスタ R/W B

VRAMアクセス

コントローラ

045A データレジスタ(下位) R/W W/B
045B データレジスタ(上位) R/W
0470 高解像度機能レジスタ R B  
0471 VRAM容量レジスタ R B  
0472 画像出力制御アドレスレジスタ(下位) R/W W/B  
0473 画像出力制御アドレスレジスタ(上位) R/W  
0474 画像出力制御データレジスタ(最下位) R/W W/B  
0475 画像出力制御データレジスタ(下位) R/W  
0476 画像出力制御データレジスタ(上位) R/W  
0477 画像出力制御データレジスタ(最上位) R/W  
0480 メモリ切替レジスタ R/W B  
0484 辞書ROM R/W B  
048A メモリカードステータス R B  
0490 メモリカードバンクレジスタ R/W B  
0491 メモリカード属性レジスタ R/W B  
04B0 CD-ROM機能レジスタ R B CDC
04C0 マスタステータスレジスタ R B
マスタコントロールレジスタ W
04C2 ステータスレジスタ R
コマンドレジスタ W
04C4 データレジスタ R
パラメータレジスタ W
04C6 転送制御レジスタ W
04C8 CD-ROMキャッシュ制御レジスタ R/W
04CC CDサブコードステータスレジスタ R
04CD CDサブコードデータレジスタ R
04D0 パッド1入力レジスタ R B パッドI/F
04D2 パッド2入力レジスタ
04D5 FM,PCMミュートレジスタ R/W B ミュートレジスタ
04D6 パッド出力レジスタ W B パッドI/F
04D8 ステータスレジスタ R B FM音源
アドレスレジスタ0 W
04DA データレジスタ0 W B
04DC アドレスレジスタ1 W B
04DE データレジスタ1 W B
04E0 ボリューム1 データレジスタ R/W B 電子ボリューム
04E1 ボリューム1 COMレジスタ R/W B
04E2 ボリューム2 データレジスタ R/W B
04E3 ボリューム2 COMレジスタ R/W B
04E7 AD サンプリングデータレジスタ R B ADコンバータ
04E8 AD サンプリングフラグレジスタ R/W B
04E9 INT13 割り込み要因レジスタ R B  
04EA PCM 割り込みマスクレジスタ R/W B PCM音源
04EB PCM 割り込みレジスタ R B
04EC オーディオレジスタ R/W B  
04F0 ENV データレジスタ W B PCM音源
04F1 PAN データレジスタ W B
04F2 FDL データレジスタ W B
04F3 FDH データレジスタ W B
04F4 LSL データレジスタ W B
04F5 LSH データレジスタ W B
04F6 ST データレジスタ W B
04F7 コントロールレジスタ W B
04F8 チャネル ON/OFFレジスタ W B
0510 バンク切替レジスタ R/W B 新PCM音源
0511 DMAステータスレジスタ R/W B
0512 DMAカウンタレジスタ(下位) R/W W/B
0513 DMAカウンタレジスタ(上位) R/W
0514 DMAアドレスレジスタ(最下位) R/W W/B
0515 DMAアドレスレジスタ(下位) R/W
0516 DMAアドレスレジスタ(上位) R/W
0517 DMAアドレスレジスタ(最上位) R/W
0518 クロック設定レジスタ R/W B
0519 モード設定レジスタ R/W B
051A システムコントロールレジスタ R/W B
051B バッファコントロールレジスタ R/W B
051C 録音/再生制御レジスタ R/W B
051D 録音ピークモニタレジスタ R B
トリガレベルレジスタ W B
051E

レベルモニタレジスタ(下位) /

ソフト転送ポートレジスタ(下位)

R W/B
051F

レベルモニタレジスタ(上位) /

ソフト転送ポートレジスタ(上位)

R
0520 MIDIポートイネーブルレジスタ W B undocumented
05C0 NMIマスクレジスタ R/W B  
05C2 NMIステータスレジスタ R B  
05C8 TVRAM書込レジスタ R B  
05CA VSYNC割り込み原因クリアレジスタ W B  
05E0 メインRAMウェイト制御レジスタ R/W B undocumented
05E2 メインRAMウェイト制御レジスタ R/W B undocumented
05E4 用途不明 R/W B undocumented
05E6 VRAMウェイト制御レジスタ R/W B undocumented
05E8 メモリ容量レジスタ R B  
05EA 用途不明 R/W B undocumented
05EC スピード制御レジスタ R/W B  
05ED 最高速クロックレジスタ R B  
05EE VRAMキャッシュ制御レジスタ R/W B  
05F0 認識メモリ容量レジスタ R B undocumented
05F1 用途不明 R/W B undocumented
05F2 用途不明 R/W B undocumented
0600 キーボードデータレジスタ R B キーボードI/F
8042データレジスタ W B
0602 ステータスレジスタ R B
コマンドレジスタ W B
0604 割り込み要因フラグレジスタ R B
割り込み制御レジスタ W B
0606 BUFFULレジスタ R B チューナーカード
0800 ステータスレジスタ1 R B プリンタI/F
データレジスタ W B
0802 ステータスレジスタ2 R B
コントロールレジスタ W B
0804 割り込み制御レジスタ W B
0A00 受信データレジスタ R B USART
送信データレジスタ W B
0A02 ステータスレジスタ1 R B
モードレジスタ W B
コマンドレジスタ W B
0A04 ステータスレジスタ2 R B RS-232C I/F
0A06 割り込み要因レジスタ R B
0A08 割り込み制御/クロック切替レジスタ W B
0A0A モデム制御レジスタ R/W B
0A0C FIFOモードレジスタ R/W B
0A0D FIFOステータスレジスタ R/W B
0A0E FIFO制御レジスタ R/W B
0C30 データレジスタ R/W B SCSI I/F
0C32 ステータスレジスタ R B
コントロールレジスタ W B
4014 PCカードステータス R B PCカード
FD90 アナログパレットコード R/W B アナログパレット
FD92 青色のパレットコード R/W B
FD94 赤色のパレットコード R/W B
FD96 緑色のパレットコード R/W B
FD98 パレットデータ0 R/W B

FMR互換

デジタルパレット

FD99 パレットデータ1 R/W B
FD9A パレットデータ2 R/W B
FD9B パレットデータ3 R/W B
FD9C パレットデータ4 R/W B
FD9D パレットデータ5 R/W B
FD9E パレットデータ6 R/W B
FD9F パレットデータ7 R/W B
FDA0 SUBステータスレジスタ R B FMR互換
CRT出力コントロールレジスタ W B  
FDA2 CRT出力コントロールレジスタ R B  
FDA4 リードコンパチブルレジスタ R/W B  

メモリマップドI/O

addr レジスタ名 R/W Word/Byte 備考
000C FF80 MIXレジスタ R/W B ダミー
000C FF81

グラフィックVRAM

更新モードレジスタ

R/W B FMR互換
000C FF82

グラフィックVRAM

ディスプレイモードレジスタ

R/W B
000C FF83

グラフィックVRAM

ページセレクトレジスタ

R/W B
000C FF84 FIRQレジスタ R B 予備
000C FF86 STATUSレジスタ R B FMR互換
000C FF88

グラフィックVRAM

ディスプレイモードレジスタ

R B  
000C FF94 漢字CG アクセスレジスタ R/W B  
000C FF95 W B  
000C FF96 R/W B  
000C FF97 R/W B  
000C FF98 ブザー制御レジスタ R/W B  
000C FF99 漢字VRAMレジスタ R/W B  
000C FF9C 漢字CGアクセスレジスタ2(下位) R B  
000C FF9D 漢字CGアクセスレジスタ2(上位) R B  
000C FF9E CG ROWアドレスレジスタ R/W B  
000C FFA0 論理演算レジスタ R B  

 

コメント

返信元返信をやめる

※ 悪質なユーザーの書き込みは制限します。

最新を表示する
WINDY ID:Y2Q2NzI5Z

たけがみりうさんの公開されている情報に基づき、undocumentな物を追加
中身はこれから
貴重な情報を有り難うございます。

返信
2020-10-09 10:12:17

WINDY ID:OTc4MmNiN

>>たけがみりうさん
ああ、そうですね。どうもFM-11と言うとAD,AD2という概念が頭にありました。
取り立てて使いにくい訳ではなく、良い他にマップ方法も無さそうなので実績と互換性を重視したのでしょう。

返信
2020-08-20 13:09:16

たけがみりう ID:NTViYjliM

>WINDYさん
あの…FM-11の8088機(EX/BS)はTOWNS同様にx86アーキテクチャ採用(※メインシステムのみ)なのですが…

返信
2020-08-20 11:43:42

WINDY ID:OTc4MmNiN

たけがみりうさん、有り難うございます。
そんな歴史的経緯が有ったとは・・・ TOWNSはFMR-50をベースにしていますのでそれ由来程度と思っていましたが、FM-11から引きずる理由が有ったのかどうか不明ですね。CPUからして全く異なるので単純にI/Oだけ互換性を持たせてもソフトの移植の際に楽になる事は無いでしょうに。
すっきりしました。

返信
2020-08-20 10:05:53

たけがみりう ID:NTViYjliM
>> 返信元

また、メモリマップドI/Oポート $000CFF80~$000CFFBFに関してはFM-16βのサブシステムのダイレクトパスを前提としたアドレスに配置されており、FM-16βのサブCPUであるMC68B09E(MBL68B09E)がBig Endianだったために$000CFF94~$000CFF95もBig Endianとなっていますし、TOWNSで予約済となっている一部のレジスタはFM-16βのサブシステムの名残です。恐らくこれらのI/OポートがI/O空間 $FF80~$FFBFにもあるのはFMR-50、あるいはTOWNSからの仕様だと思われます。

返信
2020-08-20 08:59:31

たけがみりう ID:NTViYjliM
>> 返信元

I/Oポート $FD98~$FDA0に関してはFM-11のメインシステム由来のポートで、FM-11の6809機(ST/AD/EX/AD2/AD2+)ではMC68B09E(MBL68B09E)のメモリマップドI/Oとなり、8088機(EX/BS)ではi8088(MBL8088)のI/O空間に置かれるようになっていました。そのため、8088機の設計がほぼそのままFM-16β以降に引き継がれたと考えられます。(続きます)

返信
2020-08-20 08:55:32

WINDY ID:ZjhjNjg5N
>> 返信元

X TOWNSのソースをざっと目を通してみました。
0472H,0473Hの画像出力制御アドレスレジスタ,及び0474H~0477Hの画像出力制御データレジスタがソース上ではCRTC2となっており、ハイレゾの場合はそちらにアクセスしていますね。

返信
2020-08-18 15:39:24

WINDY ID:ZjhjNjg5N
>> 返信元

MA/MX以降のハイレゾ&フルカラー 及びHA/HB/HC等のWindowsアクセラレータに関しては具体的な情報は残念ながら持ち合わせていません。
Linuxは上記画面モード全てを対応していますので、Linuxのソースを読むことが唯一の情報源だと思われます。

返信
2020-08-18 11:06:19

山川機長 ID:MDEyYzFjN

多分、memory mapped I/Oが出っぱなしだと使いやすいと思うのですが、メモリバンクを切り替えなくてはならなかったりするのでちょっと使いにくかったかもしれません。

気になっているのがFDxxはCFDxxに出ているのだろうか?ということですが、今のところCFDxxでI/Oをパレットをいじってるようなソフトには出くわしてないですね。

あと、MA MXで増えたハイレゾモードのCRTCレジスタの意味とか情報無いですよね。一応、津軽の目標はMX相当の再現なのですが、ハイレゾモードをどうしたもんかと思ってます。

返信
2020-08-18 06:15:27

WINDY ID:ZTdlMjIwM

有り難うございます。 そう言えば忘れていましたが、各I/Oポートに対応機種を明記します。

メモリマップドI/O(CFFxx)がI/OのFFxxに出ているとは気づきませんでした。そちらも明記しておくべきでしょう。
私としてはメモリマップドI/Oの方が使いやすいのですが、インテル系を使用して来られた方はIN/OUT命令の方が使いやすいのだろうか。

返信
2020-08-17 12:49:46

山川機長 ID:OTJhMDg2O

赤本だと新しく追加されたI/OがAppendixに別に載っててやや見づらかったので、まとまっていると非常に見やすくて良いですね。

そういえば、メモリマップI/Oの CFFxx ですが、すべて通常I/Oの FFxx にも出ているようです。結構多くのタイトルでI/O FFxxをアクセスしていました。

返信
2020-08-17 11:34:52

WINDY ID:MmY4OWNkN

赤本に載っている物は一通り書きました。
赤本はHA/HB/HCシリーズについての記載が無いため、これらの機種で追加されたポートや
赤本に未記載の情報については判明すれば記載する方向

返信
2020-07-07 17:10:16