;Paddle Controller Constants and Functions for Apple II PADDLS EQU 4 ;Maximum Numbers of Paddles ;paddle(n) - Read Paddle n ;Args: A = Paddle Number (0-3) ;Returns: A, Y = Paddle Value (0-255) ; Carry Set if P PADDLE: LDY #0 ;Set Result to 0 CMP #PADDLS ;If Paddle# >= Max BCS PADDLZ ; Return 0 & Carry Set TAX ;Copy Paddle# to X Register JSR $FB1E ;Execute Monitor PREAD Routine PADDLZ: TYA ;Copy Result to Accumulator RTS BUTTNS EQU 2 ;Maximum Numbers of Buttons ;button(n) - Read Paddle Button n ;Args: A = Button Number (0-1) ;Returns: A, Y = Button State ; 0 = Not Pressed ; $FF = Pressed ; X = Button Number ; Carry Set if P BUTTON: LDY #0 ;Set Result to 0 CMP #BUTTNS ;If Button# >= Max BCS BUTTOZ ; Return Zero & Carry Set TAX ;Copy Paddle# to X Register LDA $C061,X ;Load Button Register BPL BUTTOZ ;If Bit 7 Set DEY ; Change Result to $FF BUTTOZ: TYA ;Copy Result to Accumulator RTS