]> git.sur5r.net Git - cc65/blobdiff - libsrc/pce/joy/pce-stdjoy.s
Removed joy_masks array.
[cc65] / libsrc / pce / joy / pce-stdjoy.s
index 592793250e57f0efaed6caafff829df9e1d90dbc..ab25134ddfe4eb3fa6ce3738e35f2d408906a9f5 100644 (file)
@@ -5,6 +5,7 @@
 
         .include        "joy-kernel.inc"
         .include        "joy-error.inc"
+        .include        "pce.inc"
 
         .macpack        module
 
 
         .addr   $0000
 
-; Button state masks (8 values)
-
-        .byte   $10                     ; JOY_UP
-        .byte   $40                     ; JOY_DOWN
-        .byte   $80                     ; JOY_LEFT
-        .byte   $20                     ; JOY_RIGHT
-        .byte   $01                     ; JOY_FIRE_A
-        .byte   $02                     ; JOY_FIRE_B
-        .byte   $04                     ; JOY_SELECT
-        .byte   $08                     ; JOY_RUN
-
 ; Jump table.
 
         .addr   INSTALL
@@ -58,10 +48,10 @@ JOY_COUNT       = 4             ; Number of joysticks we support
 ;
 
 INSTALL:
-                lda     #<JOY_ERR_OK
-                ldx     #>JOY_ERR_OK
+        lda     #<JOY_ERR_OK
+        ldx     #>JOY_ERR_OK
 
-;               rts                     ; Run into DEINSTALL instead
+;        rts                     ; Run into UNINSTALL instead
 
 ; ------------------------------------------------------------------------
 ; DEINSTALL routine. Is called before the driver is removed from memory.
@@ -69,7 +59,7 @@ INSTALL:
 ;
 
 UNINSTALL:
-                rts
+        rts
 
 
 ; ------------------------------------------------------------------------
@@ -78,9 +68,9 @@ UNINSTALL:
 ;unsigned char __fastcall__ joy_count (void);
 
 COUNT:
-                lda     #<JOY_COUNT
-                ldx     #>JOY_COUNT
-                rts
+        lda     #<JOY_COUNT
+        ldx     #>JOY_COUNT
+        rts
 
 ; ------------------------------------------------------------------------
 ; READ: Read a particular joystick passed in A.
@@ -88,70 +78,71 @@ COUNT:
 ;unsigned char __fastcall__ joy_read (unsigned char joystick);
 
 READJOY:
-                pha
-                jsr read_joy
-                pla
-                tax             ; Joystick number into X
+        pha
+        jsr     read_joy
+        pla
+        tax                     ; Joystick number into X
 
-                ; return value from buffer
+        ; return value from buffer
 
 joy1:
-                lda padbuffer,x
-                ldx #0
-                rts
+        lda     padbuffer,x
+        ldx     #0
+        rts
 
 read_joy:
-                ; reset multitap counter
-                lda     #$01
-                sta     $1000
-                pha
-                pla
-                nop
-                nop
-
-                lda     #$03
-                sta     $1000
-                pha
-                pla
-                nop
-                nop
-
-                cly
+        ; reset multitap counter
+        lda     #$01
+        sta     JOY_CTRL
+        pha
+        pla
+        nop
+        nop
+
+        lda     #$03
+        sta     JOY_CTRL
+        pha
+        pla
+        nop
+        nop
+
+        cly
 nextpad:
-                lda     #$01
-                sta     $1000   ; sel = 1
-                pha
-                pla
-                nop
-                nop
-
-                lda     $1000
-                asl     a
-                asl     a
-                asl     a
-                asl     a
-                sta     padbuffer, y     ; store new value
-
-                stz     $1000
-                pha
-                pla
-                nop
-                nop
-
-                lda     $1000
-                and     #$0F
-                ora     padbuffer, y     ; second half of new value
-
-                eor     #$FF
-                sta     padbuffer, y     ; store new value
-
-                iny
-                cpy     #$05
-                bcc     nextpad
-                rts
+        lda     #$01
+        sta     JOY_CTRL           ; sel = 1
+        pha
+        pla
+        nop                     ; some delay is required
+        nop
+
+        lda     JOY_CTRL
+        asl     a
+        asl     a
+        asl     a
+        asl     a
+        sta     padbuffer, y     ; store new value
+
+        stz     JOY_CTRL
+        pha
+        pla
+
+        nop                     ; some delay is required
+        nop
+
+        lda     JOY_CTRL
+        and     #$0F
+        ora     padbuffer, y     ; second half of new value
+
+        eor     #$FF
+        sta     padbuffer, y     ; store new value
+
+        iny
+        cpy     #$05
+        bcc     nextpad
+        rts
 
 .bss
 
 padbuffer:
-                .res 4
+        .res    4