diff --git a/README.md b/README.md index 8725377..646486f 100644 --- a/README.md +++ b/README.md @@ -90,6 +90,9 @@ All feature phone LCDs I've seen are vertical, if you have a phone with a horizo | Power + Up | run on/off | | Power + Down | open/close menu | | Power + L/R | prev/next weapon | +| Power + LSoft | zoom in | +| Power + RSoft | zoom out | +| Power + Dial | map | * D-pad and keys 1-9 are rotated with the `--rotate` option (with screen or separately). * For phones without D-pad Center key (Nobby 170B) - up/down keys are used for fire. diff --git a/fpbuild/fp_layer.c b/fpbuild/fp_layer.c index ea2be8a..7143548 100644 --- a/fpbuild/fp_layer.c +++ b/fpbuild/fp_layer.c @@ -114,6 +114,8 @@ enum { KEYPAD_ENUM(X) }; enum { #define X(num, name) KEY_##name = num, X(0x01, ESCAPE) + X(0x0c, MINUS) + X(0x0d, EQUALS) X(0x0f, TAB) X(0x1a, LBRACKET) X(0x1b, RBRACKET) @@ -166,6 +168,10 @@ void keytrn_init(void) { KEY(RIGHT, KEY_APOSTROPHE) KEY(DOWN, KEY_ESCAPE) KEY(CENTER, KEY_ENTER) + + KEY(LSOFT, KEY_EQUALS) + KEY(RSOFT, KEY_MINUS) + KEY(DIAL, KEY_TAB) /* map */ #undef KEY }; int i, flags = sys_getkeymap(keymap); diff --git a/fpdoom/keytrn.c b/fpdoom/keytrn.c index 793c362..1f7f79f 100644 --- a/fpdoom/keytrn.c +++ b/fpdoom/keytrn.c @@ -35,6 +35,10 @@ void keytrn_init(void) { KEY(RIGHT, ']') KEY(DOWN, KEY_ESCAPE) KEY(CENTER, KEY_ENTER) + + KEY(LSOFT, KEY_EQUALS) + KEY(RSOFT, KEY_MINUS) + KEY(DIAL, KEY_TAB) /* map */ #undef KEY }; int i, flags = sys_getkeymap(keymap); diff --git a/fpdoom/syscode.c b/fpdoom/syscode.c index 8bce713..89288f9 100644 --- a/fpdoom/syscode.c +++ b/fpdoom/syscode.c @@ -779,11 +779,9 @@ static void keypad_init(void) { short *keymap = sys_data.keymap_addr; int i, j, row = 0, col = 0, ctrl; int nrow = _chip != 1 ? 8 : 5; -#if 0 // Usually col < 5 for SC6531DA. - int ncol = _chip != 1 ? 5 : 8; -#else // But the Children's Camera has UP at i=6, j=3. - int ncol = sys_data.keycols; -#endif + // Usually ncol = 5 for SC6531DA. + // But the Children's Camera has UP at i=6, j=3. + int ncol = _chip != 1 ? sys_data.keycols : 8; for (i = 0; i < ncol; i++) for (j = 0; j < nrow; j++)