home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Vectronix 2
/
VECTRONIX2.iso
/
FILES_03
/
SOURCE_J.LZH
/
3DDEMO
/
JOYPAD.S
< prev
next >
Wrap
Text File
|
1994-09-06
|
3KB
|
99 lines
;*======================================================================*
;* TITLE: JOYPAD.S *
;* Function: RAPIER joypad input *
;* *
;* Project #: RAPIER *
;* Programmer: Rob Zdybel *
;* *
;* COPYRIGHT 1993 Atari Computer Corporation *
;* UNAUTHORIZED REPRODUCTION, ADAPTATION, DISTRIBUTION, *
;* PERFORMANCE OR DISPLAY OF THIS COMPUTER PROGRAM OR *
;* THE ASSOCIATED AUDIOVISUAL WORK IS STRICTLY PROHIBITED. *
;* ALL RIGHTS RESERVED. *
;* *
;*======================================================================*
.include "jaguar.inc"
;
; PUBLIC SYMBOLS
;
.globl readpad
.globl pad_now
.globl pad_shot
;
; SUBROUTINE AREA
;
;
; READPAD Read the JAGUAR Joypad
;
; Given:
; Control
;
; Returns:
; PAD_NOW = Current reading of joypad (Asserted High)
; PAD_SHOT = Edge-triggered One Shot of joypad
;
; Register Usage:
; All Registers Restored
;
; Externals:
; None
;
readpad:
movem.l d0-d2,-(sp)
move.l #$f0fffffc,d1 ; d1 = Joypad data mask
moveq.l #-1,d2 ; d2 = Cumulative joypad reading
move.w #$800e,JOYSTICK
move.l JOYSTICK,d0 ; Read Stick and Pause/A
or.l d1,d0 ; Mask off unused bits
ror.l #4,d0
and.l d0,d2 ; d2 = xxApxxxx RLDUxxxx xxxxxxxx xxxxxxxx
move.w #$800d,JOYSTICK
move.l JOYSTICK,d0 ; Read *741 and B
or.l d1,d0 ; Mask off unused bits
ror.l #8,d0
and.l d0,d2 ; d2 = xxApxxBx RLDU741* xxxxxxxx xxxxxxxx
move.w #$800b,JOYSTICK
move.l JOYSTICK,d0 ; Read 2580 and C
or.l d1,d0 ; Mask off unused bits
rol.l #6,d0
rol.l #6,d0
and.l d0,d2 ; d2 = xxApxxBx RLDU741* xxCxxxxx 2580xxxx
move.w #$8007,JOYSTICK
move.l JOYSTICK,d0 ; Read 369# and Option
or.l d1,d0 ; Mask off unused bits
rol.l #8,d0
and.l d0,d2 ; d2 = xxApxxBx RLDU741* xxCxxxox 2580369#
not.l d2 ; d2 = Inputs active high
move.l pad_now,d0
move.l d2,pad_now ; PAD_NOW = Current joypad reading
eor.l d2,d0
and.l d2,d0
move.l d0,pad_shot ; PAD_SHOT = Oneshot joypad
movem.l (sp)+,d0-d2
rts
;
; VARIABLE STORAGE
;
.bss
.even
pad_now: ; Current Joypad reading
.ds.l 1 ; xxApxxBx RLDU741* xxCxxxox 2580369#
pad_shot: ; OneShot Joypad reading
.ds.l 1
;*======================================================================*
;* EOF
;*======================================================================*