commit d4934df
0uppy
·
2026-07-21 15:41:56 +0000 UTC
parent c2b07b8
cotton v0.2 - eiki is now 6x8, updated eikimaker to be up to date with the eiki update and adjusted the interpreter a bit for eiki
3 files changed,
+783,
-327
+752,
-308
1@@ -1,316 +1,760 @@
2-// I might refactor some of these letters and characters at some point but but for now this should be a-okay :D
3-// Atleast i think these are readable for now so that's good enough x3
4-
5 #ifndef EIKI_H
6 #define EIKI_H
7
8 #include <stdint.h>
9
10-static const uint8_t EIKI_FONT[256][5] = {
11-
12- [' '] = {
13- 0b00000000,
14- 0b00000000,
15- 0b00000000,
16- 0b00000000,
17- 0b00000000,
18- },
19-
20- ['A'] = {
21- 0b00001110,
22- 0b00010001,
23- 0b00011111,
24- 0b00010001,
25- 0b00010001,
26- },
27-
28- ['B'] = {
29- 0b00001111,
30- 0b00010001,
31- 0b00001111,
32- 0b00010001,
33- 0b00001111,
34- },
35-
36- ['C'] = {
37- 0b00011111,
38- 0b00000001,
39- 0b00000001,
40- 0b00000001,
41- 0b00011111,
42- },
43-
44- ['D'] = {
45- 0b00001111,
46- 0b00010001,
47- 0b00010001,
48- 0b00010001,
49- 0b00001111,
50- },
51-
52- ['E'] = {
53- 0b00011111,
54- 0b00000001,
55- 0b00011111,
56- 0b00000001,
57- 0b00011111,
58- },
59-
60- ['F'] = {
61- 0b00011111,
62- 0b00000001,
63- 0b00011111,
64- 0b00000001,
65- 0b00000001,
66- },
67-
68- ['G'] = {
69- 0b00011111,
70- 0b00000001,
71- 0b00011001,
72- 0b00010001,
73- 0b00011111,
74- },
75-
76- ['H'] = {
77- 0b00010001,
78- 0b00010001,
79- 0b00011111,
80- 0b00010001,
81- 0b00010001,
82- },
83-
84- ['I'] = {
85- 0b00011111,
86- 0b00000100,
87- 0b00000100,
88- 0b00000100,
89- 0b00011111,
90- },
91-
92- ['J'] = {
93- 0b00011100,
94- 0b00010000,
95- 0b00010000,
96- 0b00010011,
97- 0b00011110,
98- },
99-
100- ['K'] = {
101- 0b00010001,
102- 0b00011001,
103- 0b00000111,
104- 0b00010001,
105- 0b00010001,
106- },
107-
108- ['L'] = {
109- 0b00000001,
110- 0b00000001,
111- 0b00000001,
112- 0b00010001,
113- 0b00011111,
114- },
115-
116- ['M'] = {
117- 0b00011011,
118- 0b00011111,
119- 0b00010101,
120- 0b00010001,
121- 0b00010001,
122- },
123-
124- ['N'] = {
125- 0b00010001,
126- 0b00010011,
127- 0b00010101,
128- 0b00011001,
129- 0b00010001,
130- },
131-
132- ['O'] = {
133- 0b00011111,
134- 0b00010001,
135- 0b00010001,
136- 0b00010001,
137- 0b00011111,
138- },
139-
140- ['P'] = {
141- 0b00011111,
142- 0b00010001,
143- 0b00011111,
144- 0b00000001,
145- 0b00000001,
146- },
147-
148- ['Q'] = {
149- 0b00011111,
150- 0b00010001,
151- 0b00010001,
152- 0b00011001,
153- 0b00011111,
154- },
155-
156- ['R'] = {
157- 0b00011111,
158- 0b00010001,
159- 0b00011111,
160- 0b00001001,
161- 0b00010001,
162- },
163-
164- ['S'] = {
165- 0b00011111,
166- 0b00000001,
167- 0b00011111,
168- 0b00010000,
169- 0b00011111,
170- },
171-
172- ['T'] = {
173- 0b00011111,
174- 0b00000100,
175- 0b00000100,
176- 0b00000100,
177- 0b00000100,
178- },
179-
180- ['U'] = {
181- 0b00010001,
182- 0b00010001,
183- 0b00010001,
184- 0b00010001,
185- 0b00011111,
186- },
187-
188- ['V'] = {
189- 0b00010001,
190- 0b00010001,
191- 0b00011011,
192- 0b00001010,
193- 0b00000100,
194- },
195-
196- ['W'] = {
197- 0b00010001,
198- 0b00010001,
199- 0b00010101,
200- 0b00011011,
201- 0b00010001,
202- },
203-
204- ['X'] = {
205- 0b00010001,
206- 0b00001010,
207- 0b00000100,
208- 0b00001010,
209- 0b00010001,
210- },
211-
212- ['Y'] = {
213- 0b00010001,
214- 0b00010001,
215- 0b00001010,
216- 0b00000100,
217- 0b00000100,
218- },
219-
220- ['Z'] = {
221- 0b00011111,
222- 0b00010001,
223- 0b00000100,
224- 0b00010010,
225- 0b00011111,
226- },
227-
228- ['0'] = {
229- 0b00001110,
230- 0b00010001,
231- 0b00010001,
232- 0b00010001,
233- 0b00001110,
234- },
235-
236- ['1'] = {
237- 0b00000100,
238- 0b00001100,
239- 0b00000100,
240- 0b00000100,
241- 0b00001110,
242- },
243-
244- ['2'] = {
245- 0b00001110,
246- 0b00010001,
247- 0b00000010,
248- 0b00000100,
249- 0b00011111,
250- },
251-
252- ['3'] = {
253- 0b00011111,
254- 0b00010001,
255- 0b00011100,
256- 0b00010001,
257- 0b00011111,
258- },
259-
260- ['4'] = {
261- 0b00010010,
262- 0b00010010,
263- 0b00011111,
264- 0b00000010,
265- 0b00000010,
266- },
267-
268- ['5'] = {
269- 0b00011111,
270- 0b00010000,
271- 0b00011110,
272- 0b00000001,
273- 0b00011110,
274- },
275-
276- ['6'] = {
277- 0b00001110,
278- 0b00010000,
279- 0b00011110,
280- 0b00010001,
281- 0b00001110,
282- },
283-
284- ['7'] = {
285- 0b00011111,
286- 0b00000001,
287- 0b00000010,
288- 0b00000100,
289- 0b00000100,
290- },
291-
292- ['8'] = {
293- 0b00001110,
294- 0b00010001,
295- 0b00001110,
296- 0b00010001,
297- 0b00001110,
298- },
299-
300- ['9'] = {
301- 0b00001110,
302- 0b00010001,
303- 0b00001111,
304- 0b00000001,
305- 0b00001110,
306- },
307-
308- [':'] = {
309- 0b00000000,
310- 0b00000100,
311- 0b00000000,
312- 0b00000100,
313- 0b00000000,
314- },
315+#define FONT_WIDTH 6
316+#define FONT_HEIGHT 8
317+
318+static const uint8_t EIKI_FONT[256][FONT_HEIGHT] = {
319+
320+[' '] = {
321+ 0b00000000,
322+ 0b00000000,
323+ 0b00000000,
324+ 0b00000000,
325+ 0b00000000,
326+ 0b00000000,
327+ 0b00000000,
328+ 0b00000000,
329+},
330+
331+['A'] = {
332+ 0b00000000,
333+ 0b00011110,
334+ 0b00100001,
335+ 0b00100001,
336+ 0b00111111,
337+ 0b00100001,
338+ 0b00110011,
339+ 0b00000000,
340+},
341+
342+['B'] = {
343+ 0b00000000,
344+ 0b00011110,
345+ 0b00100010,
346+ 0b00011110,
347+ 0b00100010,
348+ 0b00100010,
349+ 0b00011110,
350+ 0b00000000,
351+},
352+
353+['C'] = {
354+ 0b00000000,
355+ 0b00011110,
356+ 0b00100001,
357+ 0b00000001,
358+ 0b00000001,
359+ 0b00100001,
360+ 0b00011110,
361+ 0b00000000,
362+},
363+
364+['D'] = {
365+ 0b00000000,
366+ 0b00011110,
367+ 0b00100010,
368+ 0b00100010,
369+ 0b00100010,
370+ 0b00010010,
371+ 0b00001110,
372+ 0b00000000,
373+},
374+
375+['E'] = {
376+ 0b00000000,
377+ 0b00011111,
378+ 0b00000001,
379+ 0b00000111,
380+ 0b00000001,
381+ 0b00000001,
382+ 0b00011111,
383+ 0b00000000,
384+},
385+
386+['F'] = {
387+ 0b00000000,
388+ 0b00011111,
389+ 0b00000001,
390+ 0b00000111,
391+ 0b00000001,
392+ 0b00000001,
393+ 0b00000001,
394+ 0b00000000,
395+},
396+
397+['G'] = {
398+ 0b00000000,
399+ 0b00011110,
400+ 0b00010001,
401+ 0b00000001,
402+ 0b00011001,
403+ 0b00010001,
404+ 0b00001110,
405+ 0b00000000,
406+},
407+
408+['H'] = {
409+ 0b00000000,
410+ 0b00010010,
411+ 0b00010010,
412+ 0b00011110,
413+ 0b00010010,
414+ 0b00010010,
415+ 0b00010010,
416+ 0b00000000,
417+},
418+
419+['I'] = {
420+ 0b00000000,
421+ 0b00001110,
422+ 0b00000100,
423+ 0b00000100,
424+ 0b00000100,
425+ 0b00000100,
426+ 0b00001110,
427+ 0b00000000,
428+},
429+
430+['J'] = {
431+ 0b00000000,
432+ 0b00011100,
433+ 0b00001000,
434+ 0b00001000,
435+ 0b00001000,
436+ 0b00001001,
437+ 0b00000111,
438+ 0b00000000,
439+},
440+
441+['K'] = {
442+ 0b00000000,
443+ 0b00010010,
444+ 0b00010010,
445+ 0b00001010,
446+ 0b00000110,
447+ 0b00001010,
448+ 0b00010010,
449+ 0b00000000,
450+},
451+
452+['L'] = {
453+ 0b00000000,
454+ 0b00000100,
455+ 0b00000100,
456+ 0b00000100,
457+ 0b00000100,
458+ 0b00100100,
459+ 0b00111100,
460+ 0b00000000,
461+},
462+
463+['M'] = {
464+ 0b00000000,
465+ 0b00100001,
466+ 0b00110011,
467+ 0b00101101,
468+ 0b00100001,
469+ 0b00100001,
470+ 0b00100001,
471+ 0b00000000,
472+},
473+
474+['N'] = {
475+ 0b00000000,
476+ 0b00010010,
477+ 0b00010110,
478+ 0b00011010,
479+ 0b00010010,
480+ 0b00010010,
481+ 0b00010010,
482+ 0b00000000,
483+},
484+
485+['O'] = {
486+ 0b00000000,
487+ 0b00011110,
488+ 0b00100001,
489+ 0b00100001,
490+ 0b00100001,
491+ 0b00100001,
492+ 0b00011110,
493+ 0b00000000,
494+},
495+
496+['P'] = {
497+ 0b00000000,
498+ 0b00011111,
499+ 0b00100001,
500+ 0b00100001,
501+ 0b00011111,
502+ 0b00000001,
503+ 0b00000001,
504+ 0b00000000,
505+},
506+
507+['Q'] = {
508+ 0b00000000,
509+ 0b00011110,
510+ 0b00100001,
511+ 0b00100001,
512+ 0b00101001,
513+ 0b00110001,
514+ 0b00011110,
515+ 0b00000000,
516+},
517+
518+['R'] = {
519+ 0b00000000,
520+ 0b00011110,
521+ 0b00100010,
522+ 0b00100010,
523+ 0b00011110,
524+ 0b00100010,
525+ 0b00100010,
526+ 0b00000000,
527+},
528+
529+['S'] = {
530+ 0b00000000,
531+ 0b00001110,
532+ 0b00010001,
533+ 0b00000110,
534+ 0b00001000,
535+ 0b00010001,
536+ 0b00001110,
537+ 0b00000000,
538+},
539+
540+['T'] = {
541+ 0b00000000,
542+ 0b00111111,
543+ 0b00000100,
544+ 0b00000100,
545+ 0b00000100,
546+ 0b00000100,
547+ 0b00001110,
548+ 0b00000000,
549+},
550+
551+['U'] = {
552+ 0b00000000,
553+ 0b00100001,
554+ 0b00100001,
555+ 0b00100001,
556+ 0b00100001,
557+ 0b00100001,
558+ 0b00011110,
559+ 0b00000000,
560+},
561+
562+['V'] = {
563+ 0b00000000,
564+ 0b00100001,
565+ 0b00100001,
566+ 0b00010010,
567+ 0b00010010,
568+ 0b00001100,
569+ 0b00000100,
570+ 0b00000000,
571+},
572+
573+['W'] = {
574+ 0b00000000,
575+ 0b00100001,
576+ 0b00100001,
577+ 0b00100001,
578+ 0b00101101,
579+ 0b00110011,
580+ 0b00100001,
581+ 0b00000000,
582+},
583+
584+['X'] = {
585+ 0b00000000,
586+ 0b00100001,
587+ 0b00100001,
588+ 0b00010010,
589+ 0b00001100,
590+ 0b00010010,
591+ 0b00100001,
592+ 0b00000000,
593+},
594+
595+['Y'] = {
596+ 0b00000000,
597+ 0b00100001,
598+ 0b00100001,
599+ 0b00010010,
600+ 0b00001100,
601+ 0b00001100,
602+ 0b00001100,
603+ 0b00000000,
604+},
605+
606+['Z'] = {
607+ 0b00000000,
608+ 0b00111111,
609+ 0b00010000,
610+ 0b00001000,
611+ 0b00000100,
612+ 0b00000010,
613+ 0b00111111,
614+ 0b00000000,
615+},
616+
617+['a'] = {
618+ 0b00000000,
619+ 0b00000000,
620+ 0b00001110,
621+ 0b00010000,
622+ 0b00011110,
623+ 0b00010010,
624+ 0b00011110,
625+ 0b00000000,
626+},
627+
628+['b'] = {
629+ 0b00000000,
630+ 0b00000010,
631+ 0b00000010,
632+ 0b00011110,
633+ 0b00010010,
634+ 0b00010010,
635+ 0b00011110,
636+ 0b00000000,
637+},
638+
639+['c'] = {
640+ 0b00000000,
641+ 0b00000000,
642+ 0b00011110,
643+ 0b00000001,
644+ 0b00000001,
645+ 0b00000001,
646+ 0b00011110,
647+ 0b00000000,
648+},
649+
650+['d'] = {
651+ 0b00000000,
652+ 0b00010000,
653+ 0b00010000,
654+ 0b00011110,
655+ 0b00010010,
656+ 0b00010010,
657+ 0b00011110,
658+ 0b00000000,
659+},
660+
661+['e'] = {
662+ 0b00000000,
663+ 0b00000000,
664+ 0b00011110,
665+ 0b00010001,
666+ 0b00111111,
667+ 0b00000001,
668+ 0b00011110,
669+ 0b00000000,
670+},
671+
672+['f'] = {
673+ 0b00011000,
674+ 0b00000100,
675+ 0b00111110,
676+ 0b00000100,
677+ 0b00000100,
678+ 0b00000100,
679+ 0b00000100,
680+ 0b00000000,
681+},
682+
683+['g'] = {
684+ 0b00000000,
685+ 0b00000000,
686+ 0b00011110,
687+ 0b00010010,
688+ 0b00011110,
689+ 0b00010000,
690+ 0b00010000,
691+ 0b00001110,
692+},
693+
694+['h'] = {
695+ 0b00000000,
696+ 0b00000010,
697+ 0b00000010,
698+ 0b00011110,
699+ 0b00010010,
700+ 0b00010010,
701+ 0b00010010,
702+ 0b00000000,
703+},
704+
705+['i'] = {
706+ 0b00000000,
707+ 0b00000100,
708+ 0b00000000,
709+ 0b00000100,
710+ 0b00000100,
711+ 0b00000100,
712+ 0b00001100,
713+ 0b00000000,
714+},
715+
716+['j'] = {
717+ 0b00001000,
718+ 0b00000000,
719+ 0b00001000,
720+ 0b00001000,
721+ 0b00001000,
722+ 0b00001000,
723+ 0b00001000,
724+ 0b00001110,
725+},
726+
727+['k'] = {
728+ 0b00000001,
729+ 0b00000001,
730+ 0b00001001,
731+ 0b00000101,
732+ 0b00000011,
733+ 0b00000101,
734+ 0b00001001,
735+ 0b00000000,
736+},
737+
738+['l'] = {
739+ 0b00000000,
740+ 0b00000100,
741+ 0b00000100,
742+ 0b00000100,
743+ 0b00000100,
744+ 0b00000100,
745+ 0b00000100,
746+ 0b00000000,
747+},
748+
749+['m'] = {
750+ 0b00000000,
751+ 0b00000000,
752+ 0b00110110,
753+ 0b00101010,
754+ 0b00101010,
755+ 0b00101010,
756+ 0b00101010,
757+ 0b00000000,
758+},
759+
760+['n'] = {
761+ 0b00000000,
762+ 0b00000000,
763+ 0b00011110,
764+ 0b00010010,
765+ 0b00010010,
766+ 0b00010010,
767+ 0b00010010,
768+ 0b00000000,
769+},
770+
771+['o'] = {
772+ 0b00000000,
773+ 0b00000000,
774+ 0b00000000,
775+ 0b00001110,
776+ 0b00010001,
777+ 0b00010001,
778+ 0b00001110,
779+ 0b00000000,
780+},
781+
782+['p'] = {
783+ 0b00000000,
784+ 0b00000000,
785+ 0b00011110,
786+ 0b00010010,
787+ 0b00011110,
788+ 0b00000010,
789+ 0b00000010,
790+ 0b00000010,
791+},
792+
793+['q'] = {
794+ 0b00000000,
795+ 0b00000000,
796+ 0b00011110,
797+ 0b00010010,
798+ 0b00011110,
799+ 0b00010000,
800+ 0b00010000,
801+ 0b00000000,
802+},
803+
804+['r'] = {
805+ 0b00000000,
806+ 0b00000000,
807+ 0b00001110,
808+ 0b00000010,
809+ 0b00000010,
810+ 0b00000010,
811+ 0b00000010,
812+ 0b00000000,
813+},
814+
815+['s'] = {
816+ 0b00000000,
817+ 0b00000000,
818+ 0b00011110,
819+ 0b00000001,
820+ 0b00011110,
821+ 0b00100000,
822+ 0b00011110,
823+ 0b00000000,
824+},
825+
826+['t'] = {
827+ 0b00001000,
828+ 0b00001000,
829+ 0b00111110,
830+ 0b00001000,
831+ 0b00001000,
832+ 0b00001000,
833+ 0b00010000,
834+ 0b00000000,
835+},
836+
837+['u'] = {
838+ 0b00000000,
839+ 0b00000000,
840+ 0b00010001,
841+ 0b00010001,
842+ 0b00010001,
843+ 0b00010001,
844+ 0b00011110,
845+ 0b00000000,
846+},
847+
848+['v'] = {
849+ 0b00000000,
850+ 0b00000000,
851+ 0b00010001,
852+ 0b00010001,
853+ 0b00001010,
854+ 0b00001010,
855+ 0b00000100,
856+ 0b00000000,
857+},
858+
859+['w'] = {
860+ 0b00000000,
861+ 0b00000000,
862+ 0b00010001,
863+ 0b00010001,
864+ 0b00010101,
865+ 0b00010101,
866+ 0b00001010,
867+ 0b00000000,
868+},
869+
870+['x'] = {
871+ 0b00000000,
872+ 0b00000000,
873+ 0b00010001,
874+ 0b00001010,
875+ 0b00000100,
876+ 0b00001010,
877+ 0b00010001,
878+ 0b00000000,
879+},
880+
881+['y'] = {
882+ 0b00000000,
883+ 0b00000000,
884+ 0b00010001,
885+ 0b00010001,
886+ 0b00011110,
887+ 0b00100000,
888+ 0b00011110,
889+ 0b00000000,
890+},
891+
892+['z'] = {
893+ 0b00000000,
894+ 0b00000000,
895+ 0b00111111,
896+ 0b00010000,
897+ 0b00001000,
898+ 0b00000100,
899+ 0b00111111,
900+ 0b00000000,
901+},
902+
903+['0'] = {
904+ 0b00000000,
905+ 0b00011110,
906+ 0b00100001,
907+ 0b00100001,
908+ 0b00100001,
909+ 0b00100001,
910+ 0b00011110,
911+ 0b00000000,
912+},
913+
914+['1'] = {
915+ 0b00000000,
916+ 0b00001100,
917+ 0b00001000,
918+ 0b00001000,
919+ 0b00001000,
920+ 0b00001000,
921+ 0b00111110,
922+ 0b00000000,
923+},
924+
925+['2'] = {
926+ 0b00000000,
927+ 0b00011110,
928+ 0b00100000,
929+ 0b00011000,
930+ 0b00000100,
931+ 0b00000010,
932+ 0b00111110,
933+ 0b00000000,
934+},
935+
936+['3'] = {
937+ 0b00000000,
938+ 0b00111111,
939+ 0b00100000,
940+ 0b00011110,
941+ 0b00100000,
942+ 0b00100000,
943+ 0b00111111,
944+ 0b00000000,
945+},
946+
947+['4'] = {
948+ 0b00000000,
949+ 0b00010001,
950+ 0b00010001,
951+ 0b00111111,
952+ 0b00010000,
953+ 0b00010000,
954+ 0b00010000,
955+ 0b00000000,
956+},
957+
958+['5'] = {
959+ 0b00000000,
960+ 0b00111111,
961+ 0b00000001,
962+ 0b00011111,
963+ 0b00100000,
964+ 0b00100000,
965+ 0b00011111,
966+ 0b00000000,
967+},
968+
969+['6'] = {
970+ 0b00000000,
971+ 0b00011110,
972+ 0b00000001,
973+ 0b00011111,
974+ 0b00100001,
975+ 0b00100001,
976+ 0b00011110,
977+ 0b00000000,
978+},
979+
980+['7'] = {
981+ 0b00000000,
982+ 0b00111111,
983+ 0b00100000,
984+ 0b00010000,
985+ 0b00001000,
986+ 0b00001000,
987+ 0b00001000,
988+ 0b00000000,
989+},
990+
991+['8'] = {
992+ 0b00000000,
993+ 0b00011110,
994+ 0b00100001,
995+ 0b00011110,
996+ 0b00100001,
997+ 0b00100001,
998+ 0b00011110,
999+ 0b00000000,
1000+},
1001+
1002+['9'] = {
1003+ 0b00000000,
1004+ 0b00011110,
1005+ 0b00100001,
1006+ 0b00111110,
1007+ 0b00100000,
1008+ 0b00100000,
1009+ 0b00011110,
1010+ 0b00000000,
1011+},
1012+
1013+['?'] = {
1014+ 0b00000000,
1015+ 0b00011110,
1016+ 0b00100001,
1017+ 0b00010000,
1018+ 0b00001000,
1019+ 0b00000000,
1020+ 0b00001000,
1021+ 0b00000000,
1022+},
1023+
1024+['!'] = {
1025+ 0b00000000,
1026+ 0b00001100,
1027+ 0b00001100,
1028+ 0b00000100,
1029+ 0b00000100,
1030+ 0b00000000,
1031+ 0b00000100,
1032+ 0b00000000,
1033+},
1034+
1035+[':'] = {
1036+ 0b00000000,
1037+ 0b00001100,
1038+ 0b00001100,
1039+ 0b00000000,
1040+ 0b00001100,
1041+ 0b00001100,
1042+ 0b00000000,
1043+ 0b00000000,
1044+},
1045+
1046+[';'] = {
1047+ 0b00000000,
1048+ 0b00001100,
1049+ 0b00001100,
1050+ 0b00000000,
1051+ 0b00001100,
1052+ 0b00001100,
1053+ 0b00001000,
1054+ 0b00000000,
1055+},
1056+
1057+['.'] = {
1058+ 0b00000000,
1059+ 0b00000000,
1060+ 0b00000000,
1061+ 0b00000000,
1062+ 0b00000000,
1063+ 0b00001100,
1064+ 0b00001100,
1065+ 0b00000000,
1066+},
1067
1068 };
1069
+10,
-13
1@@ -64,11 +64,11 @@ static void draw_pixel(Cotton *cotton, int x, int y, uint32_t color)
2
3 static void draw_char(Cotton *cotton, char c, int x, int y)
4 {
5- for (int row = 0; row < 5; row++)
6+ for (int row = 0; row < FONT_HEIGHT; row++)
7 {
8 uint8_t bits = EIKI_FONT[(uint8_t)c][row];
9
10- for (int col = 0; col < 5; col++)
11+ for (int col = 0; col < FONT_WIDTH; col++)
12 {
13
14 if (bits & (1 << col))
15@@ -86,8 +86,8 @@ static void draw_char(Cotton *cotton, char c, int x, int y)
16 static void cmd_print(Cotton *cotton, CottonWindow *cw, char *arg)
17 {
18 (void)cw;
19-
20- if (!arg)
21+
22+ if (!arg)
23 return;
24
25 char *text = strip_quotes(arg);
26@@ -96,28 +96,25 @@ static void cmd_print(Cotton *cotton, CottonWindow *cw, char *arg)
27
28 for (int i = 0; text[i] != '\0'; i++)
29 {
30- // when the limit of a line is reached we go down one line,, pmo when it just gluedtogehterlikethisacrosslinesaaaaaa
31 if (text[i] == '\n')
32 {
33 cotton->cursor_x = 0;
34- cotton->cursor_y += 6;
35+ cotton->cursor_y += FONT_HEIGHT + 4;
36 continue;
37 }
38
39 draw_char(cotton, text[i], cotton->cursor_x, cotton->cursor_y);
40- cotton->cursor_x += 6;
41-
42- // those who wrap
43- if (cotton->cursor_x + 6 >= VIDEO_WIDTH)
44+ cotton->cursor_x += FONT_WIDTH + 2;
45+
46+ if (cotton->cursor_x + FONT_WIDTH + 2 >= VIDEO_WIDTH)
47 {
48 cotton->cursor_x = 0;
49- cotton->cursor_y += 6;
50+ cotton->cursor_y += FONT_HEIGHT + 4;
51 }
52 }
53
54 cotton->cursor_x = 0;
55- cotton->cursor_y += 6;
56-
57+ cotton->cursor_y += FONT_HEIGHT + 4;
58 }
59
60 static void cmd_wait(Cotton *cotton, char *arg)
+21,
-6
1@@ -3,6 +3,7 @@ package main
2
3 import (
4 "fmt"
5+ "os"
6 )
7
8 func main() {
9@@ -12,29 +13,43 @@ func main() {
10 var ch string
11 fmt.Scanln(&ch)
12
13+ file, err := os.OpenFile("eikis.txt", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
14+
15+ if err != nil {
16+ fmt.Println("couldn't open eikis.txt :(")
17+ return
18+ }
19+
20+ defer file.Close()
21+
22 fmt.Println("type a # for a pixel and a . for an empty spot")
23
24- rows := make([]string, 5)
25+ rows := make([]string, 8)
26
27- for i := 0; i < 5; i++ {
28+ for i := 0; i < 8; i++ {
29 fmt.Printf("%d: ", i)
30 fmt.Scanln(&rows[i])
31 }
32
33- fmt.Println()
34- fmt.Printf("['%s'] = {\n", ch)
35+ fmt.Fprintln(file)
36+ fmt.Fprintf(file, "['%s'] = {\n", ch)
37
38 for _, row := range rows {
39 var value uint8
40
41 for i, pixel := range row {
42+ if i >= 6 {
43+ break
44+ }
45+
46 if pixel == '#' {
47 value |= 1 << i
48 }
49 }
50
51- fmt.Printf(" 0b%08b,\n", value)
52+ fmt.Fprintf(file, " 0b%08b,\n", value)
53 }
54
55- fmt.Println("},")
56+ fmt.Fprintln(file, "},")
57+
58 }