extern inline u8 keypad_read_row(u8 row) {
u8 i, num;
if (row)
- _io_ports[M6811_PORTD] |= PORTD_KEYPAD_ROW;
+ bset((void*)&_io_ports[M6811_PORTD], PORTD_KEYPAD_ROW);
else
- _io_ports[M6811_PORTD] &= ~PORTD_KEYPAD_ROW;
+ bclr((void*)&_io_ports[M6811_PORTD], PORTD_KEYPAD_ROW);
bclr_misc_output(A3800_DISPLAY_WRITE); /* disable the display clock */
key = keypad_read_row(0);
if (!key) {
key = keypad_read_row(1);
+ key = keymap1[key];
+ } else
key = keymap0[key];
- }
- key = keymap1[key];
if (key != last_key) {
last_key = key;