;d0=port# 1/2. -> d0/a0=%1230UDLR.b,ptr to JoyNdx
CheckJoy:
	lea Joy2dx(PC),a0	;port 2 is default
	lea JOY1DAT-C(A6),a1	;JOYxDAT for port 2
	moveq #7,d1		;joy2f1
	moveq #6,d2		;joy2f2
	moveq #4,d3		;joy2f3

	lsr.b #1,d0		;port 2?
	bne.s .joy2
.joy1:
	subq.w #4,a0
	subq.w #2,a1
	moveq #6,d1		;joy1f1
	moveq #2,d2		;joy1f2
	moveq #0,d3		;joy1f3
.joy2:

    *--- Fire Buttons ---*

	btst d1,CIAAPRA
	sne d0
	and.b #1<<7,d0

	move.b POTGOR-C(A6),d1
	btst d2,d1
	bne.s .noF2
	add.b #1<<6,d0
.noF2:
	btst d3,d1
	bne.s .noF3
	add.b #1<<5,d0
.noF3:

    *--- Directions ---*

	move.w (a1),d3
	moveq #0,d2			;horizontal
	btst #1,d3
	beq.s .noR
	addq.b #1,d0
	addq.w #1,d2
.noR:	btst #9,d3
	beq.s .noL
	addq.b #2,d0
	subq.w #1,d2			;both directions pressed cancels move
.noL:
	swap d2
	move.w d3,d1
	lsr.w #1,d1
	eor.w d3,d1
	btst #0,d1			;vertical
	beq.s .noD
	addq.b #4,d0
	addq.w #1,d2
.noD:	btst #8,d1
	beq.s .noU
	addq.b #8,d0
	subq.w #1,d2			;both directions pressed cancels move
.noU:
	move.l d2,(a0)			;dx/dy

	move.w #$ff00,POTGO-C(A6)	;write mask last for Fire 3 to work
	tst.b d0			;%1230UDLR
	RTS

Joy1dx:	dc.w 0
Joy1dy:	dc.w 0
Joy2dx:	dc.w 0
Joy2dy:	dc.w 0
