]> git.sur5r.net Git - cc65/blobdiff - libsrc/c64/c64-ptvjoy.s
Clear __oserror on success.
[cc65] / libsrc / c64 / c64-ptvjoy.s
index 60950ff5920ebc47e675e04d16c98faef2bfcb17..b4314968e1ddfeaa31505e0d86e650d3c04636c7 100755 (executable)
         .byte   $04                     ; JOY_LEFT
         .byte   $08                     ; JOY_RIGHT
         .byte   $10                     ; JOY_FIRE
-        .byte   $00                     ; Future expansion
+        .byte   $00                     ; JOY_FIRE2 unavailable
         .byte   $00                     ; Future expansion
         .byte   $00                     ; Future expansion
 
 ; Jump table.
 
-        .word   INSTALL
-        .word   UNINSTALL
-        .word   COUNT
-        .word   READ
+        .addr   INSTALL
+        .addr   UNINSTALL
+        .addr   COUNT
+        .addr   READ
+        .addr   0                       ; IRQ entry unused
 
 ; ------------------------------------------------------------------------
 ; Constants
@@ -115,25 +116,24 @@ joy2:   dex
 
 ; Read joystick 3
 
-joy3:   dex
-        bne     joy4
-
+joy3:
         lda     #%10000000      ; cia 2 port B Data-Direction
         sta     CIA2_DDRB       ; bit 7: out    bit 6-0: in
 
+        dex
+        bne     joy4
+
         lda     #$80            ; cia 2 port B read/write
         sta     CIA2_PRB        ; (output one at PB7)
 
         lda     CIA2_PRB        ; cia 2 port B read/write
         and     #$1f            ; get bit 4-0 (PB4-PB0)
+        eor     #$1f
         rts
 
 ; Read joystick 4
 
-joy4:   lda     #%10000000      ; cia 2 port B Data-Direction
-        sta     CIA2_DDRB       ; bit 7: out    bit 6-0: in
-
-        lda     #$00            ; cia 2 port B read/write
+joy4:   lda     #$00            ; cia 2 port B read/write
         sta     CIA2_PRB        ; (output zero at PB7)
 
         lda     CIA2_PRB        ; cia 2 port B read/write
@@ -144,6 +144,7 @@ joy4:   lda     #%10000000      ; cia 2 port B Data-Direction
         and     #%00100000      ; get bit 5 (PB5)
         lsr
         ora     tmp1
+        eor     #$1f
 
         ldx #0
         rts