136 lines
2.0 KiB
ArmAsm
136 lines
2.0 KiB
ArmAsm
|
|
||
|
;---------------------------------------------------------------------
|
||
|
|
||
|
.macpack generic
|
||
|
|
||
|
.import _ctk_mouse_joyx, _ctk_mouse_joyy
|
||
|
.import _ctk_mouse_firebutton
|
||
|
.export _ctk_mouse_joy
|
||
|
;---------------------------------------------------------------------
|
||
|
.bss
|
||
|
lastjoydy: .res 1
|
||
|
lastjoydx: .res 1
|
||
|
joydycnt: .res 1
|
||
|
joydxcnt: .res 1
|
||
|
|
||
|
;---------------------------------------------------------------------
|
||
|
.code
|
||
|
|
||
|
;---------------------------------------------------------------------
|
||
|
_ctk_mouse_joy:
|
||
|
ldy $dc02
|
||
|
lda #0
|
||
|
sta $dc02
|
||
|
lda $dc00
|
||
|
sty $dc02
|
||
|
ldy #0
|
||
|
ldx #0
|
||
|
lsr
|
||
|
bcs nodey
|
||
|
dey
|
||
|
nodey:
|
||
|
lsr
|
||
|
bcs noiny
|
||
|
iny
|
||
|
noiny:
|
||
|
lsr
|
||
|
bcs nodex
|
||
|
dex
|
||
|
nodex:
|
||
|
lsr
|
||
|
bcs noinx
|
||
|
inx
|
||
|
noinx:
|
||
|
and #1
|
||
|
eor #1
|
||
|
ora _ctk_mouse_firebutton
|
||
|
sta _ctk_mouse_firebutton
|
||
|
|
||
|
cpy lastjoydy
|
||
|
sty lastjoydy
|
||
|
bne noydy
|
||
|
tya
|
||
|
pha
|
||
|
inc joydycnt
|
||
|
lda joydycnt
|
||
|
cmp #$1f
|
||
|
bmi nostajoydycnt
|
||
|
lda #$20
|
||
|
sta joydycnt
|
||
|
nostajoydycnt:
|
||
|
lsr
|
||
|
lsr
|
||
|
lsr
|
||
|
lsr
|
||
|
tay
|
||
|
pla
|
||
|
asldeyloop:
|
||
|
asl
|
||
|
dey
|
||
|
bpl asldeyloop
|
||
|
tay
|
||
|
jmp ydy
|
||
|
noydy:
|
||
|
lda #0
|
||
|
sta joydycnt
|
||
|
ydy:
|
||
|
|
||
|
tya
|
||
|
clc
|
||
|
adc _ctk_mouse_joyy
|
||
|
|
||
|
cmp #240
|
||
|
bcc :+
|
||
|
lda #0
|
||
|
:
|
||
|
|
||
|
cmp #200
|
||
|
bcc :+
|
||
|
lda #199
|
||
|
:
|
||
|
sta _ctk_mouse_joyy
|
||
|
|
||
|
cpx lastjoydx
|
||
|
stx lastjoydx
|
||
|
bne noxdx
|
||
|
txa
|
||
|
pha
|
||
|
inc joydxcnt
|
||
|
lda joydxcnt
|
||
|
cmp #$1f
|
||
|
bmi nostajoydxcnt
|
||
|
lda #$20
|
||
|
sta joydxcnt
|
||
|
nostajoydxcnt:
|
||
|
lsr
|
||
|
lsr
|
||
|
lsr
|
||
|
lsr
|
||
|
tax
|
||
|
pla
|
||
|
asldexloop:
|
||
|
asl
|
||
|
dex
|
||
|
bpl asldexloop
|
||
|
tax
|
||
|
jmp xdx
|
||
|
noxdx:
|
||
|
lda #0
|
||
|
sta joydxcnt
|
||
|
xdx:
|
||
|
|
||
|
txa
|
||
|
clc
|
||
|
adc _ctk_mouse_joyx
|
||
|
sta _ctk_mouse_joyx
|
||
|
php
|
||
|
lda #$ff
|
||
|
cpx #0
|
||
|
bmi nolda02
|
||
|
lda #0
|
||
|
nolda02:
|
||
|
plp
|
||
|
adc _ctk_mouse_joyx+1
|
||
|
sta _ctk_mouse_joyx+1
|
||
|
rts
|