;Paddle Controller Constants and Functions for Atari 400 & 800 PADDLS EQU #$08 ;Maximum Numbers of Paddles ;Read Paddle ;Args: A = Paddle # ;Affects: X ;Returns: A = Paddle Value ; 0 and Carry Set if Paddle # Invalid PADDLE: CMP #PADDLS ;If Invalid Paddle # BCS BUTTOZ ; Return 0 & Carry Set TAX ;Copy Paddle # to X LDA $0270,X ;Read Paddle Shadow Register RTS BUTTNS EQU #$04 ;Maximum Numbers of Paddle Buttons ;Read Paddle Button ;Args: A = Button # ;Affects: X,Y ;Returns: A = $FF if Paddle Button Pressed ; $00 if Paddle Button Not Pressed ; Carry Set if Button Number Invalid BUTTON: CMP #BUTTNS ;If Button# >= # of Buttons BCS BUTTOZ ; Return FALSE & Carry Set TAX ;and Copy to X Register LDA $027C,Y ;Read Button Shadow Register AND #$01 ;Mask off Relevant Bit BNE BUTTOZ ;If Bit is 0 LDA #$FF ; Return TRUE RTS ;Else BUTTOZ: LDA #$00 ; Return FALSE RTS