8049 への書き込み、読み出しはいつ行われるのか、P60-BASIC から調べてみました。
・8049 からの読み出しと8049 が返す値
1)キー割り込み@ (CMT使用時にSTOP が押された時)
返す値は1バイト。0x0E or 0x10
2)キー割り込みA (グラフィックキー、ファンクションキー、STOPキーが押された時)
返す値は2バイト。0x14 + キーコード
キーコードは、グラフィックキーならそのASCIIコード、ファンクションキーなら、F0H〜F9H、STOPキーなら、03H
3)キー割り込みB (一般のキーが押された時)
返す値は2バイト。0x02 + キーのASCIIコード
4)ゲーム用キー割り込み
返す値は2バイト。0x16 + キーコード
キーコードは1バイトで、bit7-0 が [SPC] ["L"] [←] [→] [↓] [↑] [STOP] {SHIFT] となる。bit6 は L 固定。
5)CMT リード割り込み(1バイト受信)
返す値は2バイト。0x08 + 受信データ
6)CMT リードエラー割り込み
返す値は1バイト。0x12
7)RS-232C 割り込み(RxRDY受信)
返す値は1バイト。0x04
1)〜3)は、キー入力がトリガ。5)6)はCMT からのデータ入力がトリガ。7)は、RxRDY がトリガ。
4)は、コマンド 0x06 に対する返答(下記参照)。
・8049 へ出力する値
1)ゲーム用キーの調査
出力する値は1バイト。0x06
結果は、割り込みで返してくる。
2)RS-232C 用初期設定(?)
出力する値は1バイト。0x0C
3)CMT 入力用初期設定(?)
出力する値は1バイト。0x2C
4)CMT 入力OPEN宣言
出力する値は2バイト。1200ボーは、0x1E + 0x19。600ボーは、0x1D + 0x19。
5)CMT 入力CLOSE宣言
出力する値は1バイト。0x1A
6)CMT 出力用初期設定(?)
出力する値は1バイト。0x34
7)CMT 出力OPEN宣言
出力する値は2バイト。1200ボーは、0x3E + 0x39。600ボーは、0x3D + 0x39。
8)CMT 出力CLOSE宣言
出力する値は1バイト。0x3A
9)CMT 1バイト出力
出力する値は2バイト。0x38 + 送信データ
かなキーのLED に関しては、8049 で閉じているようで、P60-BASIC内には制御コマンドがありませんでした。
2011年10月12日
この記事へのコメント
コメントを書く

