annotate pic8bpp.s16 @ 59:b15187a99d6f default tip

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