Mercurial > repos > blastem
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 |