mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-02-15 12:31:53 +00:00
tfv: have keyboard sorta working again
This commit is contained in:
parent
c272bd33fe
commit
30f5605dc6
@ -1,4 +1,4 @@
|
||||
LOAD_TITLE = 0
|
||||
LOAD_TFV = 1
|
||||
LOAD_FLYING = 2
|
||||
LOAD_FLYING = 1
|
||||
LOAD_WORLD = 2
|
||||
LOAD_CREDITS = 3
|
||||
|
@ -64,6 +64,7 @@ draw_menu:
|
||||
cmp #'D'
|
||||
beq inc_menu
|
||||
cmp #' '
|
||||
cmp #13
|
||||
beq menu_select
|
||||
bne menu_nothing
|
||||
|
||||
|
@ -29,6 +29,7 @@ AN3 = $C05E ; Annunciator 3
|
||||
|
||||
|
||||
PADDLE_BUTTON0 = $C061
|
||||
PADDLE_BUTTON1 = $C062
|
||||
PADDL0 = $C064
|
||||
PTRIG = $C070
|
||||
|
||||
|
@ -3,6 +3,15 @@
|
||||
; Get Keypress
|
||||
;==============================
|
||||
; returns 0 if nothing pressed
|
||||
|
||||
; maps joystick to wasd and ' ' and return
|
||||
; maps arrow keys to wasd
|
||||
; handles sound enable and joystick enable
|
||||
|
||||
|
||||
JS_BUTTON0 = 1
|
||||
JS_BUTTON1 = 2
|
||||
|
||||
get_keypress:
|
||||
|
||||
; first handle joystick
|
||||
@ -14,21 +23,47 @@ get_keypress:
|
||||
and #$1
|
||||
beq actually_handle_keypress
|
||||
|
||||
check_button:
|
||||
check_button0:
|
||||
lda PADDLE_BUTTON0
|
||||
bpl button_clear
|
||||
bpl button0_clear
|
||||
|
||||
lda JS_BUTTON_STATE
|
||||
bne js_check
|
||||
and #JS_BUTTON0
|
||||
bne check_button1
|
||||
|
||||
lda #1 ; only register on release
|
||||
lda #JS_BUTTON0 ; only register on release
|
||||
ora JS_BUTTON_STATE
|
||||
sta JS_BUTTON_STATE
|
||||
lda #' '
|
||||
jmp done_keypress
|
||||
|
||||
button_clear:
|
||||
lda #0
|
||||
button0_clear:
|
||||
lda JS_BUTTON_STATE
|
||||
and #(~JS_BUTTON0)
|
||||
sta JS_BUTTON_STATE
|
||||
jmp js_check
|
||||
|
||||
check_button1:
|
||||
lda PADDLE_BUTTON1
|
||||
bpl button1_clear
|
||||
|
||||
lda JS_BUTTON_STATE
|
||||
and #JS_BUTTON1
|
||||
bne js_check
|
||||
|
||||
lda #JS_BUTTON1 ; only register on release
|
||||
ora JS_BUTTON_STATE
|
||||
sta JS_BUTTON_STATE
|
||||
lda #13
|
||||
jmp done_keypress
|
||||
|
||||
button1_clear:
|
||||
lda JS_BUTTON_STATE
|
||||
and #(~JS_BUTTON1)
|
||||
sta JS_BUTTON_STATE
|
||||
; jmp js_check
|
||||
|
||||
|
||||
|
||||
js_check:
|
||||
jsr handle_joystick
|
||||
@ -110,8 +145,8 @@ check_save:
|
||||
; jmp done_keypress
|
||||
|
||||
check_left:
|
||||
cmp #'A'
|
||||
beq left_pressed
|
||||
; cmp #'A'
|
||||
; beq left_pressed
|
||||
cmp #8 ; left key
|
||||
bne check_right
|
||||
left_pressed:
|
||||
@ -119,8 +154,8 @@ left_pressed:
|
||||
jmp done_keypress
|
||||
|
||||
check_right:
|
||||
cmp #'D'
|
||||
beq right_pressed
|
||||
; cmp #'D'
|
||||
; beq right_pressed
|
||||
cmp #$15 ; right key
|
||||
bne check_up
|
||||
right_pressed:
|
||||
@ -128,8 +163,8 @@ right_pressed:
|
||||
jmp done_keypress
|
||||
|
||||
check_up:
|
||||
cmp #'W'
|
||||
beq up_pressed
|
||||
; cmp #'W'
|
||||
; beq up_pressed
|
||||
cmp #$0B ; up key
|
||||
bne check_down
|
||||
up_pressed:
|
||||
@ -137,8 +172,8 @@ up_pressed:
|
||||
jmp done_keypress
|
||||
|
||||
check_down:
|
||||
cmp #'S'
|
||||
beq down_pressed
|
||||
; cmp #'S'
|
||||
; beq down_pressed
|
||||
cmp #$0A
|
||||
bne check_return
|
||||
down_pressed:
|
||||
@ -146,13 +181,13 @@ down_pressed:
|
||||
jmp done_keypress
|
||||
|
||||
check_return:
|
||||
cmp #' '
|
||||
beq return_pressed
|
||||
cmp #13
|
||||
bne no_keypress
|
||||
return_pressed:
|
||||
; cmp #' '
|
||||
; beq return_pressed
|
||||
; cmp #13
|
||||
; bne done_keypress
|
||||
;return_pressed:
|
||||
|
||||
lda #' '
|
||||
; lda #' '
|
||||
jmp done_keypress
|
||||
|
||||
no_keypress:
|
||||
|
@ -78,8 +78,13 @@ flying_loop:
|
||||
flying_keyboard:
|
||||
|
||||
jsr get_keypress ; get keypress ; 6
|
||||
bne key_was_pressed
|
||||
|
||||
lda LASTKEY ; 3
|
||||
jmp check_done
|
||||
|
||||
key_was_pressed:
|
||||
|
||||
; lda LASTKEY ; 3
|
||||
|
||||
; cmp #('Q') ; if quit, then return
|
||||
; bne skipskip
|
||||
@ -103,6 +108,7 @@ flying_keyboard:
|
||||
jsr update_z_factor
|
||||
lda #0
|
||||
sta SPLASH_COUNT
|
||||
jmp check_done
|
||||
|
||||
flying_check_down:
|
||||
cmp #('S')
|
||||
@ -119,11 +125,13 @@ flying_check_down:
|
||||
inc SHIPY ; move ship down
|
||||
dec SPACEZ_I ; decrement height
|
||||
jsr update_z_factor
|
||||
bcc flying_check_left
|
||||
bcc done_flying_down
|
||||
|
||||
splashy:
|
||||
lda #10
|
||||
sta SPLASH_COUNT
|
||||
done_flying_down:
|
||||
jmp check_done
|
||||
|
||||
flying_check_left:
|
||||
cmp #('A')
|
||||
@ -139,14 +147,14 @@ flying_check_left:
|
||||
|
||||
lda #$0
|
||||
sta TURNING
|
||||
clv
|
||||
bvc flying_check_right
|
||||
jmp check_done
|
||||
|
||||
turn_left:
|
||||
lda #253 ; -3
|
||||
sta TURNING
|
||||
|
||||
dec ANGLE
|
||||
jmp check_done
|
||||
|
||||
flying_check_right:
|
||||
cmp #('D')
|
||||
@ -160,14 +168,14 @@ flying_check_right:
|
||||
bpl turn_right
|
||||
lda #0
|
||||
sta TURNING
|
||||
clv
|
||||
bvc check_speedup
|
||||
jmp check_done
|
||||
|
||||
turn_right:
|
||||
lda #3
|
||||
sta TURNING
|
||||
|
||||
inc ANGLE
|
||||
jmp check_done
|
||||
|
||||
check_speedup:
|
||||
cmp #('Z')
|
||||
@ -178,8 +186,10 @@ check_speedup:
|
||||
;=========
|
||||
lda #$8
|
||||
cmp SPEED
|
||||
beq check_speeddown
|
||||
beq skip_speedup
|
||||
inc SPEED
|
||||
skip_speedup:
|
||||
jmp check_done
|
||||
|
||||
check_speeddown:
|
||||
cmp #('X')
|
||||
@ -190,8 +200,10 @@ check_speeddown:
|
||||
;===========
|
||||
|
||||
lda SPEED
|
||||
beq check_brake
|
||||
beq skip_speeddown
|
||||
dec SPEED
|
||||
skip_speeddown:
|
||||
jmp check_done
|
||||
|
||||
check_brake:
|
||||
cmp #(' '+128)
|
||||
@ -202,6 +214,7 @@ check_brake:
|
||||
;============
|
||||
lda #$0
|
||||
sta SPEED
|
||||
jmp check_done
|
||||
|
||||
check_land:
|
||||
cmp #13
|
||||
@ -260,6 +273,9 @@ landing_loop:
|
||||
|
||||
bpl landing_loop
|
||||
|
||||
done_flying:
|
||||
lda #LOAD_WORLD
|
||||
sta WHICH_LOAD
|
||||
|
||||
rts ; finish flying
|
||||
|
||||
|
@ -64,7 +64,7 @@ worldmap_keyboard:
|
||||
|
||||
jsr get_keypress ; get keypress
|
||||
|
||||
lda LASTKEY
|
||||
; lda LASTKEY
|
||||
|
||||
worldmap_handle_q:
|
||||
cmp #('Q') ; if quit, then return
|
||||
|
Loading…
x
Reference in New Issue
Block a user