The Atari joystick port is a computer port used to connect various gaming controllers to game console and home computer systems in the 1970s to the 1990s. The Commodore 64 has two control ports on the rightmost side for attaching peripherial devices like joysticks, paddles, mouse, lightpen or dedicated hardware like sound digitizers..

The paddle buttons are also attached to the keyboard matrix. Pinout [] (Looking onto the connector from outside of the computer) Hint: Replace the lines 51-58 with this code for bit wise joystick input handling. Really??? Joysticks that are compatible with the 64 have a stick that the user may push in one of eight directions, and a "fire" button.

(Looking onto the connector from outside of the computer) Some people have made hardware "add-ons" that adds auto-fire capability to any joystick.

The X/Y inputs for paddle controllers are read out by two A/D converters in the MOS6581/8580 sound interface device, as they are analog values that can go from 0 to 255.

Together with the directional switches for the control stick, a standard joystick requires five connections and a common ground wire. The port, based on th Pushing the stick in a direction in between two of these "cardinal directions" activates two of the four switches. But: "Most of the times the game just won't work for a single reason: it expects a joystick on port 1."

Some Commodore compatible joysticks may have more than one such fire button, but in those cases both buttons will "do" the same things in a game; the software has no way of determining which fire button is used.

Most of the time? A joystick is a gaming control device. Every control port can have two paddles attached, and since the SID chip only has two A/D converters, there is a register for switching which port should be read. The connector itself is a 9 pin d-sub male, most devices of that time used this connector for plugging in joysticks.

Remind you: you said "almost no one of my games work out of the box." pressing space in some programs can be substituted for pressing fire), so the keyboard must be deactivated while the addresses of the joysticks are read. Some joysticks have a feature known as "auto-fire", to help out in those games where the best strategy is to shoot, shoot, shoot all the time: An oscillator delivers fast repeating pulses to the line normally connected to the fire button(s). I … In each byte, A joystick on port #1 is read through address 56321/$DC01, and one on control port #2 are read via address 56320/$DC00. Pinout of C64 Control port and layout of 9 pin D-SUB male connector and 9 pin D-SUB …

When a mouse is attached it is read similar to the paddles, the X/Y values are set by the mouse ball. There are more then 30000 game titles for C64 online; 90+% are made for port 2. other than with paddles - when the value exceeds 0 or 255 it wraps around and restarts, depending on the direction the mouse is pushed. The C64 is compatible with an old standard first used in the Atari 2600 gaming console; the same standard used on the VIC-20, the C128 and the Amigas.. Joysticks that are compatible with the 64 have a stick that the user may push in … Besides ground and five inputs for the switches and buttons, the control ports also provides +5V (the aforementioned auto-fire feature is "fed" from this supply line) and two analog inputs, designed as "ohmmeters": These analog lines are mostly used for The memory addresses 56321 (Control Port 1) and 56320 (Control Port 2) contain the exact position of the joystick. It was originally introduced on the Atari 2600 in 1977 and then used on the Atari 400 and 800 in 1979. The connector itself is a 9 pin d-sub male, most devices of that time used this connector for plugging in joysticks.

The control stick is mechanically connected to four switches; "up", "down", "left", and "right".

This BASIC program reads out both joystick ports and shows the pushed joystick arm (method: bit test). That can be achieved with Which means that Joystick at Port 2 can be simulated by holding space and pressing:This BASIC-program uses the joystick (port 2) to move an arrow on the screen. It went cross-platform with the Commodore VIC-20 of 1981, and was then used on many following machines from both companies, as well as a growing list of 3rd party machines like the MSX platform and various Sega consoles.

These positions can be read with the BASIC-Command Some values generated by pressed keys from the keyboard and the output of the joystick match (e.g.