double click counter

This commit is contained in:
Joshua Bell 2018-01-20 17:16:31 -08:00
parent 0513ce1df9
commit bd32580450

View File

@ -6514,7 +6514,7 @@ L43E7: tsx
A2D_RELAY_CALL A2D_QUERY_TARGET, input_params_coords A2D_RELAY_CALL A2D_QUERY_TARGET, input_params_coords
lda query_target_params_element lda query_target_params_element
bne L4418 bne L4418
jsr L85FC jsr detect_double_click
sta $D2AA sta $D2AA
lda #$00 lda #$00
sta $D20E sta $D20E
@ -6540,7 +6540,7 @@ L4428: pha
L4435: pla L4435: pla
cmp #$02 cmp #$02
bne L4443 bne L4443
jsr L85FC jsr detect_double_click
sta $D2AA sta $D2AA
jmp L5B1C jmp L5B1C
@ -9506,7 +9506,7 @@ L5CE6: cmp selected_file_index,x
bmi L5CFB bmi L5CFB
L5CF0: bit $D2AA L5CF0: bit $D2AA
bmi L5CF8 bmi L5CF8
jmp L5DFC ; double click to launch can come through here jmp L5DFC
L5CF8: jmp L5D55 L5CF8: jmp L5D55
@ -9538,7 +9538,7 @@ L5D0B: ldx is_file_selected
jsr L4510 jsr L4510
bit $D2AA bit $D2AA
bmi L5D55 bmi L5D55
jmp L5DFC ; double click to launch can come through here jmp L5DFC
L5D55: lda L5CD9 L5D55: lda L5CD9
sta $EBFC sta $EBFC
@ -13979,13 +13979,14 @@ L85FB: .byte 0
;;; ================================================== ;;; ==================================================
;;; Double Click Detection ;;; Double Click Detection
;;; Returns with A=0 if double click, A=$FF otherwise.
.proc L85FC .proc detect_double_click
double_click_deltax := 8 double_click_deltax := 8
double_click_deltay := 7 double_click_deltay := 7
;; stash initial coords ;; Stash initial coords
ldx #3 ldx #3
: lda input_params_coords,x : lda input_params_coords,x
sta coords,x sta coords,x
@ -13994,19 +13995,22 @@ L85FB: .byte 0
bpl :- bpl :-
lda #0 lda #0
sta L869F sta counter+1
lda machine_type ; Since IIgs is faster? lda machine_type ; Since IIgs is faster? ($96=IIe,$FA=IIc,$FD=IIgs)
asl a asl a ; * 2
rol L869F rol counter+1 ; So IIe = $12C, IIc = $1F4, IIgs = $1FA
sta L869E sta counter
loop: dec L869E ;; Decrement counter, bail if time delta exceeded
loop: dec counter
bne :+ bne :+
dec L869F dec counter+1
lda L869F lda counter+1
bne exit bne exit
: jsr L48F0 : jsr L48F0 ; ???
;; Check coords, bail if pixel delta exceeded
jsr check_delta jsr check_delta
bmi exit ; moved past delta; no double-click bmi exit ; moved past delta; no double-click
@ -14079,15 +14083,14 @@ ok: lda #$00
rts rts
.endproc .endproc
L869E: .byte 0 counter:.word 0
L869F: .byte 0
coords: coords:
xcoord: .word 0 xcoord: .word 0
ycoord: .word 0 ycoord: .word 0
delta: .byte 0 delta: .byte 0
state: .byte 0 state: .byte 0 ; unused?
unused: .byte 0 ; ??? unused: .byte 0 ; ???
.endproc .endproc