mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-01-17 03:30:28 +00:00
optimize keypress_minimal
This commit is contained in:
parent
6882bf713a
commit
49e1ce4fd7
@ -7,40 +7,40 @@ get_key:
|
|||||||
|
|
||||||
lda KEYPRESS ; 3
|
lda KEYPRESS ; 3
|
||||||
bpl no_key ; 2nt/3
|
bpl no_key ; 2nt/3
|
||||||
|
bit KEYRESET ; clear the keyboard buffer ; 4
|
||||||
|
|
||||||
figure_out_key:
|
figure_out_key:
|
||||||
cmp #' '+128 ; the mask destroys space ; 2
|
cmp #' '+128 ; the mask destroys space ; 2
|
||||||
beq save_key ; so handle it specially ; 2nt/3
|
beq save_key ; so handle it specially ; 2nt/3
|
||||||
|
|
||||||
and #$5f ; mask, to make upper-case ; 2
|
|
||||||
check_right_arrow:
|
check_right_arrow:
|
||||||
cmp #$15 ; 2
|
cmp #$95 ; 2
|
||||||
bne check_left_arrow ; 2nt/3
|
bne check_left_arrow ; 2nt/3
|
||||||
lda #'D' ; 2
|
lda #'D' ; 2
|
||||||
check_left_arrow:
|
check_left_arrow:
|
||||||
cmp #$08 ; 2
|
cmp #$88 ; 2
|
||||||
bne check_up_arrow ; 2nt/3
|
bne check_up_arrow ; 2nt/3
|
||||||
lda #'A' ; 2
|
lda #'A' ; 2
|
||||||
check_up_arrow:
|
check_up_arrow:
|
||||||
cmp #$0B ; 2
|
cmp #$8B ; 2
|
||||||
bne check_down_arrow ; 2nt/3
|
bne check_down_arrow ; 2nt/3
|
||||||
lda #'W' ; 2
|
lda #'W' ; 2
|
||||||
check_down_arrow:
|
check_down_arrow:
|
||||||
cmp #$0A ; 2
|
cmp #$8A ; 2
|
||||||
bne check_escape ; 2nt/3
|
bne check_escape ; 2nt/3
|
||||||
lda #'S' ; 2
|
lda #'S' ; 2
|
||||||
check_escape:
|
check_escape:
|
||||||
|
and #$5f ; mask, to make upper-case ; 2
|
||||||
cmp #$1B ; 2
|
cmp #$1B ; 2
|
||||||
bne save_key ; 2nt/3
|
bne save_key ; 2nt/3
|
||||||
lda #'Q' ; 2
|
lda #'Q' ; 2
|
||||||
jmp save_key ; 3
|
bne save_key ; branch always ; 3
|
||||||
|
|
||||||
no_key:
|
no_key:
|
||||||
lda #0 ; no key, so save a zero ; 2
|
lda #0 ; no key, so save a zero ; 2
|
||||||
|
|
||||||
save_key:
|
save_key:
|
||||||
sta LASTKEY ; save the key to our buffer ; 2
|
sta LASTKEY ; save the key to our buffer ; 2
|
||||||
bit KEYRESET ; clear the keyboard buffer ; 4
|
|
||||||
rts ; 6
|
rts ; 6
|
||||||
;============
|
;============
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user