Mercurial > repos > simple16
comparison pic8bpp.s16 @ 56:fa9cf7108ab7
Add 8bpp picture example
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 31 Aug 2016 23:50:20 -0700 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
55:f9846719aa26 | 56:fa9cf7108ab7 |
---|---|
1 ;high databank points to ROM, low databank poits to VRAM | |
2 ldim 0, db | |
3 ldimh $E0, db | |
4 | |
5 ;load address of image in r1 | |
6 ldim image, r1 | |
7 ldimh image, r1 | |
8 ldim 0, r2 | |
9 ldimh $80, r2 | |
10 add r2, r1, r1 | |
11 | |
12 ;VRAM offset, this allows the 204 pixel display to be centered on 32K point | |
13 ldim $80, r3 | |
14 ldimh 0, r3 | |
15 ;set display offset register | |
16 outi $C, r3 | |
17 | |
18 ;zero reg, for use in loads and stores | |
19 ldim 0, r0 | |
20 | |
21 | |
22 ;copy palette | |
23 ld16 r1, r0, r4 | |
24 addi 2, r1 | |
25 mov r4, r5 | |
26 ldimh 0, r5 | |
27 outi $E, r5 | |
28 pal_loop | |
29 ld16 r1, r0, r5 | |
30 addi 2, r1 | |
31 outi $E, r5 | |
32 addi -1, r4 | |
33 bne pal_loop | |
34 | |
35 ;copy first 102 lines | |
36 ;r4 = 320 * 102 | |
37 ldim $80, r4 | |
38 ldimh $7F, r4 | |
39 copy_loop: | |
40 ld8 r1, r0, r5 | |
41 str8 r3, r0, r5 | |
42 addi 1, r1 | |
43 bcc no_adjust | |
44 ;we've hit the end of the upper data bank, adjust it and reset r1 to point to begining of bank | |
45 addi 1, db | |
46 ldim 0, r1 | |
47 ldimh $80, r1 | |
48 no_adjust | |
49 addi 1, r3 | |
50 addi -1, r4 | |
51 bne copy_loop | |
52 | |
53 ;r4 = 320 * 102 | |
54 ldim $80, r4 | |
55 ldimh $7F, r4 | |
56 | |
57 ;point lower bank at second half of frame buffer | |
58 ldimh $E1, db | |
59 ;reset framebuffer pointer | |
60 ldim 0, r3 | |
61 copy_loop2: | |
62 ld8 r1, r0, r5 | |
63 str8 r3, r0, r5 | |
64 addi 1, r1 | |
65 bcc no_adjust2 | |
66 ;we've hit the end of the upper data bank, adjust it and reset r1 to point to begining of bank | |
67 addi 1, db | |
68 ldim 0, r1 | |
69 ldimh $80, r1 | |
70 no_adjust2 | |
71 addi 1, r3 | |
72 addi -1, r4 | |
73 bne copy_loop2 | |
74 | |
75 ;enable display/set mode/flip buffer | |
76 ldim $A5, r5 | |
77 ldimh $C4, r5 | |
78 outi $D, r5 | |
79 | |
80 forever: | |
81 bra forever | |
82 | |
83 image: | |
84 incbin fish.raw |