dos33fsprogs/games/lemm/update_menu.s

191 lines
3.2 KiB
ArmAsm
Raw Permalink Normal View History

;=============================
; update remaining_all
;=============================
update_remaining_all:
ldx #0
ura_loop:
txa
pha
jsr update_remaining
pla
tax
inx
cpx #8
bne ura_loop
rts
;=============================
; update remaining
;=============================
; X is which one to update
update_remaining:
txa
pha
jsr hgr_sprite_page_toggle ; toggle page (bg)
lda CLIMBER_COUNT,X
tay
lda littlenums_l,Y
sta INL
lda littlenums_h,Y
sta INH
lda remaining_x,X
sta XPOS
lda #169
sta YPOS
jsr hgr_draw_sprite
;
pla
tax
jsr hgr_sprite_page_toggle ; toggle page (bg)
lda CLIMBER_COUNT,X
tay
lda littlenums_l,Y
sta INL
lda littlenums_h,Y
sta INH
lda remaining_x,X
sta XPOS
lda #169
sta YPOS
jsr hgr_draw_sprite
rts
; X locations to print the counts at
; approximate, 7-bit boundaries where graphics are on 8-bit
remaining_x:
.byte 5,7,10,12,14,17,19,21
littlenums_l:
.byte <little00_sprite,<little01_sprite,<little02_sprite
.byte <little03_sprite,<little04_sprite,<little05_sprite
.byte <little06_sprite,<little07_sprite,<little08_sprite
.byte <little09_sprite,<little10_sprite,<little11_sprite
.byte <little12_sprite,<little13_sprite,<little14_sprite
.byte <little15_sprite,<little16_sprite,<little17_sprite
.byte <little18_sprite,<little19_sprite,<little20_sprite
littlenums_h:
.byte >little00_sprite,>little01_sprite,>little02_sprite
.byte >little03_sprite,>little04_sprite,>little05_sprite
.byte >little06_sprite,>little07_sprite,>little08_sprite
.byte >little09_sprite,>little10_sprite,>little11_sprite
.byte >little12_sprite,>little13_sprite,>little14_sprite
.byte >little15_sprite,>little16_sprite,>little17_sprite
.byte >little18_sprite,>little19_sprite,>little20_sprite
;=============================
; update selection
;=============================
update_selection:
2022-03-15 02:57:33 +00:00
lda BUTTON_LOCATION
bne actually_update_selection
2022-03-15 02:57:33 +00:00
rts
actually_update_selection:
2022-03-15 02:57:33 +00:00
ldx #7
stx HGR_COLOR
lda BUTTON_LOCATION
jsr draw_button
rts
;========================
; erase menu
2022-03-15 02:57:33 +00:00
;========================
erase_menu:
lda BUTTON_LOCATION
bne actually_erase_menu
rts
actually_erase_menu:
ldx #0
stx HGR_COLOR
lda BUTTON_LOCATION
jsr draw_button
rts
;====================
; draw button
;====================
draw_button:
; location is (1+BUTTON_LOCATION)*16
2022-03-14 16:16:40 +00:00
2022-03-14 20:43:58 +00:00
; two hlins
2022-03-15 02:57:33 +00:00
lda BUTTON_LOCATION
clc
adc #1
asl
asl
asl
asl
tax
sta button_smc1+1
sta button_smc2+1
sta button_smc3+1
clc
adc #15
sta button_smc4+1
2022-03-15 03:22:32 +00:00
; draw on both pages
jsr actual_button_draw
jsr hgr_hlin_page_toggle
jsr hgr_vlin_page_toggle
jsr actual_button_draw
jsr hgr_hlin_page_toggle
jsr hgr_vlin_page_toggle
rts
actual_button_draw:
2022-03-15 02:57:33 +00:00
button_smc1:
2022-03-14 16:16:40 +00:00
ldx #144
2022-03-14 20:43:58 +00:00
lda #168
2022-03-14 16:16:40 +00:00
ldy #15
jsr hgr_hlin ; (x,a) to (x+y,a)
2022-03-15 02:57:33 +00:00
button_smc2:
2022-03-14 16:16:40 +00:00
ldx #144
2022-03-14 20:43:58 +00:00
lda #191
2022-03-14 16:16:40 +00:00
ldy #15
jsr hgr_hlin ; (x,a) to (x+y,a)
2022-03-14 20:43:58 +00:00
; two vlins
2022-03-15 02:57:33 +00:00
button_smc3:
2022-03-14 20:43:58 +00:00
ldx #144
lda #168
2022-03-15 02:57:33 +00:00
ldy #23
2022-03-14 20:43:58 +00:00
jsr hgr_vlin ; (x,a) to (x,a+y)
2022-03-15 02:57:33 +00:00
button_smc4:
2022-03-14 20:43:58 +00:00
ldx #159
lda #168
2022-03-15 02:57:33 +00:00
ldy #23
2022-03-14 20:43:58 +00:00
jsr hgr_vlin ; (x,a) to (x,a+y)
2022-03-14 16:16:40 +00:00
rts