comparison vint.s16 @ 26:083347ccd508

Implemented vblank interrupts and fixed a bug in exception vector address calculation
author Michael Pavone <pavone@retrodev.com>
date Fri, 01 Apr 2016 21:34:38 -0700
parents
children 03177ff78094
comparison
equal deleted inserted replaced
25:fb14515266f4 26:083347ccd508
1 ldim vectors, r0
2 setvbr r0
3 ;current color value
4 ldim 0, r0
5 ;color increment
6 ldim $11, r3
7 ldimh $1, r3
8 ;color max
9 ldim $FF, r5
10 ldimh $F, r5
11 ;counter
12 ldim 1, r4
13 ;Palette RAM address
14 ldim 0, r1
15 ldimh $FF, r1
16 ;enable interrupt
17 ori 2, sr
18 ;enable display
19 ldim 0, r2
20 ldimh $80, r2
21 outi $D, r2
22 wait
23 bra wait
24 ;shouldn't get here, disable display so it's clear something broke
25 ldimh $0, r2
26 outi $D, r2
27 bra wait
28
29 vectors:
30 dc.w 0
31 dc.w vint_handler
32
33 vint_handler
34 addi -1, r4
35 bne done
36 outi $E, r1
37 outi $F, r0
38 cmp r0, r5
39 beq down
40 resume
41 add r3, r0, r0
42 beq up
43 ldim 5, r4
44 done
45 reti r13
46 down
47 ldim $EF, r3
48 ldimh $FE, r3
49 bra resume
50 up
51 ldim $11, r3
52 ldimh $1, r3
53 ldim 5, r4
54 reti r13
55