import: John Brooks fast dual paddle read for the IIgs
This commit is contained in:
parent
10164ef974
commit
2b621b4c49
|
@ -0,0 +1,97 @@
|
|||
*
|
||||
* ORCA/M Format!!
|
||||
* @JBrooksBSI fast Dual Axis Paddle Read
|
||||
*
|
||||
case on
|
||||
longa on
|
||||
longi on
|
||||
|
||||
* ORCA is neat
|
||||
DummyPaddles start ASMCODE
|
||||
end
|
||||
|
||||
*
|
||||
*-------------------------------
|
||||
* IIGS 1MHz single-pass GetJoyXY
|
||||
*
|
||||
* 10/21/2018 by John Brooks
|
||||
*-------------------------------
|
||||
|
||||
*-------------------------------
|
||||
* Read JoyX,Y every 11cyc on avg
|
||||
* Return: X=JoyX, Y=JoyY
|
||||
GetJoyXY start ASMCODE
|
||||
php ;Save irq & mx reg size
|
||||
sep #$34 ;sei & 8-bit mx
|
||||
phd ;Save DPage
|
||||
pea $C000 ;DP to I/O
|
||||
pld ;DP=$C000
|
||||
|
||||
bit $70 ;Start X,Y timers. ~16c to 1st read
|
||||
* cyc on
|
||||
lsr $36 ;5: Force 1MHz
|
||||
ldx #1 ;2: Init dual X,Y ctr
|
||||
xba ;3: Wait
|
||||
xba ;3: Wait
|
||||
_DualXY0 anop
|
||||
lda $64 ;3: Chk JoyX. 10c to DualXY1
|
||||
* cyc on
|
||||
and $65 ;3: Chk JoyY
|
||||
bpl _ToSolo ;2/3
|
||||
inx ;2: Inc XY
|
||||
_DualXY1 anop
|
||||
lda $64 ;3: Chk JoyX. 10c to DualXY2
|
||||
* cyc on
|
||||
and $65 ;3: Chk JoyY
|
||||
bpl _ToSolo ;2/3
|
||||
inx ;2: Inc XY
|
||||
_DualXY2 anop
|
||||
lda $64 ;3: Chk JoyX. 13c to DualXY0
|
||||
* cyc on
|
||||
and $65 ;3: Chk JoyY
|
||||
bpl _ToSolo ;3
|
||||
inx ;2: Inc XY
|
||||
bne _DualXY0
|
||||
_DualXY3 anop
|
||||
lda $64 ;3: Chk JoyX and $65 ;3: Chk JoyY
|
||||
bmi _SameXY ;3
|
||||
dex ;#$FE
|
||||
_SameXY anop
|
||||
dex ;#$FF
|
||||
txy
|
||||
bra _Exit
|
||||
|
||||
_SoloX anop
|
||||
bit $64 ;3: Chk JoyX
|
||||
bmi _SoloXOk ;2/3
|
||||
dey ;2
|
||||
bra _Exit
|
||||
_SoloXOk anop
|
||||
inx ;2
|
||||
bne _SoloX ;2/3
|
||||
* ;#$FF. Fall into dex & Exit
|
||||
|
||||
_SoloY anop
|
||||
bit $65 ;3: Chk JoyY
|
||||
bmi _SoloYOk ;2/3
|
||||
dex ;2
|
||||
bra _Exit
|
||||
_ToSolo anop
|
||||
txy ;2
|
||||
bit $64 ;3
|
||||
bmi _SoloXOk ;2/3
|
||||
bit $65 ;3
|
||||
bpl _SameXY ;2/3
|
||||
_SoloYOk anop
|
||||
iny ;2
|
||||
bne _SoloY ;2/3
|
||||
dey ;#$FF. Fall into Exit
|
||||
|
||||
_Exit anop
|
||||
rol $36 ;Restore CPU speed
|
||||
|
||||
pld ;Restore dpage
|
||||
plp ;Restore m,x size & interrupt enable
|
||||
rts ;Returns X=JoyX $00-$FF, Y=JoyY $00-$FF
|
||||
end
|
||||
* lst off
|
Loading…
Reference in New Issue