]> git.sur5r.net Git - cc65/commitdiff
Merge pull request #467 from pmjdebruijn/joy
authorOliver Schmidt <ol.sc@web.de>
Fri, 28 Jul 2017 17:17:50 +0000 (19:17 +0200)
committerGitHub <noreply@github.com>
Fri, 28 Jul 2017 17:17:50 +0000 (19:17 +0200)
joy: refactor generic joy_masks array indices and macros

include/cbm.h
include/gamate.h
include/joystick.h
include/lynx.h
include/nes.h
include/pce.h

index 226a09793d5348d1e7e3f703e941a04b32613c40..27e82f9f3b303eb17e527fd3be77ddfb22b68e08 100644 (file)
 
 
 
+/* Expanding upon joystick.h */
+#define JOY_FIRE_IDX            4
+
+#define JOY_FIRE(v)             ((v) & joy_masks[JOY_FIRE_IDX])
+
+
+
 /*****************************************************************************/
 /*                                 Variables                                 */
 /*****************************************************************************/
index 96c70c9bcdeb1e12fb80742d0429e9ef5d5cccc8..7355ede84da6d8eb679653fe6b855baa29662d0d 100644 (file)
  bit 3:
 */
 
-#define JOY_DATA        0x4400
-
-#define JOY_DATA_UP     0x01
-#define JOY_DATA_DOWN   0x02
-#define JOY_DATA_LEFT   0x04
-#define JOY_DATA_RIGHT  0x08
-#define JOY_DATA_FIRE_A 0x10
-#define JOY_DATA_FIRE_B 0x20
-#define JOY_DATA_START  0x40
-#define JOY_DATA_SELECT 0x80
-
 /* LCD
 
     resolution 160x152 in 4 greys/greens
 /* No support for dynamically loadable drivers */
 #define DYN_DRV         0
 
+/* Expanding upon joystick.h */
+#define JOY_BTN_A_IDX           4
+#define JOY_BTN_B_IDX           5
+#define JOY_START_IDX           6
+#define JOY_SELECT_IDX          7
+
+#define JOY_BTN_A(v)            ((v) & joy_masks[JOY_BTN_A_IDX])
+#define JOY_BTN_B(v)            ((v) & joy_masks[JOY_BTN_B_IDX])
+#define JOY_START(v)            ((v) & joy_masks[JOY_START_IDX])
+#define JOY_SELECT(v)           ((v) & joy_masks[JOY_SELECT_IDX])
+
 /* The addresses of the static drivers */
 extern void gamate_stdjoy_joy[];   /* Referred to by joy_static_stddrv[] */
 
-#define JOY_FIRE_B      5
-#define JOY_START       6
-#define JOY_SELECT      7
-
 void waitvsync (void);
 /* Wait for start of next frame */
 
index 710d9b5a6b65852ae65101a72647a0888388f763..f08dd432aa6614facb8f235e0dd090fe3dff7d9a 100644 (file)
 #define JOY_ERR_NO_DEVICE       4       /* Device (hardware) not found */
 
 /* Argument for the joy_read function */
-#define JOY_1           0
-#define JOY_2           1
+#define JOY_1                   0
+#define JOY_2                   1
 
 /* The following codes are *indices* into the joy_masks array */
-#define JOY_UP          0
-#define JOY_DOWN        1
-#define JOY_LEFT        2
-#define JOY_RIGHT       3
-#define JOY_FIRE        4
-#define JOY_FIRE2       5               /* Second fire button if available */
+#define JOY_UP_IDX              0
+#define JOY_DOWN_IDX            1
+#define JOY_LEFT_IDX            2
+#define JOY_RIGHT_IDX           3
+#define JOY_BTN_1_IDX           4       /* Universally available */
+#define JOY_BTN_2_IDX           5       /* Second fire button if available */
+#define JOY_BTN_3_IDX           6       /* Third fire button if available  */
+#define JOY_BTN_4_IDX           7       /* Fourth fire button if available */
 
 /* Array of masks used to check the return value of joy_read for a state */
 extern const unsigned char joy_masks[8];
 
 /* Macros that evaluate the return code of joy_read */
