実はPX-7キーボードアダプタで[0][1][2]キーを押したときに、[SUPER-IMPOSE][VIDEO][COMPUTER]キーが押されてしまう問題があります。あとは[5]キーを押したとき[INS]も押されてしまい、[1][2][3][4][6][7]キーを押すと[INS]が解除されてしまいます。
http://d.hatena.ne.jp/tanam/20141005/1412518858
まずはキーマトリクスをまとめます。
http://d4.princess.ne.jp/msx/datas/keyscan.html
X7 X6 X5 X4 X3 X2 X1 X0 Y0 7 6 5 4 3 2 1 0 Y1 + [ @ \ ^ - 9 8 Y2 B A _ / > < ] * Y3 J I H G F E D C Y4 R Q P O N M L K Y5 Z Y X W V U T S Y6 F3 F2 F1 かな CAP GRP CTR SHT Y7 RET SEL BS STP TAB ESC F5 F4 Y8 → ↓ ↑ ← DEL INS CLS SPC Y9 COM VID IMP
やはりY9の処理がまるまる抜けてましたので修正しました。ついでに[5]キーを押したとき[INS]も押されてしまう問題もなおりました。
PS2_MEGA2560.ino
(省略) void blink() { if (PIND==8) { // If your machine has more one line change this to 9 noInterrupts(); PORTC = 255; interrupts(); delayMicroseconds(5); noInterrupts(); PORTC = keyboard.MSX_KB_Matrix(0); interrupts(); } else { noInterrupts(); // Deactivate interruptions to avoid keyboard matrix corruption PORTC = keyboard.MSX_KB_Matrix(PIND+1); // 8 bits of the Matrix on PORT C (PIN interrupts(); // Activate interruptions } } (省略)