Mercurial > repos > simple16
view controller.s16 @ 32:8642cb2ceb89
WIP button test ROM
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 03 Apr 2016 18:38:41 -0700 |
parents | |
children | 4a093f15fb1b |
line wrap: on
line source
ldim vectors, r0 ldimh vectors, r0 setvbr r0 ;load palette ldim 0, r0 ldimh $FF,r0 outi $E, r0 ldim colors, r1 ldimh colors, r1 ;copy 3 colors for 1st palette ldim 0, r2 ldim 3, r3 ldim copy_data, r12 ldimh copy_data, r12 call r12, r13 ;setup writes to 2nd palette ldim $10, r0 ldimh $FF,r0 outi $E, r0 ;copy 3 colors for 2nd palette ldim 3, r3 call r12, r13 ;setup writes for first map row ldim 0, r0 ldimh $60, r0 outi $E, r0 ldim write_zeros, r11 ldimh write_zeros, r11 ;offset by one row and two columns ldim 66, r3 call r11, r13 ldim 3, r5 row_loop: ;copy 9 table entries for first row ldim 9, r3 call r12, r13 ;zero out rest of row ldim 55, r3 call r11, r13 addi -1, r5 bne row_loop ;setup writes to tile data area ldim 0, r0 outi $E, r0 ;zero out first tile ldim $10, r3 call r11, r13 ;copy tiles ldim $C0, r3 ldimh 0, r3 call r12, r13 ;copy tile map to ram ldim 0, r0 ldimh $C0, r0 ldim map, r1 ldimh map, r1 ldim 0, r2 ldim 27, r3 ldim memcpy16, r10 ldimh memcpy16, r10 call r10, r13 ;enable vertical interrupts ori 2, sr ;vscroll reg ldim 0, r0 ldimh $C6, r0 outi $C, r0 ;hscroll reg + enable display ldim 0, r0 ldimh $80, r0 outi $D, r0 forever: bra forever copy_data: ld16 r1, r2, r4 outi $F, r4 addi 2, r2 addi -1, r3 bne copy_data mov r13, pc memcpy16: ld16 r1, r2, r4 str16 r0, r2, r4 addi 2, r2 addi -1, r3 bne memcpy16 mov r13, pc write_zeros: ldim 0, r4 zloop: outi $f, r4 addi -1, r3 bne zloop mov r13, pc vectors: dc.w 0 dc.w vint_handler vint_handler setuer r13 ;handler code goes here ;setup writes to first element of diagram ldim $84, r0 ldimh $60, r0 outi $E, r0 ;copy first row of updated tile map ldim 0, r1 ldimh $C0, r1 ldim 0, r2 ldim 9, r3 call r12, r13 ;setup writes to second row of diagram ldim $04, r0 ldimh $61, r0 outi $E, r0 ;copy second row ldim 9, r3 call r12, r13 ;setup writes to third row of diagram ldim $84, r0 ldimh $61, r0 outi $E, r0 ;copy third row ldim 9, r3 call r12, r13 reti r13 offsets: dc.w 52 ;C dc.w 50 ;B dc.w 48 ;A dc.w 34 ;Z dc.w 32 ;Y dc.w 30 ;X dc.w 44 ;Mode dc.w 26 ;Start dc.w 22 ;Right dc.w 18 ;Left dc.w 38 ;Down dc.w 2 ;Up colors: dc.w $000 dc.w $777 dc.w $333 ;second palette dc.w $000 dc.w $FFF dc.w $00F map: dc.w 0, 1, 0, 0, 0, 0, 0, 0, 0 dc.w 3, 0, 4, 0, 5, 0, 7, 8, 9 dc.w 0, 2, 0, 0, 6, 0, 10, 11, 12 tiles: incbin buttons.tiles