PIO
I/O ポートアドレス
メモリにマッピングされている I/O なので、メモリ空間に対してアクセスを行ってください。
アドレス | 内容 |
F8000002h | データ |
F8000004h | コントロール/ステータス |
レジスタ
データ(Half)
| READ | WRITE |
bit0-7 | 受信データ | 送信データ |
コントロール(Half)
| READ | WRITE |
bit0 | | |
bit1 | | |
bit2 | nACK | |
bit3 | nSTROBE | |
bit4 | | nACK |
bit5 | | nSTROBE |
bit6 | | |
bit7 | | |
プロトコル
1byte のデータを送受信するには、以下の動作を行います。
- データ送信側がデータポートにデータを出力する
- データ送信側が nSTROBE を 0 にする
- データ受信側がデータを読み取る
- データ受信側が nACK を 0 にする
- データ送信側が nSTROBE を 1 にする
- データ受信側が nACK を 1 にする
コマンド
ファイルハンドルが 00h の場合は内蔵バックアップメモリ、01h の場合は外部バックアップメモリを意味する。
putstr(80h)
文字列を出力する
コマンド | [80h] [文字列長さ(1word)] [文字列(n byte)] |
putchar(81h)
1文字出力する
getchar(82h)
1文字入力する
コマンド | [82h] |
レスポンス | [入力文字(1byte)] |
open(83h)
ファイルを開く。失敗するとファイルハンドルに FFh を返す
コマンド | [83h] [ファイル名長(1word)] [ファイル名(n byte)] [モード長さ(1word)] [モード(n byte)] |
レスポンス | [ファイルハンドル(1byte)] |
close(84h)
ファイルを閉じる
コマンド | [84h] [ファイルハンドル(1byte)] |
read(85h)
ファイルから読み込む
コマンド | [85h] [ファイルハンドル(1byte)] [読み込み長さ(1word)] |
レスポンス | [読み込まれたデータ(n byte)] [(1word)] |
write(86h)
ファイルへ書き込む
コマンド | [86h] [ファイルハンドル(1byte)] [書き込み長さ(1word)] [書き込みデータ(n byte)] |
レスポンス | [書き込まれた長さ(1word)] |
seek(87h)
ファイルポインタを移動する
コマンド | [87h] [ファイルハンドル(1byte)] [オフセット位置(1word)] [場所(1byte)] |
レスポンス | [新しい位置(1word)] |
send check(88h)
送信できるかチェックする。
不明(89h)
デバッガも PIO を利用している。PC 側から割り込みをかけ 48h,75h,[command] と言うデータを PC-FXGA にデバッガのコマンドとして送信する。
不明(00h)
不明(01h)
MRAM 1byte 読み込み(02h)
MRAM 1byte 書き込み(03h)
実行(04h)
デバッガワーク読み込み(05h)
デバッガワーク書き込み(06h)
MRAM ブロック読み込み(07h)
MRAM ブロック書き込み(08h)
不明(09h)
不明(0Ah)
MRAM 定数一括書き込み(0Bh)
不明(0Ch)
MRAM 1half word 読み込み(0Dh)
MRAM 1half word 書き込み(0Eh)
MRAM 1word 読み込み(0F)
MRAM 1word 書き込み(10h)
現在アドレス取得?(11h)
不明(12h)
VRAM 読み込み(13h)
VRAM 書き込み(14h)
VRAM ブロック読み込み(15h)
VRAM ブロック書き込み(16h)
VRAM 定数一括書き込み(17h)
KRAM 読み込み(18h)
KRAM 書き込み(19h)
KRAM ブロック読み込み(1Ah)
KRAM ブロック書き込み(1Bh)
KRAM 定数一括書き込み(1Ch)
VRAM to VRAM コピー(1Dh)
VRAM to MRAM コピー(1Eh)
MRAM to VRAM コピー(1Fh)
KRAM to KRAM コピー(20h)
KRAM to MRAM コピー(21h)
MRAM to KRAM コピー(22h)
MRAM to MRAM コピー(23h)
MRAM 1word 読み込み(24h)
MRAM 1half word 読み込み(25h)
パレット読み込み(26h)
パレット書き込み(27h)
パレットブロック読み込み(28h)
パレットブロック書き込み(29h)
I/O ポート 1byte 入力(2Ah)
I/O ポート 1half word 入力(2Bh)
I/O ポート 1word 入力(2Ch)
I/O ポート 1byte 出力(2Dh)
I/O ポート 1half word 出力(2Eh)
I/O ポート 1word 出力(2Fh)
不明(30h)
不明(31h)
不明(32h)
不明(33h)
不明(34h)
不明(35h)
不明(36h)
不明(37h)
不明(38h)
不明(39h)
不明(3Ah)
不明(3Bh)
不明(3Ch)
不明(3Dh)
不明(3Eh)
不明(3Fh)
不明(40h)
実行アドレス設定?(41h)
不明(42h)
不明(43h)
不明(44h)
不明(45h)
不明(46h)