PS2Keyboardライブラリ側の問題を解決する。まずはPS/2のお勉強。
http://hp.vector.co.jp/authors/VA037406/html/ps2interface.htm
PC-8801用のキー割り当ては以下を参考にする。STOPはF12、COPYはF11、HELPはF10、PCは右の田キーとする。なおテンキーはカーソルキーでNumLockで数字キーになる。まだバグがあるようなので入力をリセットするのを左の田キーに割り当てた。
http://tulip-house.ddo.jp/digital/USBKEY88/index.html
余計なことをしないavailable2()とread2()を作成します。
PS2Keyboard.h
/** * Returns true if there is a char to be read, false if not. */ static bool available(); static bool available2(); /** * Returns the char last read from the keyboard. * If there is no char availble, -1 is returned. */ static int read(); static int read2(); };
PS2Keyboard.cpp
bool PS2Keyboard::available2() { if (CharBuffer || UTF8next) return true; CharBuffer = get_scan_code(); if (CharBuffer) return true; return false; } int PS2Keyboard::read2() { uint8_t result = UTF8next; if (result) { UTF8next = 0; } else { result = CharBuffer; if (result) { CharBuffer = 0; } else { return get_scan_code(); } } if (!result) return -1; return result; }