135 lines
2 KiB
ArmAsm
135 lines
2 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
|