昔ジャンク屋で入手したPOS用のPS/2接続キーボード。テンキー以外はラベルを入れることができる。鍵付き。

裏面はツメで嵌めこまれているだけなので簡単に外れる。キーボードのくせに基板が複雑。16bitマイコンが載っていた。
F2MC-16L MB90610A Series[pdf]

これは磁気カードリーダーにも対応しているためだろう。フラッシュメモリも搭載されていたのでログを取るのかもしれない。

解析結果

浜町庄金 研究開発 マイコンで遊んでばっかりで






停止(■) E0 3B / E0 F0 3B なし 再生・一時停止(▶||) E0 34 / E0 F0 34 なし 巻き戻し(|<<) E0 15 / E0 F0 15 あり 早送り(>>|) E0 4D / E0 F0 4D あり Vol- E0 21 / E0 F0 21 あり Mute E0 23 / E0 F0 23 なし Vol+ E0 32 / W0 F0 32 あり App1 56 / F0 56 なし App2 5E / F0 5E なし App3 8 / F0 8 なし Email 18 / E0 18 なし Internet 10 / E0 10 なし ScreenSaver 65 / E0 65 なし Sleep E0 3F / E0 F0 3F なし

Power E0 37 / E0 F0 37 Sleep E0 3F / E0 F0 3F Wake E0 5E / E0 F0 5EPowerキーは押すと電源OFFすることができる。ONはできない。PC本体が電源OFFの時にはPS/2キーボードに給電されていないからだ。しかしPowerキーの位置、危険な香り。
![]() | ELECOM メンブレン式キーボード 112キー PS2 スタンダードサイズ ブラック TK-FCM008BK エレコム 2009-08-21 売り上げランキング : 3869 Amazonで詳しく見る by G-Tools |

10 dim prog as pin re7 for digital input
20 while 1 do
30 if prog==0 then
40 print ticks
50 endif
60 endwhile
10 dim i
20 for i = 1 to 100
30 gosub fizzbuzz i
40 next
50 end
100 sub fizzbuzz n
110 if n%3==0 then
120 if n%5==0 then
130 print "FizzBuzz"
140 else
150 print "Fizz"
160 endif
170 elseif n%5==0 then
180 print "Buzz"
190 else
200 print n
210 endif
220 endsub



[HID.cpp]
uint8_t i;
if (k >= 136) { // it's a non-printing key (not a modifier)
k = k - 136;
} else if (k >= 128) { // it's a modifier key
_keyReport.modifiers |= (1<<(k-128));
k = 0;
} else { // it's a printing key
k = pgm_read_byte(_asciimap + k);
if (!k) {
setWriteError();
return 0;
}
if (k & 0x80) { // it's a capital letter or other character reached with shift
_keyReport.modifiers |= 0x02; // the left shift modifier
k &= 0x7F;
}
}


// 20120703 Arduino IDE1.0.1
// Arduino UNO R3 INT_NUM=0,PIN=2 / INT_NUM=1,PIN=3
// Arduino Leonardo INT_NUM=0,PIN=3 / INT_NUM=1,PIN=2 (wrong)
#define INT_NUM 1
#define INT_PIN 3
int led = 13;
volatile int state = LOW;
void setup()
{
pinMode(led, OUTPUT);
pinMode(INT_PIN, INPUT_PULLUP);
attachInterrupt(INT_NUM, blink, CHANGE);
}
void loop()
{
digitalWrite(led, state);
}
void blink()
{
state = !state;
}
ピン2またはピン3に押ボタンを接続して、設定通りだとボタンを押せばLEDが反転する(チャタリングはとりあえず無視して)。hardyboy