comparison menu.s68 @ 960:0abfecaaf5c8

Get cursor behaving properly in save state slot list
author Michael Pavone <pavone@retrodev.com>
date Sun, 17 Apr 2016 20:31:22 -0700
parents 83532f944e3b
children 750995b587a0
comparison
equal deleted inserted replaced
959:3b270fc43ed4 960:0abfecaaf5c8
189 more_pages rs.b 1 189 more_pages rs.b 1
190 mouse_buf rs.b 3 190 mouse_buf rs.b 3
191 mouse_shown rs.b 1 191 mouse_shown rs.b 1
192 last_mbuttons rs.b 1 192 last_mbuttons rs.b 1
193 num_menu rs.b 1 193 num_menu rs.b 1
194 num_slots rs.b 1
194 195
195 196
196 int_6: 197 int_6:
197 dmasrc sprite_list, DMA_SRC_68K 198 dmasrc sprite_list, DMA_SRC_68K
198 ;set DMA length 199 ;set DMA length
251 ;d0 = SACBRLUD 252 ;d0 = SACBRLUD
252 ;d1 = newly pressed buttons 253 ;d1 = newly pressed buttons
253 handle_pad_buttons: 254 handle_pad_buttons:
254 tst.b num_menu.w 255 tst.b num_menu.w
255 bne handle_buttons_menu 256 bne handle_buttons_menu
257 tst.b num_slots.w
258 bne handle_buttons_save
256 moveq #16, d2 259 moveq #16, d2
257 260
258 261
259 btst #3, d1 262 btst #3, d1
260 bne right 263 bne right
272 handle_done: 275 handle_done:
273 rts 276 rts
274 handle_buttons_menu 277 handle_buttons_menu
275 moveq #48, d2 278 moveq #48, d2
276 bra buttons_no_leftright 279 bra buttons_no_leftright
280 handle_buttons_save
281 moveq #32, d2
282 bra buttons_no_leftright
277 283
278 down: 284 down:
279 285
280 ;check if we are already at the bottom of the page 286 ;check if we are already at the bottom of the page
281 moveq #1, d0 287 moveq #1, d0
282 add.b (selected).w, d0 288 add.b (selected).w, d0
283 tst.b num_menu.w 289 tst.b num_menu.w
284 bne .menu 290 bne .menu
291 tst.b num_slots.w
292 bne .slots
285 move.w d0, d1 293 move.w d0, d1
286 add.w d1, d1 294 add.w d1, d1
287 add.w d1, d1 295 add.w d1, d1
288 lea page_index.w, a2 296 lea page_index.w, a2
289 tst.l (0, a2, d1.w) 297 tst.l (0, a2, d1.w)
294 add.w d2, (sprite_list).w 302 add.w d2, (sprite_list).w
295 add.w d2, (sprite_list+8).w 303 add.w d2, (sprite_list+8).w
296 rts 304 rts
297 .menu: 305 .menu:
298 cmp.b num_menu.w, d0 306 cmp.b num_menu.w, d0
307 beq handle_done
308 bra .do_move
309 .slots:
310 cmp.b num_slots.w, d0
299 beq handle_done 311 beq handle_done
300 bra .do_move 312 bra .do_move
301 313
302 up: 314 up:
303 ;check if we are already at the top of the page 315 ;check if we are already at the top of the page
920 moveq #8, d6 932 moveq #8, d6
921 move.l #about_menu_func, menu_functions.w 933 move.l #about_menu_func, menu_functions.w
922 lea about_menu(pc), a5 934 lea about_menu(pc), a5
923 bsr draw_menu 935 bsr draw_menu
924 .wait 936 .wait
925 stop #2500 937 stop #$2500
926 bra .wait 938 bra .wait
927 939
928 exit: 940 exit:
929 move.l #1, menu_port+12 941 move.l #1, menu_port+12
930 bra exit 942 bra exit
932 resume: 944 resume:
933 move.l #2, menu_port+12 945 move.l #2, menu_port+12
934 bra show_pause_menu 946 bra show_pause_menu
935 947
936 show_save_slots: 948 show_save_slots:
949 move.w #(256+26), sprite_list.w
950 move.w #(256+26), (sprite_list+8).w
951 move.w #(128+8), (sprite_list+6).w
952 move.w #(128+320-24), (sprite_list+6+8).w
953 move.b #0, selected.w
954 move.b #0, num_menu.w
937 lea dir_buffer, a6 955 lea dir_buffer, a6
938 lea menu_port+16, a3 956 lea menu_port+16, a3
939 move.l a6, (a3) 957 move.l a6, (a3)
940 .waitdone: 958 .waitdone:
941 tst.w (a3) 959 tst.w (a3)
942 bne .waitdone 960 bne .waitdone
943 bsr clear_screen 961 bsr clear_screen
944 moveq #0, d0 962 moveq #0, d0
945 963
964 moveq #0, d6
946 moveq #2, d7 965 moveq #2, d7
947 .slotloop 966 .slotloop
948 tst.b (a6) 967 tst.b (a6)
949 beq .done 968 beq .done
950 moveq #2, d1 969 addq #1, d6
970 moveq #4, d1
951 move.w d7, d2 971 move.w d7, d2
952 bsr print_string_fixed 972 bsr print_string_fixed
953 addq #2, d7 973 addq #2, d7
954 bra .slotloop 974 bra .slotloop
955 .done 975 .done
976 move.b d6, num_slots.w
956 rts 977 rts
957 978
958 save_state: 979 save_state:
959 bsr show_save_slots 980 bsr show_save_slots
960 .forever 981 .wait
961 bra .forever 982 stop #$2500
983 bra .wait
962 984
963 load_state: 985 load_state:
964 bsr show_save_slots 986 bsr show_save_slots
965 .forever 987 .wait
966 bra .forever 988 stop #$2500
989 bra .wait
967 990
968 about_text: 991 about_text:
969 dc.b "BlastEm v0.4.0", 0 992 dc.b "BlastEm v0.4.0", 0
970 dc.b "Copyright 2011-2016 Michael Pavone", 0 993 dc.b "Copyright 2011-2016 Michael Pavone", 0
971 dc.b " ", 0 994 dc.b " ", 0