Mercurial > repos > blastem
comparison menu.s68 @ 925:a3b08915624b
WIP menu button stuff
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Mon, 25 Jan 2016 09:37:27 -0800 |
parents | f057975212e9 |
children | 5e90fa4da2ec |
comparison
equal
deleted
inserted
replaced
920:e64168bb2b25 | 925:a3b08915624b |
---|---|
514 ypos | 514 ypos |
515 ;set port config back to normal controller mode | 515 ;set port config back to normal controller mode |
516 move.b #$40, (PAD1_CTRL-PAD1_DATA, a2) | 516 move.b #$40, (PAD1_CTRL-PAD1_DATA, a2) |
517 rts | 517 rts |
518 | 518 |
519 | 519 topcorner equ (button-font)/64 + 32 |
520 topmiddle equ topcorner+1 | |
521 botcorner equ topmiddle+1 | |
522 botmiddle equ botcorner+1 | |
523 horiz_flip equ $800 | |
524 vert_flip equ $1000 | |
525 | |
526 ; draws a button | |
527 ; d0.w - x in cells | |
528 ; d1.w - y in cells | |
529 ; d2.w - width in cells | |
530 ; | |
531 ; clobbers a6 | |
532 draw_button: | |
533 ;multiply x by 2 | |
534 add.w d0, d0 | |
535 ;multiply y by 128 | |
536 lsl.w #7, d1 | |
537 add.w d1, d0 | |
538 add.w #$A000, d0 | |
539 move.w d0, d1 | |
540 and.w #$3FFF, d0 | |
541 rol.w #2, d1 | |
542 and.w #3, d1 | |
543 ori.w #(VDP_VRAM_WRITE >> 16), d0 | |
544 swap d0 | |
545 move.w d1, d0 | |
546 move.l d0, (a1) | |
547 move.w d2, d1 | |
548 ;top left corner | |
549 move.w #topcorner, (a0) | |
550 subq #3, d1 | |
551 bmi .notopmiddle | |
552 .toploop: | |
553 ;top middle | |
554 move.w #topmiddle, (a0) | |
555 dbra d1, .toploop | |
556 .notopmiddle | |
557 ;top right corner | |
558 move.w #(topcorner | horiz_flip), (a0) | |
559 ;go to next row in name table | |
560 add.l #((2*64) << 16), d0 | |
561 move.l d0, (a1) | |
562 ;bottom left corner | |
563 move.w #botcorner, (a0) | |
564 subq #3, d2 | |
565 bmi .nomiddlebot | |
566 .botloop: | |
567 ;bottom middle | |
568 move.w #botmiddle, (a0) | |
569 dbra d2, .botloop | |
570 .nomiddlebot | |
571 ;bottom right corner | |
572 move.w #(botcorner | horiz_flip), (a0) | |
573 rts | |
520 | 574 |
521 initial_regs: | 575 initial_regs: |
522 vdpreg MODE_2, $4 ;Mode 5, everything turned off | 576 vdpreg MODE_2, $4 ;Mode 5, everything turned off |
523 vdpreg MODE_1, $4 | 577 vdpreg MODE_1, $4 |
524 vdpreg SCROLL_A, $20 ;Scroll a table $8000 | 578 vdpreg SCROLL_A, $20 ;Scroll a table $8000 |
562 move.w #4, (a0) | 616 move.w #4, (a0) |
563 | 617 |
564 ;load tiles | 618 ;load tiles |
565 vdpaccess $800, VDP_VRAM_WRITE | 619 vdpaccess $800, VDP_VRAM_WRITE |
566 lea font(pc), a2 | 620 lea font(pc), a2 |
567 move.w #((cursorend-font)/4 - 1), d0 | 621 move.w #((buttonend-font)/4 - 1), d0 |
568 tloop: | 622 tloop: |
569 move.l (a2)+, (a0) | 623 move.l (a2)+, (a0) |
570 dbra d0, tloop | 624 dbra d0, tloop |
571 | 625 |
572 | 626 |
603 move.b #32, d0 | 657 move.b #32, d0 |
604 move.w #(64*64-1), d1 | 658 move.w #(64*64-1), d1 |
605 ploop: | 659 ploop: |
606 move.l d0, (a0) | 660 move.l d0, (a0) |
607 dbra d1, ploop | 661 dbra d1, ploop |
662 | |
663 moveq #0, d0 | |
664 moveq #26, d1 | |
665 moveq #6, d2 | |
666 bsr draw_button | |
608 | 667 |
609 move.l #$40860002, d3 | 668 move.l #$40860002, d3 |
610 move.l d3, (a1) | 669 move.l d3, (a1) |
611 move.l d3, base_cmd.w | 670 move.l d3, base_cmd.w |
612 | 671 |