Here's all the information I have on the Driving Controllers. Sorry it's so haphazard, but info on them seems sparse at best. From dustin@media.utah.edu Tue Nov 29 17:46:45 1994 Received: from eddy.media.utah.edu (eddy.media.utah.edu [155.99.121.10]) by hairball.ecst.csuchico.edu (8.6.8/8.6.6) with SMTP id RAA21920 for ; Tue, 29 Nov 1994 17:46:30 -0800 Received: from dustin.media.utah.edu by eddy.media.utah.edu (4.1/25-Oct-1992) id AA13553; Tue, 29 Nov 94 18:49:08 MST Date: Tue, 29 Nov 94 18:49:08 MST Message-Id: <9411300149.AA13553@eddy.media.utah.edu> X-Sender: dustin@eddy.media.utah.edu X-Mailer: Windows Eudora Version 1.4.3 Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" To: gchance@ecst.csuchico.edu From: dustin@media.utah.edu (Dustin Caldwell) Subject: Atari Driving controller Status: RO Hello, I was reading your 2600 url and noticed that you wanted info for the driving controller. >From my tech ref. manual, it appears that the driving controller worked just like the trackball but only one axis. Namely, that it pulsed the joystick left or right faster or slower depending on how fast you turned the controller. I know for certain that the joystick registers are used for the driving controllers. Need more? - mail me. -Dustin dustin@eddy.media.utah.edu Computer Engineering From dustin@media.utah.edu Wed Nov 30 07:19:10 1994 Received: from eddy.media.utah.edu (eddy.media.utah.edu [155.99.121.10]) by hairball.ecst.csuchico.edu (8.6.8/8.6.6) with SMTP id HAA01207 for ; Wed, 30 Nov 1994 07:19:09 -0800 Received: from dustin.media.utah.edu by eddy.media.utah.edu (4.1/25-Oct-1992) id AA13920; Wed, 30 Nov 94 08:21:44 MST Date: Wed, 30 Nov 94 08:21:43 MST Message-Id: <9411301521.AA13920@eddy.media.utah.edu> X-Sender: dustin@eddy.media.utah.edu X-Mailer: Windows Eudora Version 1.4.3 Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" To: "Dr. Demento" From: dustin@media.utah.edu (Dustin Caldwell) Subject: Re: Atari Driving controller Status: RO >I tried plugging one into my mouse port and yeah, I got the pulse effect. >When I turn the knob, instead of moving, the pointer moves one pixel, then >back, and repeatedly does this. So it's similar to the Amiga mouse, but >not quite the same. I gave you some slightly wrong info.:-( I checked my tech manual last night after mailing you and found out exactly how to decode the things: (this is from the atari perspective) there are 4 stick registers on the atari. the driving controller uses these. each register is decoded for the driving controller thus: upper 4 bits (4-7): don't care bits 2,3: high (logical 1) bits 0,1: alternating gray code when turning clockwise, the gray code goes: 11 -> 01 -> 00 -> 10 -> 11 -> etc. counter-clockwise : 11 -> 10 -> 00 -> 01 -> 11 -> 10 -> etc. (backwards of clockwise) this could be emulated with the joystick by doing l&r -> l -> none -> r -> l&r ( or something similar :-) If this didn't make sense, mail questions to me. -Dustin From dustin@media.utah.edu Wed Nov 30 09:12:19 1994 Received: from eddy.media.utah.edu (eddy.media.utah.edu [155.99.121.10]) by hairball.ecst.csuchico.edu (8.6.8/8.6.6) with SMTP id JAA08549 for ; Wed, 30 Nov 1994 09:12:18 -0800 Received: from dustin.media.utah.edu by eddy.media.utah.edu (4.1/25-Oct-1992) id AA14187; Wed, 30 Nov 94 10:14:56 MST Date: Wed, 30 Nov 94 10:14:56 MST Message-Id: <9411301714.AA14187@eddy.media.utah.edu> X-Sender: dustin@eddy.media.utah.edu X-Mailer: Windows Eudora Version 1.4.3 Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" To: "Dr. Demento" From: dustin@media.utah.edu (Dustin Caldwell) Subject: Re: Atari Driving controller Status: RO >Could this mean that it's impossible or next-to-impossible to use the >driving controllers with a system other than the 2600, since these registers >don't exist elsewhere? Sorry for giving that impression. Actually it should be easy. You will decode the driving controller as though it is a joystick that can do what no normal joystick can do (namely, move left and right simultaneously). Plugging in the driving controller causes it to appear to the computer that you are moving both up and down on the joystick at all times. In addition to this: When turning clockwise, it will look like you are: moving both left and right on the joystick, then moving left on the joystick, then not moving on the joystick, then moving right on the joystick, then moving both left and right on the joystick, etc. When turning counter-clockwise, it will look like you are: moving both left and right on the joystick, then moving right on the joystick, then not moving on the joystick, then moving left on the joystick, then moving both left and right on the joystick, etc. You will need to experiment with this, because I am guessing what bits refer to what directions on the joystick. -It may really be that left and right are always pressed, and that up and down vary with turning the controller. If you can't do this with the amiga, let me know and I will check this on my atari and let you know for sure how it goes. -Dustin From markh@inmos.co.uk Wed Jan 18 03:32:37 1995 Received: from oberon.inmos.co.uk (oberon.inmos.co.uk [138.198.35.8]) by hairball.ecst.csuchico.edu (8.6.8/8.6.6) with ESMTP id DAA10909 for ; Wed, 18 Jan 1995 03:32:31 -0800 Received: from sulu.inmos.co.uk by oberon.inmos.co.uk; Wed, 18 Jan 1995 11:32:25 GMT From: Mark Howard Date: Wed, 18 Jan 95 11:29:18 GMT Message-Id: <24261.9501181129@sulu.inmos.co.uk> To: gchance@ecst.csuchico.edu, ipoorten@cs.vu.nl Subject: Reading Atari steering controllers and trackball. Cc: markh@inmos.co.uk Status: RO Hi, I thought you might be interested in this information, as it doesn't appear in your online manuals. Steering controllers. --------------------- These map a rotational gray code onto two of the joystick input direction channels. The other two lines are held high. Button ---> Joystick trigger. Grey code \ Joystick left and right / Held high \ Joystick up and down. / UDLR Rotating left 1100 1101<--| 1111 | 1110 | 1100---- ... etc UDLR Rotating right 1100 1110<--| 1111 | 1101 | 1100---- ... etc Note, that data from the controller can start from any code in the sequence. Trackball in joystick mode. -------------------------- Generates U, D, L, R as per a normal joystick. Both fire buttons mapped onto the single joystick trigger line. Trackball in trackball mode. ---------------------------- Again, both fire buttons mapped onto the joystick trigger line. Left/Right information mapped onto joystick L & R lines. Up/Down information mapped onto joystick U & D lines. LR Ball moving left 00 10<-| 00--- LR Ball moving right 01 11<-| 01--- UD Ball moving up 00 10<-| 00--- UD Ball moving down 01 11<-| 01--- Note that the sequence can start with either L/U at 0 or 1, but the direction indication bit R/D changes as soon as the trackball detects a direction change. The faster bit L/U toggles, the faster the ball is rolling. It is a good idea to check about 8 times during screen display (DLI on 8 bit Atari computers, part of display loop on VCS), and during vertical blank. Checking only during vblank will only allow the controlled item to move at scan rate/2, i.e. one pixel every two frames, and transitions will be missed, causing the item to SLOW DOWN when the ball is rotated faster! If either of you have any questions about this, please ask. The reason for doing this now, is because I am in the process of selling all my 8 bit stuff, having already sold all my VCS collection. :-( Mark. Mark.