====== JOY ====== [vic20] [c64] [c16] [cplus4] [c128] [x16] [m65] The ''JOY()'' function returns the status of either joysticks. ===== Function header ===== DECLARE FUNCTION JOY AS BYTE (portnum AS BYTE) SHARED STATIC INLINE Where //portnum// is an expression that evaluates to 1 or 2. On the Commodore VIC-20, //portnum// is ignored. The return value is a BYTE where bits corresponding to a direction are set or unset. The direction to bit mapping if different on each target: * On [c64] [c128] [m65]: * Bit #0 is set if joystick is being pulled up * Bit #1 is set if joystick is being pulled down * Bit #2 is set if joystick is being pulled left * Bit #3 is set if joystick is being pulled right * Bit #4 is set if fire button is depressed * On [vic20]: * Bit #2 is set if joystick is being pulled up * Bit #3 is set if joystick is being pulled down * Bit #4 is set if joystick is being pulled left * Bit #5 is set if fire button is depressed * Bit #7 is set if joystick is being pulled right * On [c16] and [cplus4]: * Bit #0 is set if joystick is being pulled up * Bit #1 is set if joystick is being pulled down * Bit #2 is set if joystick is being pulled left * Bit #3 is set if joystick is being pulled right * Bit #6 is set if fire button is depressed on joystick 1 * Bit #7 is set if fire button is depressed on joystick 2 ===== Example ===== Using the following example, you can read the joystick status on all platforms: ' Uncomment if target is VIC-20 'CONST JOYUP = 4 'CONST JOYDN = 8 'CONST JOYLT = 16 'CONST JOYRT = 128 'CONST J1FIRE = 32 ' Uncomment if target is C64 'CONST JOYUP = 1 'CONST JOYDN = 2 'CONST JOYLT = 4 'CONST JOYRT = 8 'CONST J1FIRE = 16 'CONST J2FIRE = 16 ' Uncomment if target is C16 or C Plus/4 'CONST JOYUP = 1 'CONST JOYDN = 2 'CONST JOYLT = 4 'CONST JOYRT = 8 'CONST J1FIRE = 64 'CONST J2FIRE = 128 DIM j AS BYTE lab: j = JOY(1) IF j = 0 THEN GOTO lab IF j AND JOYUP THEN PRINT " up"; IF j AND JOYDN THEN PRINT " down"; IF j AND JOYLT THEN PRINT " left"; IF j AND JOYRT THEN PRINT " right"; IF j AND J1FIRE THEN PRINT " fire"; PRINT "" GOTO lab