Why did pressing the joystick button spit out keypresses?Differences in disk storage between systemsTesting/using a joystick in AppleSoft?9-pin port for both RS-232 and Atari joystick?Can someone help me get xROAR to read files? (M6809/TRS-80 ColorComputer)What is the history of DE-9 joystick ports?Why does waggling the joystick of a C64 cause errors loading from tape?How to get Windows XP to detect joystick?How to create a switchless multi-system 2 button Atari joystick?New joystick (or build one) for Atari 800Why are C64 games inconsistent with which joystick port they use?
Is it illegal to withhold someone's passport and green card in California?
How many people are necessary to maintain modern civilisation?
Who are the remaining King/Queenslayers?
Helping ease my back pain when I'm studying 13 hours everyday, even weekends
Unusual mail headers, evidence of an attempted attack. Have I been pwned?
Can Ogre clerics use Purify Food and Drink on humanoid characters?
How to find the last non zero element in every column throughout dataframe?
How does the spell Remove Curse interact with a Sword of Vengeance?
How is hair tissue mineral analysis performed?
Has there been any indication at all that further negotiation between the UK and EU is possible?
Dates on degrees don’t make sense – will people care?
Parameterize chained calls to a utility program in Bash
Why do even high-end cameras often still include normal (non-cross-type) AF sensors?
What's currently blocking the construction of the wall between Mexico and the US?
Why does the Saturn V have standalone inter-stage rings?
Why are < or > required to use /dev/tcp
Cut the gold chain
How to make clear to people I don't want to answer their "Where are you from?" question?
What happens to Cessna electric flaps that are moving when power is lost?
Do I need a shock-proof watch for cycling?
Why do all the teams that I have worked with always finish a sprint without completion of all the stories?
Array initialization optimization
Should developer taking test phones home or put in office?
How long would it take to cross the Channel in 1890's?
Why did pressing the joystick button spit out keypresses?
Differences in disk storage between systemsTesting/using a joystick in AppleSoft?9-pin port for both RS-232 and Atari joystick?Can someone help me get xROAR to read files? (M6809/TRS-80 ColorComputer)What is the history of DE-9 joystick ports?Why does waggling the joystick of a C64 cause errors loading from tape?How to get Windows XP to detect joystick?How to create a switchless multi-system 2 button Atari joystick?New joystick (or build one) for Atari 800Why are C64 games inconsistent with which joystick port they use?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
If you pressed one of the joystick buttons on the TRS-80 Color Computer while running BASIC, it would act as if @ABCDEFG were typed. Pressing the other joystick button would similarly type out HIJKLMNO. Why did the CoCo exhibit this behavior?
color-computer joystick
add a comment |
If you pressed one of the joystick buttons on the TRS-80 Color Computer while running BASIC, it would act as if @ABCDEFG were typed. Pressing the other joystick button would similarly type out HIJKLMNO. Why did the CoCo exhibit this behavior?
color-computer joystick
add a comment |
If you pressed one of the joystick buttons on the TRS-80 Color Computer while running BASIC, it would act as if @ABCDEFG were typed. Pressing the other joystick button would similarly type out HIJKLMNO. Why did the CoCo exhibit this behavior?
color-computer joystick
If you pressed one of the joystick buttons on the TRS-80 Color Computer while running BASIC, it would act as if @ABCDEFG were typed. Pressing the other joystick button would similarly type out HIJKLMNO. Why did the CoCo exhibit this behavior?
color-computer joystick
color-computer joystick
asked 8 hours ago
DrSheldonDrSheldon
2,69531238
2,69531238
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
On the Color Computer, I/O address &FF00 is used for both the joysticks and the keyboard row input. Bits 0/1 are toggled by the two joystick port buttons, and these bits are the same as rows 1/2 for the keyboard.
BASIC continually scans for keyboard input by looking at &FF00 (for the row) and &FF02 (for the column). Since &FF02 will not indicate a keypress, BASIC interprets the toggling of rows 1/2, caused by the joystick button, as pressing all 8 of the keys for all 8 columns.
add a comment |
The fewer kinds of input a computer has to deal with, the easier its life is. This applies equally to physical ports and to the provisions for input in the BIOS and operating system generally. Abolishing “joystick button input” as a separate category makes everything much simpler.
The same applies to function keys on keyboards (such as the arrow keys). Rather than sending unique, presumably non-ASCII characters of their own, they can send escape sequences just as if they had been typed.
There are two possible approaches. One is to make the buttons send a sequence of keystrokes which the user is unlikely to type, or unlikely to type that fast. The other is to make them programmable so that they send whatever they have been programmed to send. I don’t know which way your particular joystick was designed.
1
There's also a third approach, which is that taken by machines such as the ZX Spectrum: just give the joystick inputs a fixed mapping to existing keys and don't worry about it. Many was a time I would play games on my brother's +2 in joystick mode because then I definitely knew it was 6, 7, 8, 9 and 0 for controls, rather than bothering to try to guess what that game had picked.
– Tommy
2 hours ago
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "648"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fretrocomputing.stackexchange.com%2fquestions%2f11402%2fwhy-did-pressing-the-joystick-button-spit-out-keypresses%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
On the Color Computer, I/O address &FF00 is used for both the joysticks and the keyboard row input. Bits 0/1 are toggled by the two joystick port buttons, and these bits are the same as rows 1/2 for the keyboard.
BASIC continually scans for keyboard input by looking at &FF00 (for the row) and &FF02 (for the column). Since &FF02 will not indicate a keypress, BASIC interprets the toggling of rows 1/2, caused by the joystick button, as pressing all 8 of the keys for all 8 columns.
add a comment |
On the Color Computer, I/O address &FF00 is used for both the joysticks and the keyboard row input. Bits 0/1 are toggled by the two joystick port buttons, and these bits are the same as rows 1/2 for the keyboard.
BASIC continually scans for keyboard input by looking at &FF00 (for the row) and &FF02 (for the column). Since &FF02 will not indicate a keypress, BASIC interprets the toggling of rows 1/2, caused by the joystick button, as pressing all 8 of the keys for all 8 columns.
add a comment |
On the Color Computer, I/O address &FF00 is used for both the joysticks and the keyboard row input. Bits 0/1 are toggled by the two joystick port buttons, and these bits are the same as rows 1/2 for the keyboard.
BASIC continually scans for keyboard input by looking at &FF00 (for the row) and &FF02 (for the column). Since &FF02 will not indicate a keypress, BASIC interprets the toggling of rows 1/2, caused by the joystick button, as pressing all 8 of the keys for all 8 columns.
On the Color Computer, I/O address &FF00 is used for both the joysticks and the keyboard row input. Bits 0/1 are toggled by the two joystick port buttons, and these bits are the same as rows 1/2 for the keyboard.
BASIC continually scans for keyboard input by looking at &FF00 (for the row) and &FF02 (for the column). Since &FF02 will not indicate a keypress, BASIC interprets the toggling of rows 1/2, caused by the joystick button, as pressing all 8 of the keys for all 8 columns.
answered 5 hours ago
Brian HBrian H
19.9k73176
19.9k73176
add a comment |
add a comment |
The fewer kinds of input a computer has to deal with, the easier its life is. This applies equally to physical ports and to the provisions for input in the BIOS and operating system generally. Abolishing “joystick button input” as a separate category makes everything much simpler.
The same applies to function keys on keyboards (such as the arrow keys). Rather than sending unique, presumably non-ASCII characters of their own, they can send escape sequences just as if they had been typed.
There are two possible approaches. One is to make the buttons send a sequence of keystrokes which the user is unlikely to type, or unlikely to type that fast. The other is to make them programmable so that they send whatever they have been programmed to send. I don’t know which way your particular joystick was designed.
1
There's also a third approach, which is that taken by machines such as the ZX Spectrum: just give the joystick inputs a fixed mapping to existing keys and don't worry about it. Many was a time I would play games on my brother's +2 in joystick mode because then I definitely knew it was 6, 7, 8, 9 and 0 for controls, rather than bothering to try to guess what that game had picked.
– Tommy
2 hours ago
add a comment |
The fewer kinds of input a computer has to deal with, the easier its life is. This applies equally to physical ports and to the provisions for input in the BIOS and operating system generally. Abolishing “joystick button input” as a separate category makes everything much simpler.
The same applies to function keys on keyboards (such as the arrow keys). Rather than sending unique, presumably non-ASCII characters of their own, they can send escape sequences just as if they had been typed.
There are two possible approaches. One is to make the buttons send a sequence of keystrokes which the user is unlikely to type, or unlikely to type that fast. The other is to make them programmable so that they send whatever they have been programmed to send. I don’t know which way your particular joystick was designed.
1
There's also a third approach, which is that taken by machines such as the ZX Spectrum: just give the joystick inputs a fixed mapping to existing keys and don't worry about it. Many was a time I would play games on my brother's +2 in joystick mode because then I definitely knew it was 6, 7, 8, 9 and 0 for controls, rather than bothering to try to guess what that game had picked.
– Tommy
2 hours ago
add a comment |
The fewer kinds of input a computer has to deal with, the easier its life is. This applies equally to physical ports and to the provisions for input in the BIOS and operating system generally. Abolishing “joystick button input” as a separate category makes everything much simpler.
The same applies to function keys on keyboards (such as the arrow keys). Rather than sending unique, presumably non-ASCII characters of their own, they can send escape sequences just as if they had been typed.
There are two possible approaches. One is to make the buttons send a sequence of keystrokes which the user is unlikely to type, or unlikely to type that fast. The other is to make them programmable so that they send whatever they have been programmed to send. I don’t know which way your particular joystick was designed.
The fewer kinds of input a computer has to deal with, the easier its life is. This applies equally to physical ports and to the provisions for input in the BIOS and operating system generally. Abolishing “joystick button input” as a separate category makes everything much simpler.
The same applies to function keys on keyboards (such as the arrow keys). Rather than sending unique, presumably non-ASCII characters of their own, they can send escape sequences just as if they had been typed.
There are two possible approaches. One is to make the buttons send a sequence of keystrokes which the user is unlikely to type, or unlikely to type that fast. The other is to make them programmable so that they send whatever they have been programmed to send. I don’t know which way your particular joystick was designed.
answered 8 hours ago
Martin KochanskiMartin Kochanski
1872
1872
1
There's also a third approach, which is that taken by machines such as the ZX Spectrum: just give the joystick inputs a fixed mapping to existing keys and don't worry about it. Many was a time I would play games on my brother's +2 in joystick mode because then I definitely knew it was 6, 7, 8, 9 and 0 for controls, rather than bothering to try to guess what that game had picked.
– Tommy
2 hours ago
add a comment |
1
There's also a third approach, which is that taken by machines such as the ZX Spectrum: just give the joystick inputs a fixed mapping to existing keys and don't worry about it. Many was a time I would play games on my brother's +2 in joystick mode because then I definitely knew it was 6, 7, 8, 9 and 0 for controls, rather than bothering to try to guess what that game had picked.
– Tommy
2 hours ago
1
1
There's also a third approach, which is that taken by machines such as the ZX Spectrum: just give the joystick inputs a fixed mapping to existing keys and don't worry about it. Many was a time I would play games on my brother's +2 in joystick mode because then I definitely knew it was 6, 7, 8, 9 and 0 for controls, rather than bothering to try to guess what that game had picked.
– Tommy
2 hours ago
There's also a third approach, which is that taken by machines such as the ZX Spectrum: just give the joystick inputs a fixed mapping to existing keys and don't worry about it. Many was a time I would play games on my brother's +2 in joystick mode because then I definitely knew it was 6, 7, 8, 9 and 0 for controls, rather than bothering to try to guess what that game had picked.
– Tommy
2 hours ago
add a comment |
Thanks for contributing an answer to Retrocomputing Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fretrocomputing.stackexchange.com%2fquestions%2f11402%2fwhy-did-pressing-the-joystick-button-spit-out-keypresses%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown