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