-#define JOY_BTN_UP(v)           ((v) & joy_masks[JOY_UP])
-#define JOY_BTN_DOWN(v)         ((v) & joy_masks[JOY_DOWN])
-#define JOY_BTN_LEFT(v)         ((v) & joy_masks[JOY_LEFT])
-#define JOY_BTN_RIGHT(v)        ((v) & joy_masks[JOY_RIGHT])
-#define JOY_BTN_FIRE(v)         ((v) & joy_masks[JOY_FIRE])
-#define JOY_BTN_FIRE2(v)        ((v) & joy_masks[JOY_FIRE2])
+#define JOY_UP(v)               ((v) & joy_masks[JOY_UP_IDX])
+#define JOY_DOWN(v)             ((v) & joy_masks[JOY_DOWN_IDX])
+#define JOY_LEFT(v)             ((v) & joy_masks[JOY_LEFT_IDX])
+#define JOY_RIGHT(v)            ((v) & joy_masks[JOY_RIGHT_IDX])
+#define JOY_BTN_1(v)            ((v) & joy_masks[JOY_BTN_1_IDX])
+#define JOY_BTN_2(v)            ((v) & joy_masks[JOY_BTN_2_IDX])
+#define JOY_BTN_3(v)            ((v) & joy_masks[JOY_BTN_3_IDX])
+#define JOY_BTN_4(v)            ((v) & joy_masks[JOY_BTN_4_IDX])
 
 /* The name of the standard joystick driver for a platform */
 extern const char joy_stddrv[];
index 72f3d5bfd6a4221fc2b98e69986544e3d8a9e73c..c30ca6265d2963a51a22ec45c6177f8e13d79d16 100644 (file)
 
 
 
+/* Expanding upon joystick.h */
+#define JOY_BTN_A_IDX           4
+#define JOY_BTN_B_IDX           5
+
+#define JOY_BTN_A(v)            ((v) & joy_masks[JOY_BTN_A_IDX])
+#define JOY_BTN_B(v)            ((v) & joy_masks[JOY_BTN_B_IDX])
+
+
+
 /*****************************************************************************/
 /*                                 Variables                                 */
 /*****************************************************************************/
index 3e139e00cff247b1d2dd665522dc668c3d96a7b6..0b65cdbe4148ecf18d3fac7edfef3325ddc85c17 100644 (file)
 #define DYN_DRV         0
 
 /* Expanding upon joystick.h */
-#define JOY_A           4
-#define JOY_B           5
-#define JOY_SELECT      6
-#define JOY_START       7
-
-#define JOY_BTN_A(v)            ((v) & joy_masks[JOY_A])
-#define JOY_BTN_B(v)            ((v) & joy_masks[JOY_B])
-#define JOY_BTN_SELECT(v)       ((v) & joy_masks[JOY_SELECT])
-#define JOY_BTN_START(v)        ((v) & joy_masks[JOY_START])
+#define JOY_BTN_A_IDX           4
+#define JOY_BTN_B_IDX           5
+#define JOY_SELECT_IDX          6
+#define JOY_START_IDX           7
+
+#define JOY_BTN_A(v)            ((v) & joy_masks[JOY_BTN_A_IDX])
+#define JOY_BTN_B(v)            ((v) & joy_masks[JOY_BTN_B_IDX])
+#define JOY_SELECT(v)           ((v) & joy_masks[JOY_SELECT_IDX])
+#define JOY_START(v)            ((v) & joy_masks[JOY_START_IDX])
 
 /* Define hardware */
 
index ac6b2503fe7fa48591a026d57a2d5b1fcd0af4f7..12b596cf916112e4029b8c65075382c1c32945b7 100644 (file)
 #define DYN_DRV         0
 
 /* Expanding upon joystick.h */
-#define JOY_I           4
-#define JOY_II          5
-#define JOY_SELECT      6
-#define JOY_RUN         7
+#define JOY_BTN_I_IDX           4
+#define JOY_BTN_II_IDX          5
+#define JOY_SELECT_IDX          6
+#define JOY_RUN_IDX             7
 
-#define JOY_BTN_I(v)            ((v) & joy_masks[JOY_I])
-#define JOY_BTN_II(v)           ((v) & joy_masks[JOY_II])
-#define JOY_BTN_SELECT(v)       ((v) & joy_masks[JOY_SELECT])
-#define JOY_BTN_RUN(v)          ((v) & joy_masks[JOY_RUN])
+#define JOY_BTN_I(v)            ((v) & joy_masks[JOY_BTN_I_IDX])
+#define JOY_BTN_II(v)           ((v) & joy_masks[JOY_BTN_II_IDX])
+#define JOY_SELECT(v)           ((v) & joy_masks[JOY_SELECT_IDX])
+#define JOY_RUN(v)              ((v) & joy_masks[JOY_RUN_IDX])
 
 /* The addresses of the static drivers */
 extern void pce_stdjoy_joy[];   /* Referred to by joy_static_stddrv[] */
 
-#define JOY_FIRE_B              5
-#define JOY_SELECT              6
-#define JOY_RUN                 7
-
 void waitvsync (void);
 /* Wait for start of the next frame */