!!! Speedlink Competition Pro USB
[{TableOfContents }] \\\
Tested with a Speedlink Competition Pro USB. Might work with other digital gamepads. String descriptor returns "Gamepad".
!! Description
|| USB Register || Byte of HID Packet || Function || Atari Memory Shadow || original Label || new USB label ||
| $10 | 1 | Horizontal Movement (left/right) | $270 (624) | PADDL0 | JHORIZ |
| $11 | 2 | Vertical Movement (up/down) | $271 (625) | PADDL1 | JVERT |
| $12 | 3 | Buttons 1-4 | $272 (626) | PADDL2 | JBUTTON |
! Byte 3: Buttons
|| Bit || Button ||
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 4 | 4 |
!! Device dependent source
This Source must be included into the [Base HID Driver|BaseHIDDriver].
{{{
01000 .LI OFF
01010 ****************************
01020 ** 6502 USB DEVELOPMENT **
01030 ** (C) 2005 BY ABBUC **
01040 ** REGIONALGRUPPE FFM **
01050 ** DEVICE DRIVER FOR **
01060 ** COMPETITON PRO USB **
01070 ** VERSION 1.0 20050111 **
01080 ** LICENSED UNDER THE **
01090 ** GNU PUBLIC LICENSE **
01100 ** (GPL) VERS. 2 OR LATER **
01110 ** **
01120 ****************************
01130 ; THIS FILE MUST BE INCLUDED
01140 ; FROM USBHID.SRC!
01150 ;
01160 ; ATARI MEMORY LOCATIONS
01170 ;
01180 STICK0 = $0278
01190 STICK1 = $0279
01200 STRIG0 = $0284
01210 STRIG1 = $0285
01220 ;
01230 ; USB JOYSTICK SHADOW REGISTER
01240 ;
01250 JHORIZ = $0270
01260 JVERT = $0271
01270 JBUTTON = $0272
01280 ;
01290 ------------------------------
01300 POLLDEVICE
01310 ;
01320 LDA #03
01330 JSR PROCESS
01340 ; AND #01
01350 ; BEQ .2 ; NO DATA
01360 ;
01370 LDX #$10
01380 JSR REGFETCH
01390 STA JHORIZ
01400 ;
01410 LDX #$11
01420 JSR REGFETCH
01430 STA JVERT
01440 ;
01450 LDX #$12
01460 JSR REGFETCH
01470 STA JBUTTON
01480 ;
01490 .2 RTS
01500 ------------------------------
01510 USB2ATA
01520 LDA #$0F
01530 STA STICK0
01540 LDA #1
01550 STA STRIG0
01560 ;
01570 LDA JBUTTON
01580 BEQ GETSTICK
01590 LDA #0
01600 STA STRIG0
01610 ;
01620 GETSTICK
01630 LDA STICK0
01640 LDX JHORIZ
01650 CPX #$80
01660 BEQ .10 ; NOTHING
01670 BCC .2 ; LEFT
01680 EOR #$08 ; RIGHT
01690 BPL .3
01700 .2 EOR #$04 ; LEFT
01710 .3 STA STICK0
01720 .10
01730 LDX JVERT
01740 CPX #$80
01750 BEQ .20 ; NOTHING
01760 BCC .12 ; UP
01770 EOR #$02 ; DOWN
01780 BPL .13
01790 .12 EOR #$01 ; UP
01800 .13 STA STICK0
01810 .20 RTS
01820 ------------------------------
01860 VBI
01870 LDA STICK0
01880 EOR #$0F
01890 BNE .1
01900 LDA STRIG0
01910 BEQ .1
01920 ;
01930 JSR POLLDEVICE
01940 JSR USB2ATA
01950 .1 JMP XITVBV
01960 ------------------------------
01970 .OR $7400
01980 ------------------------------
01990 PRINTDEVICE
02000 JSR PRINT
02010 .AS "COMPETITION PRO USB Driver"
02020 .HX 40
02030 RTS
02040 ------------------------------
02050 PRINTVERSION
02060 JSR PRINT
02070 .AS "Version 1.0 "
02080 .HX 40
02090 RTS
02100 ------------------------------
02110 PRINTCOPY
02120 JSR PRINT
02130 .AS "(c) 20050111 C. Strotmann/ABBUC"
02140 .HX 40
02150 RTS
02160 ------------------------------
}}}