29 lines
964 B
C
29 lines
964 B
C
#include <stdint.h>
|
|
#include <SFML/Window.h>
|
|
|
|
extern uint8_t systemRegister;
|
|
extern uint8_t keyboardResult;
|
|
extern sfKeyCode currentKey;
|
|
|
|
const static sfKeyCode scanMatrix[48] = {
|
|
sfKeyNum1, sfKeyNum2, sfKeyNum3, sfKeyNum4, sfKeyNum5, sfKeyNum6, sfKeyNum7, sfKeyNum8,
|
|
sfKeyQ, sfKeyW, sfKeyE, sfKeyR, sfKeyT, sfKeyY, sfKeyU, sfKeyI,
|
|
sfKeyA, sfKeyS, sfKeyD, sfKeyF, sfKeyG, sfKeyH, sfKeyJ, sfKeyK,
|
|
sfKeyZ, sfKeyX, sfKeyC, sfKeyV, sfKeyB, sfKeyN, sfKeyM, sfKeyComma,
|
|
sfKeyNum9, sfKeyNum0, sfKeyL, sfKeyO, sfKeyP, sfKeyPeriod,sfKeyEnter, sfKeyBackspace,
|
|
sfKeyLShift,sfKeyLControl, sfKeyLAlt, sfKeySpace, sfKeyUp, sfKeyRight, sfKeyDown, sfKeyLeft,
|
|
};
|
|
|
|
|
|
void scanKeyboard(){
|
|
keyboardResult = 0;
|
|
|
|
for (int i = 0; i < 8; i++) {
|
|
if (currentKey == scanMatrix[i + (((systemRegister & 0x07) % 6) * 8)]){
|
|
keyboardResult |= (0x80 >> i);
|
|
}
|
|
}
|
|
|
|
keyboardResult ^= 0xFF;
|
|
}
|