Modestus Moon OS  R4
CS 450 project
anim.c
Go to the documentation of this file.
1 #include <core/serial.h>
2 
3 
10 void busy_wait() {
11  int i = 0;
12  for (; i < 9999999; i++) {
13  asm volatile("nop");
14  }
15 }
16 
17 void clear_screen() {
18  serial_println("\033[2J");
19 }
20 
21 void start_up_anim() {
22  serial_println(" .------------. ");
23  serial_println(" .--' o . . `--. ");
24  serial_println(" .-' . O . . `-. ");
25  serial_println(" .-'@ @@@@@@@ . @@@@@ `-. ");
26  serial_println(" /@@@ @@@@@@@@@@@ @@@@@@@ . \\ ");
27  serial_println(" ./ o @@@@@@@@@@@ @@@@@@@ . \\. ");
28  serial_println(" /@@ o @@@@@@@@@@@. @@@@@@@ O \\ ");
29  serial_println(" /@@@@ . @@@@@@@o @@@@@@@@@@ @@@ \\ ");
30  serial_println(" |@@@@@ . @@@@@@@@@@@@@ o @@@@| ");
31  serial_println(" /@@@@@ O `.-./ . @@@@@@@@@@@@ @@ \\ ");
32  serial_println(" | @@@@ --`-' o @@@@@@@@ @@@@ | ");
33  serial_println(" |@ @@@ ` o . @@ . @@@@@@@ | ");
34  serial_println(" | @@ @ .-. @@@ @@@@@@@ | ");
35  serial_println(" \\ . @ @@@ `-' . @@@@ @@@@ o / ");
36  serial_println(" | @@ @@@@@ . @@ . | ");
37  serial_println(" \\ @@@@ @\\@@ / . O . o . / ");
38  serial_println(" \\ o @@ \\ \\ / . . / ");
39  serial_println(" `\\ . .\\.-.___ . . .-. /' ");
40  serial_println(" \\ `-' `-' / ");
41  serial_println(" `-. o / | o O . .-' ");
42  serial_println(" `-. / . . .-' ");
43  serial_println(" `--. . .--' ");
44  serial_println(" `------------' ");
45 
46  busy_wait();
47  clear_screen();
48 
49  serial_println(" ------------. ");
50  serial_println(" --' o . . `--. ");
51  serial_println(" -' . O . . `-. ");
52  serial_println(" '@ @@@@@@@ . @@@@@ `-. ");
53  serial_println(" @@ @@@@@@@@@@@ @@@@@@@ . \\ ");
54  serial_println(" o @@@@@@@@@@@ @@@@@@@ . \\. ");
55  serial_println(" o @@@@@@@@@@@. @@@@@@@ O \\ ");
56  serial_println(" @@ . @@@@@@@o @@@@@@@@@@ @@@ \\ ");
57  serial_println(" @@@@ . @@@@@@@@@@@@@ o @@@@| ");
58  serial_println(" @@@ O `.-./ . @@@@@@@@@@@@ @@ \\ ");
59  serial_println(" @@@ --`-' o @@@@@@@@ @@@@ | ");
60  serial_println(" @@@ ` o . @@ . @@@@@@@ | ");
61  serial_println(" @@ @ .-. @@@ @@@@@@@ | ");
62  serial_println(" . @ @@@ `-' . @@@@ @@@@ o / ");
63  serial_println(" @@ @@@@@ . @@ . | ");
64  serial_println(" @@@@ @\\@@ / . O . o . / ");
65  serial_println(" o @@ \\ \\ / . . / ");
66  serial_println(" . .\\.-.___ . . .-. /' ");
67  serial_println(" `-' `-' / ");
68  serial_println(" . o / | o O . .-' ");
69  serial_println(" -. / . . .-' ");
70  serial_println(" --. . .--' ");
71  serial_println(" ------------' ");
72 
73  busy_wait();
74  clear_screen();
75 
76  serial_println(" ----------. ");
77  serial_println(" o . . `--. ");
78  serial_println(" . O . . `-. ");
79  serial_println(" @@@@@@@ . @@@@@ `-. ");
80  serial_println(" @@@@@@@@@@ @@@@@@@ . \\ ");
81  serial_println(" @@@@@@@@@@@ @@@@@@@ . \\. ");
82  serial_println(" @@@@@@@@@@@. @@@@@@@ O \\ ");
83  serial_println(" @@@@@@@o @@@@@@@@@@ @@@ \\ ");
84  serial_println(" . @@@@@@@@@@@@@ o @@@@| ");
85  serial_println(" `.-./ . @@@@@@@@@@@@ @@ \\ ");
86  serial_println(" --`-' o @@@@@@@@ @@@@ | ");
87  serial_println(" ` o . @@ . @@@@@@@ | ");
88  serial_println(" @ @ .-. @@@ @@@@@@@ | ");
89  serial_println(" @@@ `-' . @@@@ @@@@ o / ");
90  serial_println(" @@@@@ . @@ . | ");
91  serial_println(" @ @\\@@ / . O . o . / ");
92  serial_println(" \\ \\ / . . / ");
93  serial_println(" .\\.-.___ . . .-. /' ");
94  serial_println(" `-' `-' / ");
95  serial_println(" / | o O . .-' ");
96  serial_println(" / . . .-' ");
97  serial_println(" . .--' ");
98  serial_println(" ----------' ");
99 
100  busy_wait();
101  clear_screen();
102 
103  serial_println(" -------. ");
104  serial_println(" . . `--. ");
105  serial_println(" . . `-. ");
106  serial_println(" . @@@@@ `-. ");
107  serial_println(" @@ @@@@@@@ . \\ ");
108  serial_println(" @@ @@@@@@@ . \\. ");
109  serial_println(" @@@. @@@@@@@ O \\ ");
110  serial_println(" @o @@@@@@@@@@ @@@ \\ ");
111  serial_println(" . @@@@@@@@@@@@@ o @@@@| ");
112  serial_println(" @@@@@@@@@@@@ @@ \\ ");
113  serial_println(" o @@@@@@@@ @@@@ | ");
114  serial_println(" o . @@ . @@@@@@@ | ");
115  serial_println(" .-. @@@ @@@@@@@ | ");
116  serial_println(" `-' . @@@@ @@@@ o / ");
117  serial_println(" . @@ . | ");
118  serial_println(" / . O . o . / ");
119  serial_println(" / . . / ");
120  serial_println(" ___ . . .-. /' ");
121  serial_println(" `-' / ");
122  serial_println(" o O . .-' ");
123  serial_println(" . . .-' ");
124  serial_println(" . .--' ");
125  serial_println(" -------' ");
126 
127  busy_wait();
128  clear_screen();
129 
130  serial_println(" -----. ");
131  serial_println(" . `--. ");
132  serial_println(" . `-. ");
133  serial_println(" @@@@ `-. ");
134  serial_println(" @@@@@ . \\ ");
135  serial_println(" @@@@ . \\. ");
136  serial_println(" @@@@@ O \\ ");
137  serial_println(" @@@@@@@ @@@ \\ ");
138  serial_println(" @@@@@@@@@ o @@@@| ");
139  serial_println(" @@@@@@@@@ @@ \\ ");
140  serial_println(" @@@@@@@@ @@@@ | ");
141  serial_println(" @@ . @@@@@@@ | ");
142  serial_println(" @@@ @@@@@@@ | ");
143  serial_println(" . @@@@ @@@@ o / ");
144  serial_println(" @@ . | ");
145  serial_println(" . o . / ");
146  serial_println(" . . / ");
147  serial_println(" . .-. /' ");
148  serial_println(" `-' / ");
149  serial_println(" O . .-' ");
150  serial_println(" . .-' ");
151  serial_println(" .--' ");
152  serial_println(" -----' ");
153 
154  busy_wait();
155  clear_screen();
156 
157  serial_println(" ---. ");
158  serial_println(" `--. ");
159  serial_println(" . `-. ");
160  serial_println(" `-. ");
161  serial_println(" . \\ ");
162  serial_println(" . \\. ");
163  serial_println(" O \\ ");
164  serial_println(" @@@ \\ ");
165  serial_println(" o @@@@| ");
166  serial_println(" @@ \\ ");
167  serial_println(" @@@@ | ");
168  serial_println(" @@@@@@ | ");
169  serial_println(" @@@@@@ | ");
170  serial_println(" @@@@ o / ");
171  serial_println(" | ");
172  serial_println(" o . / ");
173  serial_println(" / ");
174  serial_println(" .-. /' ");
175  serial_println(" `-' / ");
176  serial_println(" . .-' ");
177  serial_println(" .-' ");
178  serial_println(" .--' ");
179  serial_println(" ---' ");
180 
181  busy_wait();
182  clear_screen();
183 
184  serial_println(" -. ");
185  serial_println(" -. ");
186  serial_println(" -. ");
187  serial_println(" `-. ");
188  serial_println(" \\ ");
189  serial_println(" \\. ");
190  serial_println(" \\ ");
191  serial_println(" @ \\ ");
192  serial_println(" @@| ");
193  serial_println(" \\ ");
194  serial_println(" | ");
195  serial_println(" | ");
196  serial_println(" | ");
197  serial_println(" o / ");
198  serial_println(" | ");
199  serial_println(" . / ");
200  serial_println(" / ");
201  serial_println(" /' ");
202  serial_println(" / ");
203  serial_println(" .-' ");
204  serial_println(" -' ");
205  serial_println(" -' ");
206  serial_println(" -' ");
207 
208  busy_wait();
209  clear_screen();
210 
211  serial_println(" . ");
212  serial_println(" . ");
213  serial_println(" . ");
214  serial_println(" .- ");
215  serial_println(" / ");
216  serial_println(" . ");
217  serial_println(" / ");
218  serial_println(" / ");
219  serial_println(" | ");
220  serial_println(" / ");
221  serial_println(" | ");
222  serial_println(" | ");
223  serial_println(" | ");
224  serial_println(" \\ ");
225  serial_println(" | ");
226  serial_println(" \\ ");
227  serial_println(" \\ ");
228  serial_println(" ` ");
229  serial_println(" \\ ");
230  serial_println(" `- ");
231  serial_println(" ` ");
232  serial_println(" ` ");
233  serial_println(" ` ");
234 
235  busy_wait();
236  clear_screen();
237 
238  serial_println(" .- ");
239  serial_println(" .- ");
240  serial_println(" .- ");
241  serial_println(" .-'@ ");
242  serial_println(" /@@ ");
243  serial_println(" ./ ");
244  serial_println(" /@@ ");
245  serial_println(" /@@@ ");
246  serial_println(" |@@@ ");
247  serial_println(" /@@@ ");
248  serial_println(" | @@ ");
249  serial_println(" |@ @ ");
250  serial_println(" | ");
251  serial_println(" \\ . ");
252  serial_println(" | ");
253  serial_println(" \\ ");
254  serial_println(" \\ o ");
255  serial_println(" `\\ ");
256  serial_println(" \\ ");
257  serial_println(" `-. ");
258  serial_println(" `- ");
259  serial_println(" `- ");
260  serial_println(" `- ");
261 
262  busy_wait();
263  clear_screen();
264 
265  serial_println(" .--- ");
266  serial_println(" .--' ");
267  serial_println(" .-' ");
268  serial_println(" .-'@ @ ");
269  serial_println(" /@@@ @@ ");
270  serial_println(" ./ o @ ");
271  serial_println(" /@@ o @ ");
272  serial_println(" /@@@@ . ");
273  serial_println(" |@@@@@ ");
274  serial_println(" /@@@@@ O ");
275  serial_println(" | @@@@ ");
276  serial_println(" |@ @@@ ");
277  serial_println(" | @@ ");
278  serial_println(" \\ . @ ");
279  serial_println(" | @@ ");
280  serial_println(" \\ @@@@ ");
281  serial_println(" \\ o @@ ");
282  serial_println(" `\\ . ");
283  serial_println(" \\ ");
284  serial_println(" `-. o ");
285  serial_println(" `-. ");
286  serial_println(" `--. ");
287  serial_println(" `--- ");
288 
289  busy_wait();
290  clear_screen();
291 
292  serial_println(" .----- ");
293  serial_println(" .--' o ");
294  serial_println(" .-' . O ");
295  serial_println(" .-'@ @@@@@@@ ");
296  serial_println(" /@@@ @@@@@@@@@ ");
297  serial_println(" ./ o @@@@@@@@ ");
298  serial_println(" /@@ o @@@@@@@@ ");
299  serial_println(" /@@@@ . @@@@@@ ");
300  serial_println(" |@@@@@ ");
301  serial_println(" /@@@@@ O `.-./ . ");
302  serial_println(" | @@@@ --`-' ");
303  serial_println(" |@ @@@ ` ");
304  serial_println(" | @@ @ ");
305  serial_println(" \\ . @ @@@ ");
306  serial_println(" | @@ @@@@@ ");
307  serial_println(" \\ @@@@ @\\@@ ");
308  serial_println(" \\ o @@ \\ \\ ");
309  serial_println(" `\\ . .\\.- ");
310  serial_println(" \\ `-' ");
311  serial_println(" `-. o / | ");
312  serial_println(" `-. / ");
313  serial_println(" `--. ");
314  serial_println(" `----- ");
315 
316  busy_wait();
317  clear_screen();
318 
319  serial_println(" .--------- ");
320  serial_println(" .--' o . . ");
321  serial_println(" .-' . O . ");
322  serial_println(" .-'@ @@@@@@@ . @@@@@ ");
323  serial_println(" /@@@ @@@@@@@@@@@ @@@@@@@ ");
324  serial_println(" ./ o @@@@@@@@@@@ @@@@@@@ ");
325  serial_println(" /@@ o @@@@@@@@@@@. @@@@@@@ ");
326  serial_println(" /@@@@ . @@@@@@@o @@@@@@@@@ ");
327  serial_println(" |@@@@@ . @@@@@@@@@@ ");
328  serial_println(" /@@@@@ O `.-./ . @@@@@@@@@ ");
329  serial_println(" | @@@@ --`-' o @@@@@@ ");
330  serial_println(" |@ @@@ ` o . @@ ");
331  serial_println(" | @@ @ .-. @@@ ");
332  serial_println(" \\ . @ @@@ `-' . @@@@ ");
333  serial_println(" | @@ @@@@@ . @@ ");
334  serial_println(" \\ @@@@ @\\@@ / . O . ");
335  serial_println(" \\ o @@ \\ \\ / . ");
336  serial_println(" `\\ . .\\.-.___ . ");
337  serial_println(" \\ `-' ");
338  serial_println(" `-. o / | o O ");
339  serial_println(" `-. / . . ");
340  serial_println(" `--. . ");
341  serial_println(" `--------- ");
342 
343  busy_wait();
344  clear_screen();
345 
346  serial_println(" .----------- ");
347  serial_println(" .--' o . . `- ");
348  serial_println(" .-' . O . . ");
349  serial_println(" .-'@ @@@@@@@ . @@@@@ ");
350  serial_println(" /@@@ @@@@@@@@@@@ @@@@@@@ . ");
351  serial_println(" ./ o @@@@@@@@@@@ @@@@@@@ ");
352  serial_println(" /@@ o @@@@@@@@@@@. @@@@@@@ O ");
353  serial_println(" /@@@@ . @@@@@@@o @@@@@@@@@@ ");
354  serial_println(" |@@@@@ . @@@@@@@@@@@@@ o ");
355  serial_println(" /@@@@@ O `.-./ . @@@@@@@@@@@@ ");
356  serial_println(" | @@@@ --`-' o @@@@@@@@ @@@@ ");
357  serial_println(" |@ @@@ ` o . @@ . @@@@@ ");
358  serial_println(" | @@ @ .-. @@@ @@@@@ ");
359  serial_println(" \\ . @ @@@ `-' . @@@@ @@@@ ");
360  serial_println(" | @@ @@@@@ . @@ . ");
361  serial_println(" \\ @@@@ @\\@@ / . O . o ");
362  serial_println(" \\ o @@ \\ \\ / . . ");
363  serial_println(" `\\ . .\\.-.___ . . . ");
364  serial_println(" \\ `-' ` ");
365  serial_println(" `-. o / | o O . ");
366  serial_println(" `-. / . . ");
367  serial_println(" `--. . .- ");
368  serial_println(" `----------- ");
369 
370  busy_wait();
371  clear_screen();
372 
373  serial_println(" .------------ ");
374  serial_println(" .--' o . . `--. ");
375  serial_println(" .-' . O . . `-. ");
376  serial_println(" .-'@ @@@@@@@ . @@@@@ `- ");
377  serial_println(" /@@@ @@@@@@@@@@@ @@@@@@@ . \\ ");
378  serial_println(" ./ o @@@@@@@@@@@ @@@@@@@ . \\ ");
379  serial_println(" /@@ o @@@@@@@@@@@. @@@@@@@ O ");
380  serial_println(" /@@@@ . @@@@@@@o @@@@@@@@@@ @@@ ");
381  serial_println(" |@@@@@ . @@@@@@@@@@@@@ o @@@@ ");
382  serial_println(" /@@@@@ O `.-./ . @@@@@@@@@@@@ @@ ");
383  serial_println(" | @@@@ --`-' o @@@@@@@@ @@@@ ");
384  serial_println(" |@ @@@ ` o . @@ . @@@@@@@ ");
385  serial_println(" | @@ @ .-. @@@ @@@@@@@ ");
386  serial_println(" \\ . @ @@@ `-' . @@@@ @@@@ o ");
387  serial_println(" | @@ @@@@@ . @@ . ");
388  serial_println(" \\ @@@@ @\\@@ / . O . o . ");
389  serial_println(" \\ o @@ \\ \\ / . . ");
390  serial_println(" `\\ . .\\.-.___ . . .-. / ");
391  serial_println(" \\ `-' `-' / ");
392  serial_println(" `-. o / | o O . .- ");
393  serial_println(" `-. / . . .-' ");
394  serial_println(" `--. . .--' ");
395  serial_println(" `------------ ");
396 
397  busy_wait();
398  clear_screen();
399 
400  serial_println(" .------------. ");
401  serial_println(" .--' o . . `--. ");
402  serial_println(" .-' . O . . `-. ");
403  serial_println(" .-'@ @@@@@@@ . @@@@@ `-. ");
404  serial_println(" /@@@ @@@@@@@@@@@ @@@@@@@ . \\ ");
405  serial_println(" ./ o @@@@@@@@@@@ @@@@@@@ . \\. ");
406  serial_println(" /@@ o @@@@@@@@@@@. @@@@@@@ O \\ ");
407  serial_println(" /@@@@ . @@@@@@@o @@@@@@@@@@ @@@ \\ ");
408  serial_println(" |@@@@@ . @@@@@@@@@@@@@ o @@@@| ");
409  serial_println(" /@@@@@ O `.-./ . @@@@@@@@@@@@ @@ \\ ");
410  serial_println(" | @@@@ --`-' o @@@@@@@@ @@@@ | ");
411  serial_println(" |@ @@@ ` o . @@ . @@@@@@@ | \033[3m\033[4mFull Moon OS\033[0m");
412  serial_println(" | @@ @ .-. @@@ @@@@@@@ | Version: R5 Episode 2 ");
413  serial_println(" \\ . @ @@@ `-' . @@@@ @@@@ o / Attack of the Clones ");
414  serial_println(" | @@ @@@@@ . @@ . | ");
415  serial_println(" \\ @@@@ @\\@@ / . O . o . / ");
416  serial_println(" \\ o @@ \\ \\ / . . / ");
417  serial_println(" `\\ . .\\.-.___ . . .-. /' ");
418  serial_println(" \\ `-' `-' / ");
419  serial_println(" `-. o / | o O . .-' ");
420  serial_println(" `-. / . . .-' ");
421  serial_println(" `--. . .--' ");
422  serial_println(" `------------' ");
423 }
void start_up_anim()
Definition: anim.c:21
void busy_wait()
Definition: anim.c:10
void clear_screen()
Definition: anim.c:17
int serial_println(const char *msg)
Definition: serial.c:44