xref: /openbsd/sys/arch/luna88k/stand/boot/logo.c (revision 684cac8d)
1 /*	$OpenBSD: logo.c,v 1.1 2023/02/15 12:43:32 aoyama Exp $	*/
2 
3 /*
4  * Copyright (c) 2023 Kenji Aoyama
5  *
6  * Permission to use, copy, modify, and distribute this software for any
7  * purpose with or without fee is hereby granted, provided that the above
8  * copyright notice and this permission notice appear in all copies.
9  *
10  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17  */
18 
19 #include <sys/types.h>
20 #include <machine/board.h>
21 
22 #define LUNAFB_OFFSET	2	/* LUNA's fb has 2 words (64 pixels) offset */
23 #define WORDS_PER_LINE	64
24 #define LOGO_XSIZE	4	/* in word, i.e. 4 x 32 = 128 pixels */
25 #define LOGO_YSIZE	128
26 #define LOGO_XOFFSET	0	/* in word */
27 #define LOGO_YOFFSET	40
28 
29 u_int32_t pattern[LOGO_YSIZE][LOGO_XSIZE];
30 
31 void
draw_logo(void)32 draw_logo(void)
33 {
34 	int i, j;
35 	u_int32_t *p = (u_int32_t *)(BMAP_BMP) + LUNAFB_OFFSET
36 			+ LOGO_XOFFSET + LOGO_YOFFSET * WORDS_PER_LINE;
37 	u_int32_t *q;
38 
39 	for(i = 0; i < LOGO_YSIZE; i++) {
40 		q = p;
41 		for (j = 0; j < LOGO_XSIZE; j++) {
42 			*p++ = pattern[i][j];
43 		}
44 		p = q + WORDS_PER_LINE;
45 	}
46 }
47 
48 /* OpenBSD Puffy 128x128, displayed in black on while */
49 u_int32_t pattern[LOGO_YSIZE][LOGO_XSIZE] = {
50 	{ 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 0 */
51 	{ 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 1 */
52 	{ 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 2 */
53 	{ 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 3 */
54 	{ 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 4 */
55 	{ 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 5 */
56 	{ 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 6 */
57 	{ 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 7 */
58 	{ 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 8 */
59 	{ 0x00000000, 0x00000000, 0x00400000, 0x00000000, }, /* 9 */
60 	{ 0x00000000, 0x00000000, 0x00c00000, 0x00000000, }, /* 10 */
61 	{ 0x00000000, 0x00000000, 0x00c00000, 0x00000000, }, /* 11 */
62 	{ 0x00000000, 0x00000000, 0x00c00000, 0x00000000, }, /* 12 */
63 	{ 0x00000000, 0x00000002, 0x00c00000, 0x00000000, }, /* 13 */
64 	{ 0x00000000, 0x00002003, 0x00c00000, 0x00000000, }, /* 14 */
65 	{ 0x00000000, 0x00003003, 0x00c02000, 0x00000000, }, /* 15 */
66 	{ 0x00000000, 0x00003803, 0x11e23000, 0x00000000, }, /* 16 */
67 	{ 0x00000000, 0x00001823, 0x99a27001, 0x00000000, }, /* 17 */
68 	{ 0x00000000, 0x000c1c33, 0x99267001, 0x00000000, }, /* 18 */
69 	{ 0x00000000, 0x000e1e32, 0xdf3e7103, 0x00000000, }, /* 19 */
70 	{ 0x00000000, 0x000e0b3a, 0x7e1ff103, 0x00000000, }, /* 20 */
71 	{ 0x00000000, 0x000709fe, 0x7001f106, 0x00000000, }, /* 21 */
72 	{ 0x00000000, 0x0005087e, 0x6000db0e, 0x00000000, }, /* 22 */
73 	{ 0x00000000, 0x00079802, 0x60009f9a, 0x00000000, }, /* 23 */
74 	{ 0x00000000, 0x0002f802, 0x200093f2, 0x00000000, }, /* 24 */
75 	{ 0x00000000, 0x20227002, 0x200110e2, 0x20000000, }, /* 25 */
76 	{ 0x00000000, 0x30336002, 0x11011002, 0xe0000000, }, /* 26 */
77 	{ 0x00000000, 0x181b2080, 0x11021007, 0xd8000000, }, /* 27 */
78 	{ 0x00000000, 0x0c1f10c0, 0x01801001, 0x98000000, }, /* 28 */
79 	{ 0x00000000, 0x0f1d88c0, 0x01801080, 0xf0000000, }, /* 29 */
80 	{ 0x00000000, 0x07f880e0, 0x03801080, 0x70000000, }, /* 30 */
81 	{ 0x0000000e, 0x02608060, 0x02800180, 0xb1018000, }, /* 31 */
82 	{ 0x00000007, 0x83008070, 0x02400301, 0x3f038000, }, /* 32 */
83 	{ 0x00000006, 0xc3008050, 0x02400302, 0x2e0f0000, }, /* 33 */
84 	{ 0x00000003, 0x33000048, 0x02400504, 0x667e0000, }, /* 34 */
85 	{ 0x00000001, 0x9e00004c, 0x00000900, 0x43ec0000, }, /* 35 */
86 	{ 0x00000000, 0xc60c0040, 0x00001100, 0x41880000, }, /* 36 */
87 	{ 0x00000002, 0x63860040, 0x20040100, 0x40100000, }, /* 37 */
88 	{ 0x00000003, 0xf0e70000, 0x60040100, 0x40300000, }, /* 38 */
89 	{ 0x00000781, 0xf8038000, 0x700a0100, 0x00600000, }, /* 39 */
90 	{ 0x000003c0, 0xf8016000, 0x50120000, 0x00600000, }, /* 40 */
91 	{ 0x000001ff, 0xfc000180, 0x10000000, 0x007e0000, }, /* 41 */
92 	{ 0x000000c7, 0x060000c0, 0x00000000, 0x08380000, }, /* 42 */
93 	{ 0x00000060, 0x02000020, 0x000000c0, 0x18380000, }, /* 43 */
94 	{ 0x00000030, 0x00000000, 0x000001c0, 0x78100000, }, /* 44 */
95 	{ 0x00000018, 0x00000000, 0x00000000, 0x8c180000, }, /* 45 */
96 	{ 0x000000f8, 0x00040001, 0x00020081, 0x041c0000, }, /* 46 */
97 	{ 0x00000038, 0x00030000, 0x00000002, 0x021e0000, }, /* 47 */
98 	{ 0x00000008, 0x38018000, 0x00000004, 0x030b0000, }, /* 48 */
99 	{ 0x00000008, 0x1f01e000, 0x0000000c, 0x01098000, }, /* 49 */
100 	{ 0x00000e18, 0x07f08000, 0x00000008, 0x00888000, }, /* 50 */
101 	{ 0x00000f90, 0x03008000, 0x0000000b, 0xff88c000, }, /* 51 */
102 	{ 0x00000e78, 0x01000000, 0x0000001e, 0x01cfc000, }, /* 52 */
103 	{ 0x00000387, 0x80800000, 0x0000001c, 0x0089e000, }, /* 53 */
104 	{ 0x000001c0, 0x00800000, 0x00000004, 0x0c8cc000, }, /* 54 */
105 	{ 0x00000060, 0x00400000, 0x00000004, 0x1e8ec000, }, /* 55 */
106 	{ 0x00000078, 0x00000000, 0x00000006, 0x0c8ec000, }, /* 56 */
107 	{ 0x07f00e78, 0x00000000, 0x0000000f, 0x008cc000, }, /* 57 */
108 	{ 0x1e1c03fc, 0x18080000, 0x00000001, 0xc08ce000, }, /* 58 */
109 	{ 0x3c0600e2, 0x30e00000, 0x00000000, 0x718ce000, }, /* 59 */
110 	{ 0xfc018040, 0x60600000, 0x00000000, 0x190d3000, }, /* 60 */
111 	{ 0x0700c040, 0x08000000, 0x00000000, 0x0f0f1800, }, /* 61 */
112 	{ 0x030060c0, 0x00000000, 0x00000000, 0x060f0800, }, /* 62 */
113 	{ 0x018030c0, 0x00000000, 0x00000000, 0x0619cc00, }, /* 63 */
114 	{ 0x01c01fc1, 0x00000000, 0x00000000, 0x06206c00, }, /* 64 */
115 	{ 0x00c00646, 0x00000080, 0x00000000, 0x06002600, }, /* 65 */
116 	{ 0x0060005c, 0x00000000, 0x00000008, 0x06402600, }, /* 66 */
117 	{ 0x0030001b, 0x8100c000, 0x00000004, 0x06802600, }, /* 67 */
118 	{ 0x00180000, 0xc2000000, 0x00040000, 0x07002200, }, /* 68 */
119 	{ 0x00180000, 0x02000000, 0x00000000, 0x06086300, }, /* 69 */
120 	{ 0x000c0000, 0x04000000, 0x00000000, 0x06784300, }, /* 70 */
121 	{ 0x000c0000, 0x080000f8, 0x40000000, 0x0ff8c3c0, }, /* 71 */
122 	{ 0x00060000, 0x11e40387, 0xc0000000, 0x0e0fc3c0, }, /* 72 */
123 	{ 0x00020004, 0x3f080700, 0x00000000, 0x1e04c260, }, /* 73 */
124 	{ 0x00030020, 0x60080600, 0x10000000, 0x16044220, }, /* 74 */
125 	{ 0x0001c038, 0x001e0c00, 0x30000000, 0x22004610, }, /* 75 */
126 	{ 0x00018038, 0x00000800, 0xc0000180, 0x62004618, }, /* 76 */
127 	{ 0x0001803e, 0x10001801, 0x00000080, 0xc100440f, }, /* 77 */
128 	{ 0x0000c070, 0x20081002, 0x00000000, 0x81004c07, }, /* 78 */
129 	{ 0x0000c0d0, 0x60082002, 0x00004001, 0x01004f1e, }, /* 79 */
130 	{ 0x0000c098, 0x4010c004, 0x4001c000, 0x0180dffc, }, /* 80 */
131 	{ 0x00006088, 0xc8318018, 0x00008000, 0x01c1b1f0, }, /* 81 */
132 	{ 0x0000610d, 0xf020e030, 0x01000000, 0x01e76000, }, /* 82 */
133 	{ 0x0000630d, 0xe0703fe0, 0x02000000, 0x033c4000, }, /* 83 */
134 	{ 0x0000670f, 0xc0e007c0, 0x02000440, 0x42008000, }, /* 84 */
135 	{ 0x00007e0f, 0x81800000, 0x00000140, 0x40030000, }, /* 85 */
136 	{ 0x0000f81f, 0x00000020, 0x80000080, 0x20260000, }, /* 86 */
137 	{ 0x0001e039, 0x004000c0, 0x800400c1, 0x202e0000, }, /* 87 */
138 	{ 0x00000020, 0x80400080, 0x00040060, 0xd03f0000, }, /* 88 */
139 	{ 0x00000040, 0xc0c04400, 0x600c0000, 0x711b8000, }, /* 89 */
140 	{ 0x00000000, 0xe0804800, 0x600c0000, 0x38d88000, }, /* 90 */
141 	{ 0x00000001, 0xf0805000, 0x00000200, 0x18f80000, }, /* 91 */
142 	{ 0x00000001, 0xf9866000, 0x00002200, 0x00dc0000, }, /* 92 */
143 	{ 0x00000001, 0xfd8c6008, 0x00001200, 0x00c00000, }, /* 93 */
144 	{ 0x00000003, 0xc7184008, 0x81001a00, 0x81c00000, }, /* 94 */
145 	{ 0x00000003, 0x83300809, 0x81100800, 0x83c00000, }, /* 95 */
146 	{ 0x00000007, 0x02600805, 0x00900420, 0x07e00000, }, /* 96 */
147 	{ 0x00000006, 0x02600805, 0x00900318, 0x4ff00000, }, /* 97 */
148 	{ 0x0000000c, 0x02b80826, 0x00d00304, 0x5cf80000, }, /* 98 */
149 	{ 0x00000008, 0x071c0846, 0x00541106, 0x303c0000, }, /* 99 */
150 	{ 0x00000000, 0x06060c46, 0x41621103, 0xb00c0000, }, /* 100 */
151 	{ 0x00000000, 0x06078c80, 0x41231003, 0xd0000000, }, /* 101 */
152 	{ 0x00000000, 0x0407fc80, 0x23211003, 0xd0000000, }, /* 102 */
153 	{ 0x00000000, 0x0007f900, 0x2321900c, 0x28000000, }, /* 103 */
154 	{ 0x00000000, 0x00078980, 0x32009038, 0x1c000000, }, /* 104 */
155 	{ 0x00000000, 0x00070be0, 0x3200d1f0, 0x1c000000, }, /* 105 */
156 	{ 0x00000000, 0x00070a3e, 0x3200cff0, 0x0e000000, }, /* 106 */
157 	{ 0x00000000, 0x00060e1f, 0xfa01cff0, 0x00000000, }, /* 107 */
158 	{ 0x00000000, 0x000e0e1f, 0xffffe8f0, 0x00000000, }, /* 108 */
159 	{ 0x00000000, 0x000c0c0f, 0x9e7e2878, 0x00000000, }, /* 109 */
160 	{ 0x00000000, 0x000c000f, 0x0c7c2838, 0x00000000, }, /* 110 */
161 	{ 0x00000000, 0x0000000f, 0x0c3c3818, 0x00000000, }, /* 111 */
162 	{ 0x00000000, 0x0000000e, 0x0c3c180c, 0x00000000, }, /* 112 */
163 	{ 0x00000000, 0x0000000e, 0x0c1c1804, 0x00000000, }, /* 113 */
164 	{ 0x00000000, 0x0000000c, 0x081c0800, 0x00000000, }, /* 114 */
165 	{ 0x00000000, 0x0000000c, 0x00180000, 0x00000000, }, /* 115 */
166 	{ 0x00000000, 0x0000000c, 0x00080000, 0x00000000, }, /* 116 */
167 	{ 0x00000000, 0x00000000, 0x00080000, 0x00000000, }, /* 117 */
168 	{ 0x00000000, 0x00000000, 0x00080000, 0x00000000, }, /* 118 */
169 	{ 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 119 */
170 	{ 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 120 */
171 	{ 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 121 */
172 	{ 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 122 */
173 	{ 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 123 */
174 	{ 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 124 */
175 	{ 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 125 */
176 	{ 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 126 */
177 	{ 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* 127 */
178 };
179