[net.micro.cbm] Problems with V2 C64 and joystick

jplw@security.UUCP (John P. L. Woodward) (01/19/84)

I have a V2 C64, but have a problem when I use a joystick in the joystick
port closest to the FRONT of the C64.  If in basic, moving the joystick or
pressing the fire button causes characters or spaces to appear on the screen.
This is most annoying for games that use both joystick and keyboard input!
I don't think the problem is in the joystick because I have tried two
different joysticks from different manufacturers.

Has anyone else out there experienced similar problems?  Does V3 solve the
problem?  Is my C64 defective, or has Commodore not yet solved the problem?
Thanks for any input you may have.

Pucc-H:Physics:mal@CS-Mordred.UUCP (01/23/84)

     Having the same problem with a joystick in port 1, I decided to
glance at the schematic. It seems that one of the CIAs is used for both
the keyboard and port 1. As far as I can remember, they just pull in
the lines from the keyboard matrix and connect them with the lines from
port 1 as they tie them into the CIA I/O pins. One glance will probably
clarify things. As far as I can tell, yes, it's supposed to be like
that. It's just one of the shortcuts they used in squeezing out
costs.  Screwing around with it for a few minutes will prove, though,
that the junk characters are not always consistent, so this characteristic
cannot be used to simply 'GET A$' the port 1 joystick data.
     Hope this is of some help! (or perhaps reassurance)

						Mark Lucas
						Purdue Physics
						mal@pur-phy

pete@rocksvax.UUCP (01/24/84)

The C64 uses the same CIA for keyboard scan and joystick sensing.  The joystick
sends characters from the upper left of the keys and the fire button is a blank.
Games which use joystick and/or keyboard stay away from those keys.  The
second joystick, I believe, uses the output strobe bits and thus does not 'send'
characters.

You can only get so much hardware into the c64 box.

Pete Crean

miller@uiucdcs.UUCP (miller ) (01/25/84)

#R:security:-63300:uiucdcs:36100030:000:522
uiucdcs!miller    Jan 24 04:09:00 1984

Mark correctly identified the problem with the joystick port 1 / keyboard as
the CIA.  However, there is a side affect which you might not have noticed yet.
Try Port 1, fire button not pressed, in the West direction.  What's that you
say???  The machine slowed down???  You have just discovered the reason all of
those games you buy are written for port 2.  It seems that that particular set
of combinations maps to the CTRL key on the keyboard.  And we all know what
that key does, don't we?

A. Ray Miller
Univ Illinois

miller@uiucdcs.UUCP (miller ) (02/02/84)

#R:security:-63300:uiucdcs:36100033:000:857
uiucdcs!miller    Feb  1 15:10:00 1984

I thought everyone knew what the CTRL key does on the c64, hence I didn't
explain it in my note on the joystick port 1 bug.  But I got mail from people
who didn't know so I'll explain its purpose now.  What it does is slow down
your machine.  It is mainly used in slowing the LIST down for Basic.  However,
it also will slow down *execution* of user programs too.  This is true of both
Basic AND machine language.  For example, try the following programs on your
machine with/without the CTRL key down:

10 PRINT "A";: GOTO 10
  - or -
START LDA #'A'
      JSR CHROUT ;kernal print routine.  see Programmer's Ref. Guide
      JMP START

I'm not really sure why it slows down machine language.  I guess the interrupt
processing routines in the OS have a delay loop they jump to when that key is
depressed.  Anyone know for sure?

A. Ray Miller
Univ Illinois