趣味の電子工作と釣りについて。電子工作は、おもに変換器作成。釣りはおもにトラウトの管釣り。
忘れないうちにメモしておく。
① CLKとDATAの2本の線でデータのやりとりをする。
② CLKはつねにキーボードからホスト(Mac)に向けて送信する。
③ RS-232CやPS/2と違って、MSB firstでデータを送受信する。(さすが68系)
④ホストはCLK立ち上がりのタイミングでDATAを読む
⑤キーボードはCLK立ち上がりから80μs秒後にDATAを読む
⑥ホストからなにもしなければ、キーを押してもキーボードからデータを送ってこない。(無理にキーから値を読もうとすると無限ループにはまってハングする)
⑦ホストから0x10 (Inquiry)をキーボードに送ると、キー入力がある、ないにかかわらず、キーボードからデータを送ってくる。キー入力がなければNULL(0x7B)を返す。あれば該当するキーコードを返す。
⑧M0110が返すキーボードは、ADBキーボードが返すキーコードをちょうど2倍した値(左に1ビットシフトした値)になぜかなっている。
この図の言わんとすることは、つまり
キーボードからデータを受け取るときは、CLKがHighになるまでループさせて、HighになったときにDATAを読む。
キーボードへデータを送るときは、とりあえずDATAをLowにしておき、しばらくするとキーボードからクロックを送って(Lowにして)くるので、HighからLowに切り替わるタイミングでDATAへ書く。
これだけ。古いだけあって、簡単。
① CLKとDATAの2本の線でデータのやりとりをする。
② CLKはつねにキーボードからホスト(Mac)に向けて送信する。
③ RS-232CやPS/2と違って、MSB firstでデータを送受信する。(さすが68系)
④ホストはCLK立ち上がりのタイミングでDATAを読む
⑤キーボードはCLK立ち上がりから80μs秒後にDATAを読む
⑥ホストからなにもしなければ、キーを押してもキーボードからデータを送ってこない。(無理にキーから値を読もうとすると無限ループにはまってハングする)
⑦ホストから0x10 (Inquiry)をキーボードに送ると、キー入力がある、ないにかかわらず、キーボードからデータを送ってくる。キー入力がなければNULL(0x7B)を返す。あれば該当するキーコードを返す。
⑧M0110が返すキーボードは、ADBキーボードが返すキーコードをちょうど2倍した値(左に1ビットシフトした値)になぜかなっている。
この図の言わんとすることは、つまり
キーボードからデータを受け取るときは、CLKがHighになるまでループさせて、HighになったときにDATAを読む。
キーボードへデータを送るときは、とりあえずDATAをLowにしておき、しばらくするとキーボードからクロックを送って(Lowにして)くるので、HighからLowに切り替わるタイミングでDATAへ書く。
これだけ。古いだけあって、簡単。
PR
この記事にコメントする