Modestus Moon OS  R4
CS 450 project
anim.c File Reference
#include <core/serial.h>
Include dependency graph for anim.c:

Go to the source code of this file.

Functions

void busy_wait ()
 
void clear_screen ()
 
void start_up_anim ()
 

Function Documentation

void busy_wait ( void  )

RE-WRITE THIS SO THAT IS IS MORE EFFICIENT RUNNING 9999999 ASM CALLS TO WAIT IS DUMB INTERRUPTS OR CHECK TIME WOULD BE BETTER

Definition at line 10 of file anim.c.

Referenced by start_up_anim().

10  {
11  int i = 0;
12  for (; i < 9999999; i++) {
13  asm volatile("nop");
14  }
15 }
void clear_screen ( void  )

Definition at line 17 of file anim.c.

References serial_println().

Referenced by start_up_anim().

17  {
18  serial_println("\033[2J");
19 }
int serial_println(const char *msg)
Definition: serial.c:44
void start_up_anim ( void  )

Definition at line 21 of file anim.c.

References busy_wait(), clear_screen(), and serial_println().

Referenced by kmain().

21  {
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 busy_wait()
Definition: anim.c:10
void clear_screen()
Definition: anim.c:17
int serial_println(const char *msg)
Definition: serial.c:44