diff --git a/boot/boot12.asm b/boot/boot12.asm index 550d4ed..a3afdc3 100755 --- a/boot/boot12.asm +++ b/boot/boot12.asm @@ -1,3 +1,7 @@ +;/*******************************************************************************/ +;/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +;/* */ + [BITS 16] [ORG 0x7C00] diff --git a/boot/echs.h b/boot/echs.h index 7309f47..636e918 100755 --- a/boot/echs.h +++ b/boot/echs.h @@ -1,3 +1,6 @@ +;/*******************************************************************************/ +;/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +;/* */ struc echs Sizes resb 1 Reserve resb 1 diff --git a/boot/elf.h b/boot/elf.h index bfb892f..ce7b557 100755 --- a/boot/elf.h +++ b/boot/elf.h @@ -1,3 +1,6 @@ +;/*******************************************************************************/ +;/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +;/* */ struc ELFheader .Magic resb 1;"0x7F" .MagicStr resb 3;"ELF" diff --git a/boot/loader.asm b/boot/loader.asm index 35c8fdf..51b7d8e 100755 --- a/boot/loader.asm +++ b/boot/loader.asm @@ -1,3 +1,6 @@ +;/*******************************************************************************/ +;/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +;/* */ [BITS 16] [ORG 0x0] diff --git a/include/2d.h b/include/2d.h index 235988f..2d04380 100755 --- a/include/2d.h +++ b/include/2d.h @@ -1,3 +1,6 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ #include "types.h" typedef struct vertex2d{ diff --git a/include/3d.h b/include/3d.h index 8e71fd1..2459906 100755 --- a/include/3d.h +++ b/include/3d.h @@ -1 +1,4 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ #include "types.h" diff --git a/include/asm.h b/include/asm.h index ec0a920..aabe01e 100755 --- a/include/asm.h +++ b/include/asm.h @@ -1,3 +1,6 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ #include "types.h" /******************************************************************************/ @@ -80,7 +83,5 @@ _v; \ } - - - +/******************************************************************************/ diff --git a/include/cpu.h b/include/cpu.h index ba85cec..fb75fc3 100755 --- a/include/cpu.h +++ b/include/cpu.h @@ -1,3 +1,6 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ typedef struct cpuinfo { u8 vendor[13]; diff --git a/include/cpuid.h b/include/cpuid.h index 0ecc299..8d0fdf9 100755 --- a/include/cpuid.h +++ b/include/cpuid.h @@ -1,6 +1,8 @@ - +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ bool cansetflag (u32 flag); void cpuid(u32 op, u32 *eax, u32 *ebx,u32 *ecx, u32 *edx); -void dump_regs(); +void dump_regs(void); diff --git a/include/interrupts.h b/include/interrupts.h index a5c8497..0b28e20 100755 --- a/include/interrupts.h +++ b/include/interrupts.h @@ -1,3 +1,6 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ #include "types.h" #define PIC1_CMD 0x20 /*PIC 8259A Commandes n°1 */ diff --git a/include/keyboard.h b/include/keyboard.h index 9a9cd6a..8c0928c 100755 --- a/include/keyboard.h +++ b/include/keyboard.h @@ -1,3 +1,6 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ #define SCAN_CTRL 0x1D #define SCAN_LEFTSHIFT 0x2A #define SCAN_RIGHTSHIFT 0x36 @@ -28,8 +31,8 @@ #define STATUS_NUM 0x2000 #define STATUS_SCRL 0x4000 -void keyboard(); -void reboot(); +void keyboard(void); +void reboot(void); void outkbd(u8 port, u8 data); -u8 waitascii(); +u8 waitascii(void); u8* getstring(u8* temp); diff --git a/include/math.h b/include/math.h index 7ee9f78..d61f8f5 100755 --- a/include/math.h +++ b/include/math.h @@ -1,9 +1,12 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ #define sgn(x) ((x<0)?-1:((x>0)?1:0)); u32 abs(int x); random(u32 lower, u32 upper); -u32 rand(); -void randomize(); +u32 rand(void); +void randomize(void); u8 log2(u32 n); u8 log10(u32 n); unsigned long long __udivdi3 (unsigned long long num, unsigned long long den); diff --git a/include/memory.h b/include/memory.h index c766129..c4ea666 100755 --- a/include/memory.h +++ b/include/memory.h @@ -1,3 +1,6 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ #include "types.h" void memset(void *dst, u8 val, u32 count,u32 size); diff --git a/include/mouse.h b/include/mouse.h index 14487af..6e5271c 100755 --- a/include/mouse.h +++ b/include/mouse.h @@ -1,4 +1,7 @@ -bool initmouse(); -void mouse(); +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ +bool initmouse(void); +void mouse(void); void outmseack(u8 value); void outmsecmd(u8 command); diff --git a/include/multiboot2.h b/include/multiboot2.h index 1b07850..c0b13d6 100644 --- a/include/multiboot2.h +++ b/include/multiboot2.h @@ -1,3 +1,6 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ #include "types.h" /* How many bytes from the start of the file we search for the header. */ diff --git a/include/shell.h b/include/shell.h index 45f23e1..2e1db08 100644 --- a/include/shell.h +++ b/include/shell.h @@ -1,3 +1,6 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ typedef struct command { u8 name[64]; diff --git a/include/stdarg.h b/include/stdarg.h index 6e44647..6335190 100755 --- a/include/stdarg.h +++ b/include/stdarg.h @@ -1,3 +1,6 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ #ifndef _VA_LIST_T_H #define _VA_LIST_T_H diff --git a/include/string.h b/include/string.h index 2225a39..d83aa7a 100755 --- a/include/string.h +++ b/include/string.h @@ -1,3 +1,6 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ #include "types.h" s8 strcmp(const u8 *src,const u8 *des); diff --git a/include/syscall.h b/include/syscall.h index b9fbf89..04f53ae 100644 --- a/include/syscall.h +++ b/include/syscall.h @@ -1,2 +1,5 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ void initsyscall(void); void sysenter_handler(void); diff --git a/include/timer.h b/include/timer.h index 6ac62ae..6f0722e 100755 --- a/include/timer.h +++ b/include/timer.h @@ -1 +1,4 @@ -void timer(); +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ +void timer(void); diff --git a/include/types.h b/include/types.h index da8656f..8c64667 100755 --- a/include/types.h +++ b/include/types.h @@ -1,7 +1,9 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ #ifndef ALLTYPES # define ALLTYPES - typedef char int8; typedef short int16; typedef int int32; diff --git a/include/vga.h b/include/vga.h index 31b4754..7c496cd 100755 --- a/include/vga.h +++ b/include/vga.h @@ -1,3 +1,6 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ #include "types.h" #define TEXTSCREEN 0xB8000 /* debut de la memoire video texte*/ @@ -10,14 +13,14 @@ u32 setvmode(u8); u32 loadfont(u8* def,u8 size,u8 font); void gotoscr(u16 x,u16 y); void useplane(u8 plan); -u8 getfont(); +u8 getfont(void); void setfont(u8 num); -void waitvretrace (); -void waithretrace (); -void enablecursor (); -void disablecursor (); -void enablescroll (); -void disablescroll (); +void waitvretrace(void); +void waithretrace(void); +void enablecursor(void); +void disablecursor(void); +void enablescroll(void); +void disablescroll(void); void (*writepxl)(u16 x, u16 y, u32 c); void (*showchar)(u16 coordx,u16 coordy,u8 thechar,u8 attrib); void (*fill)(u8 attrib); @@ -26,18 +29,18 @@ void split(u16 x); void showpage(u8 page); u8 getpage(); void setpage(u8 page); -u16 getnbpages(); -u16 getyres(); -u8 getdepth(); -u16 getxres(); -u8 getfont2(); -void enableblink(); -void disableblink(); +u16 getnbpages(void); +u16 getyres(void); +u8 getdepth(void); +u16 getxres(void); +u8 getfont2(void); +void enableblink(void); +void disableblink(void); u8 (*getchar)(u16 coordx,u16 coordy); u8 (*getattrib)(u16 coordx,u16 coordy); void outreg(u16 port,u8 *src,u16 num); void outregsame(u16 port,u8 *src,u16 num); void inreg(u16 port,u8 *src,u16 num); void inregsame(u16 port,u8 *src,u16 num); -u8 nextvmode(); -u8 getvmode(); +u8 nextvmode(void); +u8 getvmode(void); diff --git a/include/video.h b/include/video.h index fa1d968..7ed3ada 100755 --- a/include/video.h +++ b/include/video.h @@ -1,4 +1,6 @@ - +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ typedef struct console { u8 attrib; s16 cursX; diff --git a/lib/2d.c b/lib/2d.c index 8bd43ab..0d83531 100755 --- a/lib/2d.c +++ b/lib/2d.c @@ -1,3 +1,6 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ #include "types.h" #include "vga.h" #include "video.h" @@ -5,7 +8,6 @@ #include "math.h" /******************************************************************************/ - /* Affiche une ligne entre les points spécifiés */ void linev(vertex2d * A, vertex2d * B, u8 color) @@ -56,7 +58,6 @@ void line(u32 x1, u32 y1, u32 x2, u32 y2, u8 color) } /******************************************************************************/ - /* Affiche une ligne horizontale entre les points spécifiés */ void hline(u32 x1, u32 x2, u32 y, u8 color) @@ -70,7 +71,6 @@ void hline(u32 x1, u32 x2, u32 y, u8 color) } /******************************************************************************/ - /* Affiche un triangle rempli entre les points spécifiés */ void trianglefilled(vertex2d * AA, vertex2d * BB, vertex2d * CC, u8 color) @@ -143,7 +143,6 @@ void swapvertex(vertex2d * A, vertex2d * B) } /******************************************************************************/ - /* Affiche un triangle entre les points spécifiés */ void triangle(vertex2d * AA, vertex2d * BB, vertex2d * CC, u8 color) diff --git a/lib/3d.c b/lib/3d.c index b00ae66..55940a7 100755 --- a/lib/3d.c +++ b/lib/3d.c @@ -1,6 +1,9 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ #include "3d.h" -#include "2d.h" -#include "vga.h" -#include "types.h" -#include "video.h" - +#include "2d.h" +#include "vga.h" +#include "types.h" +#include "video.h" + diff --git a/lib/VGA/8x16fnt.c b/lib/VGA/8x16fnt.c index 4ecf372..b46214e 100755 --- a/lib/VGA/8x16fnt.c +++ b/lib/VGA/8x16fnt.c @@ -1,279 +1,539 @@ -/* Police de caractère fine 8x16 */ -static u8 font8x16[4096] = - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x81, 0xA5, 0x81, 0x81, 0xBD, 0x99, 0x81, 0x7E, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xFF, 0xDB, 0xFF, 0xFF, 0xC3, 0xE7, 0xFF, -0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x7F, 0x7F, 0x7F, 0x7F, 0x3E, -0x1C, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1C, 0x3E, 0x7F, 0x3E, -0x1C, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, 0x3C, 0xE7, 0xE7, -0xE7, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, 0x7E, 0xFF, -0xFF, 0x7E, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x18, 0x3C, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, -0xFF, 0xE7, 0xC3, 0xC3, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x3C, 0x66, 0x42, 0x42, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, -0xFF, 0xFF, 0xC3, 0x99, 0xBD, 0xBD, 0x99, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, -0x00, 0x0F, 0x07, 0x0D, 0x19, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x3F, 0x33, 0x3F, 0x30, 0x30, 0x30, 0x70, 0xF0, 0xE0, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x7F, 0x63, 0x7F, 0x63, 0x63, 0x63, 0x67, 0xE7, 0xE6, 0xC0, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0xDB, 0x3C, 0xE7, 0x3C, 0xDB, 0x18, 0x18, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x70, 0x7C, 0x7F, 0x7C, 0x70, 0x60, 0x40, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x1F, 0x7F, 0x1F, 0x07, 0x03, -0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, 0x7E, -0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, -0x00, 0x33, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xDB, 0xDB, 0xDB, 0x7B, -0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x63, 0x30, 0x1C, 0x36, -0x63, 0x63, 0x36, 0x1C, 0x06, 0x63, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x7F, 0x7F, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, -0x7E, 0x18, 0x18, 0x18, 0x7E, 0x3C, 0x18, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, -0x3C, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x0C, 0x06, 0x7F, 0x06, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x30, 0x7F, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x60, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x66, 0xFF, 0x66, 0x24, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1C, 0x1C, 0x3E, 0x3E, 0x7F, 0x7F, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x3E, 0x3E, 0x1C, 0x1C, 0x08, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, -0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x24, 0x24, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0xFF, 0x42, 0x42, -0x42, 0xFF, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x7E, 0x90, 0x90, 0x90, -0x7C, 0x12, 0x12, 0x12, 0xFC, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x91, 0x92, -0x64, 0x08, 0x10, 0x26, 0x49, 0x89, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x88, 0x88, -0x88, 0x50, 0x60, 0x91, 0x8A, 0x84, 0x4A, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, -0x10, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, -0x18, 0x20, 0x40, 0x40, 0x40, 0x40, 0x40, 0x20, 0x18, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, -0x60, 0x18, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x18, 0x60, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x10, 0x92, 0x54, 0x38, 0xFE, 0x38, 0x54, 0x92, 0x10, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0xFE, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x10, -0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, -0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, -0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x83, 0x85, 0x89, 0x91, 0xA1, 0xC1, -0x81, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x30, 0x50, 0x10, 0x10, 0x10, 0x10, -0x10, 0x10, 0x10, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x81, 0x01, 0x02, 0x3C, -0x40, 0x80, 0x80, 0x80, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x81, 0x01, 0x02, -0x3C, 0x02, 0x01, 0x81, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x0A, 0x12, -0x22, 0x42, 0x82, 0xFF, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x80, 0x80, -0x80, 0xFC, 0x02, 0x01, 0x01, 0x81, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, -0x81, 0x80, 0xBC, 0xC2, 0x81, 0x81, 0x81, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, -0x81, 0x01, 0x02, 0x04, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, -0x3C, 0x42, 0x81, 0x81, 0x42, 0x3C, 0x42, 0x81, 0x81, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x3C, 0x42, 0x81, 0x81, 0x43, 0x3D, 0x01, 0x01, 0x81, 0x42, 0x3C, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x10, -0x20, 0x00, 0x00, 0x00, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, -0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0x82, 0x04, 0x08, 0x10, 0x10, -0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x81, 0x99, 0xA5, 0xA5, 0xA5, -0x9E, 0x80, 0x41, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x24, 0x42, 0x81, 0x81, 0xFF, -0x81, 0x81, 0x81, 0x81, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x42, 0x41, 0x41, 0x42, -0x7C, 0x42, 0x41, 0x41, 0x42, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x81, 0x81, -0x80, 0x80, 0x80, 0x80, 0x81, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x42, 0x41, -0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x42, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x80, -0x80, 0x80, 0x80, 0xFC, 0x80, 0x80, 0x80, 0x80, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, -0x80, 0x80, 0x80, 0x80, 0xFC, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, -0x3C, 0x42, 0x81, 0x81, 0x80, 0x9F, 0x81, 0x81, 0x81, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x81, 0x81, 0x81, 0x81, 0x81, 0xFF, 0x81, 0x81, 0x81, 0x81, 0x81, 0x00, 0x00, 0x00, -0x00, 0x00, 0x38, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x38, 0x00, 0x00, -0x00, 0x00, 0x00, 0x07, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x82, 0x82, 0x44, 0x38, 0x00, -0x00, 0x00, 0x00, 0x00, 0x81, 0x82, 0x84, 0x88, 0x90, 0xE0, 0x90, 0x88, 0x84, 0x82, 0x81, -0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, -0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0xC3, 0xA5, 0x99, 0x99, 0x81, 0x81, 0x81, 0x81, -0x81, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0xC1, 0xA1, 0x91, 0x89, 0x85, 0x83, 0x81, -0x81, 0x81, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x81, 0x81, 0x81, 0x81, 0x81, -0x81, 0x81, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x82, 0x81, 0x81, 0x82, 0xFC, -0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x81, 0x81, 0x81, -0x81, 0x81, 0x89, 0x85, 0x42, 0x3D, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x82, 0x81, 0x81, -0x82, 0xFC, 0x90, 0x88, 0x84, 0x82, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x81, -0x80, 0x40, 0x3C, 0x02, 0x01, 0x81, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x92, -0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, -0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, -0x81, 0x81, 0x81, 0x81, 0x81, 0x42, 0x42, 0x24, 0x24, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x99, 0x99, 0xA5, 0xA5, 0x42, 0x00, 0x00, 0x00, -0x00, 0x00, 0x81, 0x81, 0x81, 0x42, 0x24, 0x18, 0x24, 0x42, 0x81, 0x81, 0x81, 0x00, 0x00, -0x00, 0x00, 0x00, 0x82, 0x82, 0x82, 0x82, 0x44, 0x28, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, -0x00, 0x00, 0x00, 0x00, 0xFF, 0x01, 0x01, 0x02, 0x04, 0x18, 0x20, 0x40, 0x80, 0x80, 0xFF, -0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, -0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, -0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, -0x02, 0x02, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x24, 0x42, 0x81, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x08, 0x04, 0x02, 0x01, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x7C, 0x02, 0x02, 0x7E, 0x82, 0x82, 0x7D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, -0x80, 0xBC, 0xC2, 0x81, 0x81, 0x81, 0xC2, 0xBC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x3C, 0x42, 0x80, 0x80, 0x80, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -0x01, 0x01, 0x01, 0x3D, 0x43, 0x81, 0x81, 0x81, 0x43, 0x3D, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x81, 0xFF, 0x80, 0x40, 0x3E, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x0E, 0x11, 0x10, 0x10, 0xFE, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3D, 0x43, 0x81, 0x81, 0x43, 0x3D, 0x01, 0x02, 0x7C, -0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0xBC, 0xC2, 0x81, 0x81, 0x81, 0x81, 0x81, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x38, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3E, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x06, 0x02, 0x02, 0x02, 0x02, 0x02, -0x82, 0x44, 0x38, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x82, 0x84, 0x88, 0x90, 0xA8, -0xC4, 0x82, 0x00, 0x00, 0x00, 0x00, 0x38, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, -0x08, 0x08, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEC, 0x92, 0x92, -0x92, 0x92, 0x92, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB8, 0xC4, -0x82, 0x82, 0x82, 0x82, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, -0x42, 0x81, 0x81, 0x81, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0xBC, 0xC2, 0x81, 0x81, 0x81, 0xC2, 0xBC, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x3D, 0x43, 0x81, 0x81, 0x81, 0x43, 0x3D, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0xBE, 0xC1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x7E, 0x81, 0x80, 0x7E, 0x01, 0x81, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x10, -0x10, 0x10, 0x10, 0x10, 0xFE, 0x10, 0x10, 0x10, 0x10, 0x11, 0x0E, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x81, 0x81, 0x81, 0x81, 0x43, 0x3D, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x81, 0x81, 0x81, 0x42, 0x24, 0x18, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x82, 0x92, 0x92, 0x92, 0xAA, 0x44, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x42, 0x24, 0x18, 0x24, 0x42, 0x81, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x81, 0x81, 0x81, 0x43, 0x3D, -0x01, 0x02, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x02, 0x04, 0x18, 0x20, -0x40, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x10, 0x10, 0x10, 0x20, 0x10, 0x10, -0x10, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x10, -0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x20, 0x10, 0x10, 0x10, 0x08, -0x10, 0x10, 0x10, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x99, 0x0E, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, -0x1C, 0x36, 0x63, 0x63, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x33, -0x61, 0x60, 0x60, 0x61, 0x33, 0x1E, 0x06, 0x03, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, -0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, -0x0C, 0x18, 0x00, 0x3E, 0x63, 0x7F, 0x60, 0x63, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x08, 0x1C, 0x36, 0x00, 0x3C, 0x06, 0x3E, 0x66, 0x66, 0x3B, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x66, 0x66, 0x00, 0x3C, 0x06, 0x3E, 0x66, 0x66, 0x3B, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x30, 0x18, 0x0C, 0x00, 0x3C, 0x06, 0x3E, 0x66, 0x66, 0x3B, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x1C, 0x36, 0x1C, 0x00, 0x3C, 0x06, 0x3E, 0x66, 0x66, 0x3B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0x60, 0x66, 0x3C, 0x0C, 0x06, 0x3C, -0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1C, 0x36, 0x00, 0x3E, 0x63, 0x7F, 0x60, 0x63, 0x3E, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x00, 0x3E, 0x63, 0x7F, 0x60, 0x63, -0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x18, 0x0C, 0x00, 0x3E, 0x63, 0x7F, 0x60, -0x63, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x00, 0x38, 0x18, 0x18, -0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, 0x66, 0x00, 0x38, 0x18, -0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x00, 0x38, -0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x63, 0x08, 0x1C, -0x36, 0x63, 0x63, 0x7F, 0x63, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x36, 0x1C, 0x00, -0x1C, 0x36, 0x63, 0x63, 0x7F, 0x63, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x18, 0x30, -0x00, 0x7F, 0x33, 0x30, 0x3E, 0x30, 0x33, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x6E, 0x3B, 0x1B, 0x7E, 0xD8, 0xDC, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x1F, 0x36, 0x66, 0x66, 0x7F, 0x66, 0x66, 0x66, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x1C, 0x36, 0x00, 0x3E, 0x63, 0x63, 0x63, 0x63, 0x3E, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x63, 0x63, 0x00, 0x3E, 0x63, 0x63, 0x63, 0x63, 0x3E, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x30, 0x18, 0x0C, 0x00, 0x3E, 0x63, 0x63, 0x63, 0x63, 0x3E, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3B, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x18, 0x0C, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3B, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x63, 0x00, 0x63, 0x63, 0x63, 0x63, 0x3F, -0x03, 0x06, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x63, 0x63, 0x1C, 0x36, 0x63, 0x63, 0x63, 0x63, -0x36, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x63, 0x00, 0x63, 0x63, 0x63, 0x63, -0x63, 0x63, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7E, 0xC3, 0xC0, 0xC0, -0xC3, 0x7E, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x36, 0x32, 0x30, 0x78, -0x30, 0x30, 0x30, 0x73, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x66, 0x3C, -0x18, 0xFF, 0x18, 0xFF, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x66, 0x66, -0x7C, 0x62, 0x66, 0x6F, 0x66, 0x66, 0xF3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x1B, -0x18, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x18, 0x18, 0xD8, 0x70, 0x00, 0x00, 0x00, 0x00, 0x0C, -0x18, 0x30, 0x00, 0x3C, 0x06, 0x3E, 0x66, 0x66, 0x3B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x0C, 0x18, 0x30, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x0C, 0x18, 0x30, 0x00, 0x3E, 0x63, 0x63, 0x63, 0x63, 0x3E, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x0C, 0x18, 0x30, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3B, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x3B, 0x6E, 0x00, 0x6E, 0x33, 0x33, 0x33, 0x33, 0x33, 0x00, 0x00, -0x00, 0x00, 0x00, 0x3B, 0x6E, 0x00, 0x63, 0x73, 0x7B, 0x7F, 0x6F, 0x67, 0x63, 0x63, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x6C, 0x6C, 0x3E, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6C, 0x6C, 0x38, 0x00, 0x7C, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x30, 0x63, -0x63, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x60, -0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, -0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xE0, 0x63, 0x66, 0x6C, -0x18, 0x30, 0x6E, 0xC3, 0x06, 0x0C, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x60, 0xE0, 0x63, 0x66, -0x6C, 0x18, 0x33, 0x67, 0xCF, 0x1F, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, -0x00, 0x18, 0x18, 0x3C, 0x3C, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x1B, 0x36, 0x6C, 0x36, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x6C, 0x36, 0x1B, 0x36, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, -0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x00, 0x00, - 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x00, -0x00, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, -0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, -0x18, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0x18, 0x18, 0x18, -0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18, -0x18, 0x18, 0x18, 0x00, 0x00, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xF6, 0x36, 0x36, -0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x36, -0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x18, 0xF8, -0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x36, 0x36, 0x36, 0x36, 0x36, 0xF6, 0x06, -0xF6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, -0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0xFE, 0x06, 0xF6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x36, 0x36, 0x36, 0x36, -0x36, 0xF6, 0x06, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x36, 0x36, -0x36, 0x36, 0x36, 0x36, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, -0x18, 0x18, 0x18, 0xF8, 0x18, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, -0x18, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x18, 0x18, 0x18, -0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x18, 0x18, -0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x1F, 0x18, -0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, -0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30, -0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, -0x30, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x36, 0x36, 0x36, 0x36, 0x36, -0xF7, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0xFF, 0x00, 0xF7, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x36, 0x36, 0x36, -0x36, 0x36, 0x37, 0x30, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, -0x36, 0x36, 0x36, 0x36, 0xF7, 0x00, 0xF7, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, - 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, -0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x36, 0x36, 0x36, 0x36, -0x36, 0x36, 0x00, 0x00, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x3F, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x1F, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x18, 0x1F, 0x18, -0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, -0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, -0xFF, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, -0x18, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, -0x18, 0x18, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0xFF, 0xFF, 0xFF, -0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xF0, -0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x00, 0x00, - 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x00, -0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3B, 0x6E, 0x6C, 0x6C, 0x6E, 0x3B, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x63, 0x7E, 0x63, 0x63, 0x7E, 0x60, 0x60, -0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x63, 0x63, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x36, 0x36, 0x36, 0x36, 0x36, -0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x63, 0x30, 0x18, 0x0C, 0x18, 0x30, -0x63, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x6C, 0x6C, -0x6C, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x33, 0x33, -0x33, 0x3E, 0x30, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3B, 0x6E, -0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x18, 0x3C, -0x66, 0x66, 0x66, 0x3C, 0x18, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x36, -0x63, 0x63, 0x7F, 0x63, 0x63, 0x36, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, -0x36, 0x63, 0x63, 0x63, 0x36, 0x36, 0x36, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x1E, 0x30, 0x18, 0x0C, 0x3E, 0x66, 0x66, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x7E, 0xDB, 0xDB, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x03, 0x06, 0x7E, 0xDB, 0xDB, 0xF3, 0x7E, 0x60, 0xC0, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x1C, 0x30, 0x60, 0x60, 0x7C, 0x60, 0x60, 0x30, 0x1C, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0xFF, 0x18, 0x18, 0x18, 0x00, 0xFF, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x18, 0x0C, 0x06, 0x0C, 0x18, 0x30, 0x00, -0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0C, -0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x1B, 0x1B, 0x18, 0x18, 0x18, -0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, -0x18, 0xD8, 0xD8, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, -0xFF, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3B, -0x6E, 0x00, 0x3B, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6C, 0x6C, -0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x0F, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0xEC, 0x6C, 0x3C, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xD8, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x70, 0xD8, 0x30, 0x60, 0xC8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00 -}; - +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ + +/* Police de caractère fine 8x16 */ +static u8 font8x16[4096] = + { +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x7E, 0x81, 0xA5, 0x81, 0x81, 0xBD, 0x99, 0x81, 0x7E, +0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x7E, 0xFF, 0xDB, 0xFF, 0xFF, 0xC3, 0xE7, 0xFF, +0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x36, 0x7F, 0x7F, 0x7F, 0x7F, 0x3E, +0x1C, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x08, 0x1C, 0x3E, 0x7F, 0x3E, +0x1C, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x18, 0x3C, 0x3C, 0xE7, 0xE7, +0xE7, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x18, 0x3C, 0x7E, 0xFF, +0xFF, 0x7E, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, +0x18, 0x3C, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xE7, 0xC3, 0xC3, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, +0x00, 0x00, 0x00, +0x00, 0x3C, 0x66, 0x42, 0x42, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xFF, 0xFF, +0xFF, 0xFF, 0xC3, 0x99, 0xBD, 0xBD, 0x99, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, +0x00, +0x00, 0x0F, 0x07, 0x0D, 0x19, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, + +0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, +0x00, +0x00, 0x00, 0x3F, 0x33, 0x3F, 0x30, 0x30, 0x30, 0x70, 0xF0, 0xE0, 0x00, 0x00, 0x00, +0x00, 0x00, +0x00, 0x00, 0x7F, 0x63, 0x7F, 0x63, 0x63, 0x63, 0x67, 0xE7, 0xE6, 0xC0, 0x00, +0x00, 0x00, 0x00, +0x00, 0x00, 0x18, 0x18, 0xDB, 0x3C, 0xE7, 0x3C, 0xDB, 0x18, 0x18, 0x00, +0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x40, 0x60, 0x70, 0x7C, 0x7F, 0x7C, 0x70, 0x60, 0x40, +0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x01, 0x03, 0x07, 0x1F, 0x7F, 0x1F, 0x07, 0x03, +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, 0x7E, +0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, +0x00, 0x33, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x7F, 0xDB, 0xDB, 0xDB, 0x7B, +0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x3E, 0x63, 0x30, 0x1C, 0x36, +0x63, 0x63, 0x36, 0x1C, 0x06, 0x63, 0x3E, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x7F, 0x7F, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x18, 0x3C, +0x7E, 0x18, 0x18, 0x18, 0x7E, 0x3C, 0x18, 0x7E, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x18, +0x3C, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, +0x00, 0x00, 0x00, 0x0C, 0x06, 0x7F, 0x06, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + +0x00, 0x00, 0x00, 0x00, 0x18, 0x30, 0x7F, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x60, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x24, 0x66, 0xFF, 0x66, 0x24, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x08, 0x1C, 0x1C, 0x3E, 0x3E, 0x7F, 0x7F, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x7F, 0x7F, 0x3E, 0x3E, 0x1C, 0x1C, 0x08, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, +0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, +0x00, 0x24, 0x24, 0x24, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x42, 0x42, 0x42, 0xFF, 0x42, 0x42, +0x42, 0xFF, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, +0x00, 0x10, 0x7E, 0x90, 0x90, 0x90, +0x7C, 0x12, 0x12, 0x12, 0xFC, 0x10, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x61, 0x91, 0x92, +0x64, 0x08, 0x10, 0x26, 0x49, 0x89, 0x86, 0x00, 0x00, 0x00, 0x00, +0x00, 0x70, 0x88, 0x88, +0x88, 0x50, 0x60, 0x91, 0x8A, 0x84, 0x4A, 0x31, 0x00, 0x00, 0x00, 0x00, +0x00, 0x18, 0x18, +0x10, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x06, +0x18, 0x20, 0x40, 0x40, 0x40, 0x40, 0x40, 0x20, 0x18, 0x06, 0x00, 0x00, 0x00, 0x00, +0x00, +0x60, 0x18, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x18, 0x60, 0x00, 0x00, 0x00, 0x00, + +0x00, 0x00, 0x10, 0x92, 0x54, 0x38, 0xFE, 0x38, 0x54, 0x92, 0x10, 0x00, 0x00, 0x00, 0x00, +0x00, +0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0xFE, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x10, +0x20, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, +0x18, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x01, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, +0x80, 0x80, 0x00, 0x00, 0x00, 0x00, +0x00, 0x3C, 0x42, 0x83, 0x85, 0x89, 0x91, 0xA1, 0xC1, +0x81, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, +0x00, 0x10, 0x30, 0x50, 0x10, 0x10, 0x10, 0x10, +0x10, 0x10, 0x10, 0x7C, 0x00, 0x00, 0x00, 0x00, +0x00, 0x3C, 0x42, 0x81, 0x01, 0x02, 0x3C, +0x40, 0x80, 0x80, 0x80, 0xFF, 0x00, 0x00, 0x00, 0x00, +0x00, 0x3C, 0x42, 0x81, 0x01, 0x02, +0x3C, 0x02, 0x01, 0x81, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, +0x00, 0x02, 0x06, 0x0A, 0x12, +0x22, 0x42, 0x82, 0xFF, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0xFF, 0x80, 0x80, +0x80, 0xFC, 0x02, 0x01, 0x01, 0x81, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, +0x00, 0x3C, 0x42, +0x81, 0x80, 0xBC, 0xC2, 0x81, 0x81, 0x81, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, +0x00, 0xFF, +0x81, 0x01, 0x02, 0x04, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, +0x00, +0x3C, 0x42, 0x81, 0x81, 0x42, 0x3C, 0x42, 0x81, 0x81, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, + +0x00, 0x3C, 0x42, 0x81, 0x81, 0x43, 0x3D, 0x01, 0x01, 0x81, 0x42, 0x3C, 0x00, 0x00, 0x00, +0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, +0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x10, +0x20, 0x00, 0x00, +0x00, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, +0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, +0x20, 0x40, 0x00, 0x00, 0x00, 0x00, +0x00, 0x38, 0x44, 0x82, 0x82, 0x04, 0x08, 0x10, 0x10, +0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, +0x00, 0x3C, 0x42, 0x81, 0x99, 0xA5, 0xA5, 0xA5, +0x9E, 0x80, 0x41, 0x3E, 0x00, 0x00, 0x00, 0x00, +0x00, 0x18, 0x24, 0x42, 0x81, 0x81, 0xFF, +0x81, 0x81, 0x81, 0x81, 0x81, 0x00, 0x00, 0x00, 0x00, +0x00, 0xFC, 0x42, 0x41, 0x41, 0x42, +0x7C, 0x42, 0x41, 0x41, 0x42, 0xFC, 0x00, 0x00, 0x00, 0x00, +0x00, 0x3C, 0x42, 0x81, 0x81, +0x80, 0x80, 0x80, 0x80, 0x81, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, +0x00, 0xFC, 0x42, 0x41, +0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x42, 0xFC, 0x00, 0x00, 0x00, 0x00, +0x00, 0xFF, 0x80, +0x80, 0x80, 0x80, 0xFC, 0x80, 0x80, 0x80, 0x80, 0xFF, 0x00, 0x00, 0x00, 0x00, +0x00, 0xFF, +0x80, 0x80, 0x80, 0x80, 0xFC, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, +0x00, +0x3C, 0x42, 0x81, 0x81, 0x80, 0x9F, 0x81, 0x81, 0x81, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, + +0x00, 0x81, 0x81, 0x81, 0x81, 0x81, 0xFF, 0x81, 0x81, 0x81, 0x81, 0x81, 0x00, 0x00, 0x00, +0x00, +0x00, 0x38, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x38, 0x00, 0x00, +0x00, 0x00, +0x00, 0x07, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x82, 0x82, 0x44, 0x38, 0x00, +0x00, 0x00, 0x00, +0x00, 0x81, 0x82, 0x84, 0x88, 0x90, 0xE0, 0x90, 0x88, 0x84, 0x82, 0x81, +0x00, 0x00, 0x00, 0x00, +0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, +0xFF, 0x00, 0x00, 0x00, 0x00, +0x00, 0x81, 0xC3, 0xA5, 0x99, 0x99, 0x81, 0x81, 0x81, 0x81, +0x81, 0x81, 0x00, 0x00, 0x00, 0x00, +0x00, 0x81, 0xC1, 0xA1, 0x91, 0x89, 0x85, 0x83, 0x81, +0x81, 0x81, 0x81, 0x00, 0x00, 0x00, 0x00, +0x00, 0x3C, 0x42, 0x81, 0x81, 0x81, 0x81, 0x81, +0x81, 0x81, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, +0x00, 0xFC, 0x82, 0x81, 0x81, 0x82, 0xFC, +0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, +0x00, 0x3C, 0x42, 0x81, 0x81, 0x81, +0x81, 0x81, 0x89, 0x85, 0x42, 0x3D, 0x00, 0x00, 0x00, 0x00, +0x00, 0xFC, 0x82, 0x81, 0x81, +0x82, 0xFC, 0x90, 0x88, 0x84, 0x82, 0x81, 0x00, 0x00, 0x00, 0x00, +0x00, 0x3C, 0x42, 0x81, +0x80, 0x40, 0x3C, 0x02, 0x01, 0x81, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, +0x00, 0xFE, 0x92, +0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, +0x00, 0x81, +0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, +0x00, +0x81, 0x81, 0x81, 0x81, 0x81, 0x42, 0x42, 0x24, 0x24, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, + +0x00, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x99, 0x99, 0xA5, 0xA5, 0x42, 0x00, 0x00, 0x00, +0x00, +0x00, 0x81, 0x81, 0x81, 0x42, 0x24, 0x18, 0x24, 0x42, 0x81, 0x81, 0x81, 0x00, 0x00, +0x00, 0x00, +0x00, 0x82, 0x82, 0x82, 0x82, 0x44, 0x28, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, +0x00, 0x00, 0x00, +0x00, 0xFF, 0x01, 0x01, 0x02, 0x04, 0x18, 0x20, 0x40, 0x80, 0x80, 0xFF, +0x00, 0x00, 0x00, 0x00, +0x00, 0x7E, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, +0x7E, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x80, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, +0x01, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x7E, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, +0x02, 0x02, 0x7E, 0x00, 0x00, 0x00, 0x00, +0x00, 0x18, 0x24, 0x42, 0x81, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, +0x00, 0x08, 0x04, 0x02, 0x01, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, +0x7C, 0x02, 0x02, 0x7E, 0x82, 0x82, 0x7D, 0x00, 0x00, 0x00, 0x00, +0x00, 0x80, 0x80, 0x80, +0x80, 0xBC, 0xC2, 0x81, 0x81, 0x81, 0xC2, 0xBC, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, +0x00, 0x00, 0x3C, 0x42, 0x80, 0x80, 0x80, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, +0x00, 0x01, +0x01, 0x01, 0x01, 0x3D, 0x43, 0x81, 0x81, 0x81, 0x43, 0x3D, 0x00, 0x00, 0x00, 0x00, +0x00, +0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x81, 0xFF, 0x80, 0x40, 0x3E, 0x00, 0x00, 0x00, 0x00, + +0x00, 0x0E, 0x11, 0x10, 0x10, 0xFE, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, +0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x3D, 0x43, 0x81, 0x81, 0x43, 0x3D, 0x01, 0x02, 0x7C, +0x00, 0x00, +0x00, 0x80, 0x80, 0x80, 0x80, 0xBC, 0xC2, 0x81, 0x81, 0x81, 0x81, 0x81, 0x00, +0x00, 0x00, 0x00, +0x00, 0x00, 0x08, 0x08, 0x00, 0x38, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3E, +0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x02, 0x02, 0x00, 0x06, 0x02, 0x02, 0x02, 0x02, 0x02, +0x82, 0x44, 0x38, 0x00, 0x00, +0x00, 0x80, 0x80, 0x80, 0x80, 0x82, 0x84, 0x88, 0x90, 0xA8, +0xC4, 0x82, 0x00, 0x00, 0x00, 0x00, +0x38, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, +0x08, 0x08, 0x3E, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xEC, 0x92, 0x92, +0x92, 0x92, 0x92, 0x92, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xB8, 0xC4, +0x82, 0x82, 0x82, 0x82, 0x82, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, +0x42, 0x81, 0x81, 0x81, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, +0xBC, 0xC2, 0x81, 0x81, 0x81, 0xC2, 0xBC, 0x80, 0x80, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, +0x00, 0x3D, 0x43, 0x81, 0x81, 0x81, 0x43, 0x3D, 0x01, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, +0x00, 0x00, 0xBE, 0xC1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, +0x00, 0x00, 0x00, 0x7E, 0x81, 0x80, 0x7E, 0x01, 0x81, 0x7E, 0x00, 0x00, 0x00, 0x00, +0x10, +0x10, 0x10, 0x10, 0x10, 0xFE, 0x10, 0x10, 0x10, 0x10, 0x11, 0x0E, 0x00, 0x00, 0x00, 0x00, + +0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x81, 0x81, 0x81, 0x81, 0x43, 0x3D, 0x00, 0x00, 0x00, +0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x81, 0x81, 0x81, 0x42, 0x24, 0x18, 0x00, 0x00, +0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x82, 0x92, 0x92, 0x92, 0xAA, 0x44, 0x00, +0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x42, 0x24, 0x18, 0x24, 0x42, 0x81, +0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x81, 0x81, 0x81, 0x43, 0x3D, +0x01, 0x02, 0x7C, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x02, 0x04, 0x18, 0x20, +0x40, 0xFF, 0x00, 0x00, 0x00, 0x00, +0x00, 0x04, 0x08, 0x10, 0x10, 0x10, 0x20, 0x10, 0x10, +0x10, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x10, +0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x40, 0x20, 0x10, 0x10, 0x10, 0x08, +0x10, 0x10, 0x10, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x70, 0x99, 0x0E, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x08, +0x1C, 0x36, 0x63, 0x63, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x1E, 0x33, +0x61, 0x60, 0x60, 0x61, 0x33, 0x1E, 0x06, 0x03, 0x3E, 0x00, 0x00, 0x00, +0x00, 0x00, 0x66, +0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3B, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x06, +0x0C, 0x18, 0x00, 0x3E, 0x63, 0x7F, 0x60, 0x63, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, +0x08, 0x1C, 0x36, 0x00, 0x3C, 0x06, 0x3E, 0x66, 0x66, 0x3B, 0x00, 0x00, 0x00, 0x00, 0x00, + +0x00, 0x00, 0x66, 0x66, 0x00, 0x3C, 0x06, 0x3E, 0x66, 0x66, 0x3B, 0x00, 0x00, 0x00, 0x00, +0x00, +0x00, 0x30, 0x18, 0x0C, 0x00, 0x3C, 0x06, 0x3E, 0x66, 0x66, 0x3B, 0x00, 0x00, 0x00, +0x00, 0x00, +0x00, 0x1C, 0x36, 0x1C, 0x00, 0x3C, 0x06, 0x3E, 0x66, 0x66, 0x3B, 0x00, 0x00, +0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0x60, 0x66, 0x3C, 0x0C, 0x06, 0x3C, +0x00, 0x00, 0x00, 0x00, +0x00, 0x08, 0x1C, 0x36, 0x00, 0x3E, 0x63, 0x7F, 0x60, 0x63, 0x3E, +0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x66, 0x66, 0x00, 0x3E, 0x63, 0x7F, 0x60, 0x63, +0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x30, 0x18, 0x0C, 0x00, 0x3E, 0x63, 0x7F, 0x60, +0x63, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x66, 0x66, 0x00, 0x38, 0x18, 0x18, +0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x18, 0x3C, 0x66, 0x00, 0x38, 0x18, +0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x60, 0x30, 0x18, 0x00, 0x38, +0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x63, 0x63, 0x08, 0x1C, +0x36, 0x63, 0x63, 0x7F, 0x63, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x1C, 0x36, 0x1C, 0x00, +0x1C, 0x36, 0x63, 0x63, 0x7F, 0x63, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, +0x0C, 0x18, 0x30, +0x00, 0x7F, 0x33, 0x30, 0x3E, 0x30, 0x33, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, +0x00, 0x00, 0x6E, 0x3B, 0x1B, 0x7E, 0xD8, 0xDC, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, +0x00, 0x1F, 0x36, 0x66, 0x66, 0x7F, 0x66, 0x66, 0x66, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, + +0x00, 0x08, 0x1C, 0x36, 0x00, 0x3E, 0x63, 0x63, 0x63, 0x63, 0x3E, 0x00, 0x00, 0x00, 0x00, +0x00, +0x00, 0x00, 0x63, 0x63, 0x00, 0x3E, 0x63, 0x63, 0x63, 0x63, 0x3E, 0x00, 0x00, 0x00, +0x00, 0x00, +0x00, 0x30, 0x18, 0x0C, 0x00, 0x3E, 0x63, 0x63, 0x63, 0x63, 0x3E, 0x00, 0x00, +0x00, 0x00, 0x00, +0x00, 0x18, 0x3C, 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3B, 0x00, +0x00, 0x00, 0x00, 0x00, +0x00, 0x30, 0x18, 0x0C, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3B, +0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x63, 0x63, 0x00, 0x63, 0x63, 0x63, 0x63, 0x3F, +0x03, 0x06, 0x3C, 0x00, 0x00, 0x00, +0x00, 0x63, 0x63, 0x1C, 0x36, 0x63, 0x63, 0x63, 0x63, +0x36, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x63, 0x63, 0x00, 0x63, 0x63, 0x63, 0x63, +0x63, 0x63, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x18, 0x18, 0x7E, 0xC3, 0xC0, 0xC0, +0xC3, 0x7E, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x1C, 0x36, 0x32, 0x30, 0x78, +0x30, 0x30, 0x30, 0x73, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xC3, 0x66, 0x3C, +0x18, 0xFF, 0x18, 0xFF, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xFC, 0x66, 0x66, +0x7C, 0x62, 0x66, 0x6F, 0x66, 0x66, 0xF3, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x0E, 0x1B, +0x18, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x18, 0x18, 0xD8, 0x70, 0x00, 0x00, 0x00, +0x00, 0x0C, +0x18, 0x30, 0x00, 0x3C, 0x06, 0x3E, 0x66, 0x66, 0x3B, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, +0x0C, 0x18, 0x30, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, + +0x00, 0x0C, 0x18, 0x30, 0x00, 0x3E, 0x63, 0x63, 0x63, 0x63, 0x3E, 0x00, 0x00, 0x00, 0x00, +0x00, +0x00, 0x0C, 0x18, 0x30, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3B, 0x00, 0x00, 0x00, +0x00, 0x00, +0x00, 0x00, 0x3B, 0x6E, 0x00, 0x6E, 0x33, 0x33, 0x33, 0x33, 0x33, 0x00, 0x00, +0x00, 0x00, 0x00, +0x3B, 0x6E, 0x00, 0x63, 0x73, 0x7B, 0x7F, 0x6F, 0x67, 0x63, 0x63, 0x00, +0x00, 0x00, 0x00, 0x00, +0x00, 0x3C, 0x6C, 0x6C, 0x3E, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x38, 0x6C, 0x6C, 0x38, 0x00, 0x7C, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x30, 0x63, +0x63, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x60, +0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, +0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x60, 0xE0, 0x63, 0x66, 0x6C, +0x18, 0x30, 0x6E, 0xC3, 0x06, 0x0C, 0x1F, 0x00, 0x00, 0x00, +0x00, 0x60, 0xE0, 0x63, 0x66, +0x6C, 0x18, 0x33, 0x67, 0xCF, 0x1F, 0x03, 0x03, 0x00, 0x00, 0x00, +0x00, 0x00, 0x18, 0x18, +0x00, 0x18, 0x18, 0x3C, 0x3C, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, +0x00, 0x1B, 0x36, 0x6C, 0x36, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, +0x00, 0x00, 0x6C, 0x36, 0x1B, 0x36, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x11, +0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x00, 0x00, + +0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x00, +0x00, +0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, +0x00, 0x00, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x00, 0x00, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x00, 0x00, +0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x00, 0x00, +0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xF6, 0x36, 0x36, +0x36, 0x36, 0x36, 0x36, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x36, +0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x18, 0xF8, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, +0x36, 0x36, 0x36, 0x36, 0x36, 0xF6, 0x06, +0xF6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, +0x36, 0x36, 0x36, 0x36, 0x36, 0x36, +0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, +0xFE, 0x06, 0xF6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, +0x36, 0x36, 0x36, 0x36, +0x36, 0xF6, 0x06, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x36, 0x36, 0x36, +0x36, 0x36, 0x36, 0x36, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x18, 0x18, +0x18, 0x18, 0x18, 0xF8, 0x18, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, + +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x00, 0x00, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x00, 0x00, +0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x1F, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, +0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, +0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, +0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30, +0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, +0x30, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, +0x36, 0x36, 0x36, 0x36, 0x36, +0xF7, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, +0x00, 0xFF, 0x00, 0xF7, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, +0x36, 0x36, 0x36, +0x36, 0x36, 0x37, 0x30, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, +0x00, 0x00, +0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x36, +0x36, 0x36, 0x36, 0x36, 0xF7, 0x00, 0xF7, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, + +0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, +0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x36, 0x36, 0x36, 0x36, +0x36, 0x36, 0x00, 0x00, +0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x3F, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, +0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x1F, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x18, 0x1F, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, +0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, +0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, +0xFF, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, +0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, +0x18, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, +0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0x18, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, +0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, +0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, +0xF0, +0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x00, 0x00, + +0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x00, +0x00, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x3B, 0x6E, 0x6C, 0x6C, 0x6E, 0x3B, 0x00, 0x00, +0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x3E, 0x63, 0x7E, 0x63, 0x63, 0x7E, 0x60, 0x60, +0x20, 0x00, 0x00, 0x00, +0x00, 0x00, 0x7F, 0x63, 0x63, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, +0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x7F, 0x36, 0x36, 0x36, 0x36, 0x36, +0x36, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x7F, 0x63, 0x30, 0x18, 0x0C, 0x18, 0x30, +0x63, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x6C, 0x6C, +0x6C, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x33, 0x33, 0x33, +0x33, 0x3E, 0x30, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x3B, 0x6E, +0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x7E, 0x18, 0x3C, +0x66, 0x66, 0x66, 0x3C, 0x18, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x1C, 0x36, +0x63, 0x63, 0x7F, 0x63, 0x63, 0x36, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x1C, +0x36, 0x63, 0x63, 0x63, 0x36, 0x36, 0x36, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, +0x1E, 0x30, 0x18, 0x0C, 0x3E, 0x66, 0x66, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, +0x00, 0x00, 0x00, 0x00, 0x7E, 0xDB, 0xDB, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + +0x00, 0x00, 0x03, 0x06, 0x7E, 0xDB, 0xDB, 0xF3, 0x7E, 0x60, 0xC0, 0x00, 0x00, 0x00, 0x00, +0x00, +0x00, 0x00, 0x1C, 0x30, 0x60, 0x60, 0x7C, 0x60, 0x60, 0x30, 0x1C, 0x00, 0x00, 0x00, +0x00, 0x00, +0x00, 0x00, 0x00, 0x3E, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x00, 0x00, +0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x18, 0x18, 0x18, 0xFF, 0x18, 0x18, 0x18, 0x00, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x30, 0x18, 0x0C, 0x06, 0x0C, 0x18, 0x30, 0x00, +0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x0C, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0C, +0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x0E, 0x1B, 0x1B, 0x18, 0x18, 0x18, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, +0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, +0x18, 0xD8, 0xD8, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x18, 0x18, 0x00, 0x00, +0xFF, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x3B, +0x6E, 0x00, 0x3B, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x38, 0x6C, 0x6C, +0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, +0x0F, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0xEC, 0x6C, 0x3C, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, + +0x00, 0xD8, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, +0x00, 0x70, 0xD8, 0x30, 0x60, 0xC8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00 +}; + diff --git a/lib/VGA/8x8fnt.c b/lib/VGA/8x8fnt.c index d173e55..e758898 100755 --- a/lib/VGA/8x8fnt.c +++ b/lib/VGA/8x8fnt.c @@ -1,142 +1,274 @@ -/* Police de caractère fine 8x8 */ -static u8 font8x8[2048] = - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x81, 0xA5, 0x81, -0xBD, 0x99, 0x81, 0x7E, 0x7E, 0xFF, 0xDB, 0xFF, 0xC3, 0xE7, 0xFF, 0x7E, 0x6C, 0xFE, 0xFE, -0xFE, 0x7C, 0x38, 0x10, 0x00, 0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x10, 0x00, 0x38, 0x7C, -0x38, 0xFE, 0xFE, 0x7C, 0x38, 0x7C, 0x10, 0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x7C, 0x00, -0x00, 0x18, 0x3C, 0x3C, 0x18, 0x00, 0x00, 0xFF, 0xFF, 0xE7, 0xC3, 0xC3, 0xE7, 0xFF, 0xFF, -0x00, 0x3C, 0x66, 0x42, 0x42, 0x66, 0x3C, 0x00, 0xFF, 0xC3, 0x99, 0xBD, 0xBD, 0x99, 0xC3, -0xFF, 0x0F, 0x07, 0x0F, 0x7D, 0xCC, 0xCC, 0xCC, 0x78, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x18, -0x7E, 0x18, 0x3F, 0x33, 0x3F, 0x30, 0x30, 0x70, 0xF0, 0xE0, 0x7F, 0x63, 0x7F, 0x63, 0x63, -0x67, 0xE6, 0xC0, 0x99, 0x5A, 0x3C, 0xE7, 0xE7, 0x3C, 0x5A, 0x99, 0x80, 0xE0, 0xF8, 0xFE, -0xF8, 0xE0, 0x80, 0x00, 0x02, 0x0E, 0x3E, 0xFE, 0x3E, 0x0E, 0x02, 0x00, 0x18, 0x3C, 0x7E, -0x18, 0x18, 0x7E, 0x3C, 0x18, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x66, 0x00, 0x7F, 0xDB, -0xDB, 0x7B, 0x1B, 0x1B, 0x1B, 0x00, 0x3E, 0x63, 0x38, 0x6C, 0x6C, 0x38, 0xCC, 0x78, 0x00, -0x00, 0x00, 0x00, 0x7E, 0x7E, 0x7E, 0x00, 0x18, 0x3C, 0x7E, 0x18, 0x7E, 0x3C, 0x18, 0xFF, - 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x3C, 0x18, -0x00, 0x00, 0x18, 0x0C, 0xFE, 0x0C, 0x18, 0x00, 0x00, 0x00, 0x30, 0x60, 0xFE, 0x60, 0x30, -0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xFE, 0x00, 0x00, 0x00, 0x24, 0x66, 0xFF, 0x66, -0x24, 0x00, 0x00, 0x00, 0x18, 0x3C, 0x7E, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x7E, -0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, -0x40, 0x40, 0x00, 0x40, 0x00, 0x90, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x50, -0xF8, 0x50, 0xF8, 0x50, 0x50, 0x00, 0x20, 0x78, 0xA0, 0x70, 0x28, 0xF0, 0x20, 0x00, 0xC8, -0xC8, 0x10, 0x20, 0x40, 0x98, 0x98, 0x00, 0x70, 0x88, 0x50, 0x20, 0x54, 0x88, 0x74, 0x00, -0x60, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x40, 0x80, 0x80, 0x80, 0x40, 0x20, -0x00, 0x20, 0x10, 0x08, 0x08, 0x08, 0x10, 0x20, 0x00, 0x00, 0x20, 0xA8, 0x70, 0x70, 0xA8, -0x20, 0x00, 0x00, 0x00, 0x20, 0x20, 0xF8, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x60, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x60, 0x60, 0x00, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x70, 0x88, 0x98, -0xA8, 0xC8, 0x88, 0x70, 0x00, 0x40, 0xC0, 0x40, 0x40, 0x40, 0x40, 0xE0, 0x00, 0x70, 0x88, -0x08, 0x10, 0x20, 0x40, 0xF8, 0x00, 0x70, 0x88, 0x08, 0x10, 0x08, 0x88, 0x70, 0x00, 0x08, -0x18, 0x28, 0x48, 0xFC, 0x08, 0x08, 0x00, 0xF8, 0x80, 0x80, 0xF0, 0x08, 0x88, 0x70, 0x00, - 0x20, 0x40, 0x80, 0xF0, 0x88, 0x88, 0x70, 0x00, 0xF8, 0x08, 0x10, 0x20, 0x40, 0x40, 0x40, -0x00, 0x70, 0x88, 0x88, 0x70, 0x88, 0x88, 0x70, 0x00, 0x70, 0x88, 0x88, 0x78, 0x08, 0x08, -0x70, 0x00, 0x00, 0x00, 0x60, 0x60, 0x00, 0x60, 0x60, 0x00, 0x00, 0x00, 0x60, 0x60, 0x00, -0x60, 0x60, 0x20, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x00, 0x00, 0x00, 0xF8, 0x00, -0xF8, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x20, 0x40, 0x80, 0x00, 0x78, 0x84, 0x04, -0x08, 0x10, 0x00, 0x10, 0x00, 0x70, 0x88, 0x88, 0xA8, 0xB8, 0x80, 0x78, 0x00, 0x20, 0x50, -0x88, 0x88, 0xF8, 0x88, 0x88, 0x00, 0xF0, 0x88, 0x88, 0xF0, 0x88, 0x88, 0xF0, 0x00, 0x70, -0x88, 0x80, 0x80, 0x80, 0x88, 0x70, 0x00, 0xF0, 0x88, 0x88, 0x88, 0x88, 0x88, 0xF0, 0x00, -0xF8, 0x80, 0x80, 0xE0, 0x80, 0x80, 0xF8, 0x00, 0xF8, 0x80, 0x80, 0xE0, 0x80, 0x80, 0x80, -0x00, 0x70, 0x88, 0x80, 0x80, 0x98, 0x88, 0x78, 0x00, 0x88, 0x88, 0x88, 0xF8, 0x88, 0x88, -0x88, 0x00, 0xE0, 0x40, 0x40, 0x40, 0x40, 0x40, 0xE0, 0x00, 0x38, 0x10, 0x10, 0x10, 0x10, -0x90, 0x60, 0x00, 0x88, 0x90, 0xA0, 0xC0, 0xA0, 0x90, 0x88, 0x00, 0x80, 0x80, 0x80, 0x80, -0x80, 0x80, 0xF8, 0x00, 0x82, 0xC6, 0xAA, 0x92, 0x82, 0x82, 0x82, 0x00, 0x84, 0xC4, 0xA4, -0x94, 0x8C, 0x84, 0x84, 0x00, 0x70, 0x88, 0x88, 0x88, 0x88, 0x88, 0x70, 0x00, 0xF0, 0x88, -0x88, 0xF0, 0x80, 0x80, 0x80, 0x00, 0x70, 0x88, 0x88, 0x88, 0xA8, 0x90, 0x68, 0x00, 0xF0, -0x88, 0x88, 0xF0, 0xA0, 0x90, 0x88, 0x00, 0x70, 0x88, 0x80, 0x70, 0x08, 0x88, 0x70, 0x00, - 0xF8, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x70, -0x00, 0x88, 0x88, 0x88, 0x50, 0x50, 0x20, 0x20, 0x00, 0x82, 0x82, 0x82, 0x82, 0x92, 0x92, -0x6C, 0x00, 0x88, 0x88, 0x50, 0x20, 0x50, 0x88, 0x88, 0x00, 0x88, 0x88, 0x88, 0x50, 0x20, -0x20, 0x20, 0x00, 0xF8, 0x08, 0x10, 0x20, 0x40, 0x80, 0xF8, 0x00, 0xE0, 0x80, 0x80, 0x80, -0x80, 0x80, 0xE0, 0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, 0xE0, 0x20, 0x20, -0x20, 0x20, 0x20, 0xE0, 0x00, 0x20, 0x50, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x70, 0x08, 0x78, 0x88, 0x74, 0x00, 0x80, 0x80, 0xB0, 0xC8, 0x88, 0xC8, 0xB0, 0x00, -0x00, 0x00, 0x70, 0x88, 0x80, 0x88, 0x70, 0x00, 0x08, 0x08, 0x68, 0x98, 0x88, 0x98, 0x68, -0x00, 0x00, 0x00, 0x70, 0x88, 0xF8, 0x80, 0x70, 0x00, 0x30, 0x48, 0x40, 0xE0, 0x40, 0x40, -0x40, 0x00, 0x00, 0x00, 0x34, 0x48, 0x48, 0x38, 0x08, 0x30, 0x80, 0x80, 0xB0, 0xC8, 0x88, -0x88, 0x88, 0x00, 0x20, 0x00, 0x60, 0x20, 0x20, 0x20, 0x70, 0x00, 0x10, 0x00, 0x30, 0x10, -0x10, 0x10, 0x90, 0x60, 0x80, 0x80, 0x88, 0x90, 0xA0, 0xD0, 0x88, 0x00, 0xC0, 0x40, 0x40, -0x40, 0x40, 0x40, 0xE0, 0x00, 0x00, 0x00, 0xEC, 0x92, 0x92, 0x92, 0x92, 0x00, 0x00, 0x00, -0xB0, 0xC8, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x70, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00, -0x00, 0xB0, 0xC8, 0xC8, 0xB0, 0x80, 0x80, 0x00, 0x00, 0x68, 0x98, 0x98, 0x68, 0x08, 0x08, - 0x00, 0x00, 0xB0, 0xC8, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x78, 0x80, 0x70, 0x08, 0xF0, -0x00, 0x40, 0x40, 0xE0, 0x40, 0x40, 0x50, 0x20, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x98, -0x68, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x50, 0x20, 0x00, 0x00, 0x00, 0x82, 0x82, 0x92, -0x92, 0x6C, 0x00, 0x00, 0x00, 0x88, 0x50, 0x20, 0x50, 0x88, 0x00, 0x00, 0x00, 0x88, 0x88, -0x98, 0x68, 0x08, 0x70, 0x00, 0x00, 0xF8, 0x10, 0x20, 0x40, 0xF8, 0x00, 0x10, 0x20, 0x20, -0x40, 0x20, 0x20, 0x10, 0x00, 0x40, 0x40, 0x40, 0x00, 0x40, 0x40, 0x40, 0x00, 0x40, 0x20, -0x20, 0x10, 0x20, 0x20, 0x40, 0x00, 0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0x00, 0x3E, 0x60, 0xC0, 0x60, 0x3E, 0x08, 0x04, 0x18, -0x00, 0x48, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x18, 0x20, 0x00, 0x78, 0xCC, 0xFC, 0xC0, -0x78, 0x10, 0x28, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00, 0x48, 0x00, 0x78, 0x0C, 0x7C, -0xCC, 0x76, 0x30, 0x08, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x48, 0x30, 0x00, 0x78, 0x0C, -0x7C, 0xCC, 0x76, 0x78, 0xCC, 0xC0, 0xCC, 0x78, 0x10, 0x08, 0x30, 0x30, 0x48, 0x84, 0x78, -0xCC, 0xFC, 0xC0, 0x78, 0x00, 0x48, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x30, 0x08, 0x00, -0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00, 0x48, 0x00, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x48, -0x00, 0x30, 0x30, 0x30, 0x30, 0x30, 0x60, 0x10, 0x00, 0x30, 0x30, 0x30, 0x30, 0x30, 0x48, -0x00, 0x30, 0x78, 0xCC, 0xCC, 0xFC, 0xCC, 0x30, 0x48, 0x30, 0x48, 0x84, 0xFC, 0x84, 0x84, - 0x18, 0x20, 0x00, 0xF8, 0x80, 0xF0, 0x80, 0xF8, 0x00, 0x00, 0x00, 0x66, 0x19, 0x77, 0x88, -0x77, 0x00, 0x00, 0x00, 0x0F, 0x14, 0x3E, 0x44, 0x87, 0x30, 0x48, 0x84, 0x78, 0xCC, 0xCC, -0xCC, 0x78, 0x00, 0x48, 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0x78, 0x60, 0x10, 0x00, 0x78, 0xCC, -0xCC, 0xCC, 0x78, 0x30, 0x48, 0x84, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x60, 0x10, 0x00, 0xCC, -0xCC, 0xCC, 0xCC, 0x76, 0x48, 0x00, 0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8, 0x44, 0x00, 0x38, -0x6C, 0xC6, 0xC6, 0x6C, 0x38, 0x24, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00, 0x08, -0x1C, 0x28, 0x28, 0x1C, 0x08, 0x00, 0x1C, 0x22, 0x20, 0x70, 0x20, 0x22, 0x5C, 0x00, 0x44, -0x28, 0x10, 0x10, 0x38, 0x10, 0x38, 0x10, 0xF0, 0x88, 0x8A, 0xF7, 0x82, 0x82, 0x83, 0x00, -0x06, 0x08, 0x08, 0x3C, 0x10, 0x10, 0x60, 0x00, 0x18, 0x20, 0x00, 0x78, 0x0C, 0x7C, 0xCC, -0x76, 0x18, 0x20, 0x00, 0x30, 0x30, 0x30, 0x30, 0x30, 0x18, 0x20, 0x00, 0x78, 0xCC, 0xCC, -0xCC, 0x78, 0x18, 0x20, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x80, 0x78, 0x04, 0xF8, 0xCC, -0xCC, 0xCC, 0xCC, 0x80, 0x7E, 0x01, 0xC6, 0xE6, 0xD6, 0xCE, 0xC6, 0x00, 0x78, 0x0C, 0x7C, -0xCC, 0x76, 0x00, 0xFE, 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0x78, 0x00, 0xFC, 0x00, 0x00, 0x18, -0x18, 0x30, 0x60, 0x66, 0x3C, 0xFF, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01, -0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x40, 0xC4, 0x48, 0x50, 0x26, 0x49, 0x82, 0x07, 0x40, -0xC4, 0x48, 0x50, 0x26, 0x4A, 0x9F, 0x02, 0x00, 0x30, 0x00, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x00, 0x12, 0x24, 0x48, 0x90, 0x48, 0x24, 0x12, 0x00, 0x48, 0x24, 0x12, 0x09, 0x12, 0x24, -0x48, 0x49, 0x00, 0x92, 0x00, 0x49, 0x00, 0x92, 0x00, 0x6D, 0x00, 0xB6, 0x00, 0x6D, 0x00, -0xB6, 0x00, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0x10, 0x10, 0x10, 0x10, 0x10, -0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0xF0, -0x10, 0xF0, 0x10, 0x10, 0x28, 0x28, 0x28, 0x28, 0xE8, 0x28, 0x28, 0x28, 0x00, 0x00, 0x00, -0x00, 0xF8, 0x28, 0x28, 0x28, 0x00, 0x00, 0x00, 0xF0, 0x10, 0xF0, 0x10, 0x10, 0x28, 0x28, -0x28, 0xE8, 0x08, 0xE8, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x00, -0x00, 0x00, 0xF8, 0x08, 0xE8, 0x28, 0x28, 0x28, 0x28, 0x28, 0xE8, 0x08, 0xF8, 0x00, 0x00, -0x28, 0x28, 0x28, 0x28, 0xF8, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0xF0, 0x10, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0x00, -0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, -0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, -0xFF, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, -0x1F, 0x10, 0x1F, 0x10, 0x10, 0x28, 0x28, 0x28, 0x28, 0x3F, 0x28, 0x28, 0x28, 0x28, 0x28, -0x28, 0x2F, 0x20, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x20, 0x2F, 0x28, 0x28, 0x28, -0x28, 0x28, 0xEF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xEF, 0x28, 0x28, - 0x28, 0x28, 0x28, 0x2F, 0x20, 0x2F, 0x28, 0x28, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, -0x00, 0x28, 0x28, 0x28, 0xEF, 0x00, 0xEF, 0x28, 0x28, 0x10, 0x10, 0x10, 0xFF, 0x00, 0xFF, -0x00, 0x00, 0x28, 0x28, 0x28, 0x28, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, -0xFF, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, -0x3F, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x1F, 0x10, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, -0x1F, 0x10, 0x1F, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x28, 0x28, 0x28, 0x28, 0x28, -0x28, 0x28, 0xFF, 0x28, 0x28, 0x28, 0x10, 0x10, 0x10, 0xFF, 0x10, 0xFF, 0x10, 0x10, 0x10, -0x10, 0x10, 0x10, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x10, 0x10, 0x10, -0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, -0x00, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, -0x07, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x34, -0x4C, 0x4C, 0x32, 0x00, 0x5C, 0x22, 0x22, 0x3C, 0x44, 0x44, 0x78, 0x7E, 0x42, 0x42, 0x40, -0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x02, 0x7C, 0xA8, 0x28, 0x28, 0x44, 0x00, 0x7E, 0x61, -0x30, 0x18, 0x08, 0x10, 0x20, 0x00, 0x00, 0x08, 0x7F, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00, -0x00, 0x22, 0x44, 0x44, 0x7A, 0x80, 0x00, 0x00, 0x00, 0x7C, 0x10, 0x10, 0x10, 0x10, 0x00, -0x1C, 0x08, 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, 0x00, 0x38, 0x44, 0x44, 0x7C, 0x44, 0x44, - 0x3C, 0x66, 0xC3, 0xC3, 0xC3, 0x66, 0x24, 0x66, 0x0C, 0x10, 0x08, 0x1C, 0x22, 0x22, 0x22, -0x1C, 0x00, 0x00, 0x00, 0x00, 0x6C, 0x92, 0x92, 0x6C, 0x00, 0x01, 0x1A, 0x26, 0x2A, 0x32, -0x2C, 0x40, 0x00, 0x18, 0x20, 0x20, 0x30, 0x20, 0x20, 0x18, 0x00, 0x3C, 0x42, 0x42, 0x42, -0x42, 0x42, 0x42, 0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x08, 0x08, 0x3E, -0x08, 0x08, 0x00, 0x3E, 0x00, 0x10, 0x08, 0x04, 0x08, 0x10, 0x00, 0x3E, 0x00, 0x04, 0x08, -0x10, 0x08, 0x04, 0x00, 0x3E, 0x00, 0x06, 0x09, 0x09, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, -0x08, 0x08, 0x08, 0x48, 0x48, 0x30, 0x00, 0x00, 0x08, 0x00, 0x3E, 0x00, 0x08, 0x00, 0x00, -0x60, 0x92, 0x0C, 0x60, 0x92, 0x0C, 0x00, 0x60, 0x90, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x30, 0x78, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, -0x00, 0x00, 0x03, 0x04, 0x04, 0xC8, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x42, 0x42, -0x42, 0x00, 0x18, 0x24, 0x08, 0x10, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x3E, -0x3E, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ + +/* Police de caractère fine 8x8 */ +static u8 font8x8[2048] = + { +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x81, 0xA5, 0x81, +0xBD, 0x99, 0x81, 0x7E, +0x7E, 0xFF, 0xDB, 0xFF, 0xC3, 0xE7, 0xFF, 0x7E, 0x6C, 0xFE, 0xFE, +0xFE, 0x7C, 0x38, 0x10, 0x00, +0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x10, 0x00, 0x38, 0x7C, +0x38, 0xFE, 0xFE, 0x7C, 0x38, 0x7C, +0x10, 0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x7C, 0x00, +0x00, 0x18, 0x3C, 0x3C, 0x18, 0x00, 0x00, +0xFF, 0xFF, 0xE7, 0xC3, 0xC3, 0xE7, 0xFF, 0xFF, +0x00, 0x3C, 0x66, 0x42, 0x42, 0x66, 0x3C, 0x00, +0xFF, 0xC3, 0x99, 0xBD, 0xBD, 0x99, 0xC3, +0xFF, 0x0F, 0x07, 0x0F, 0x7D, 0xCC, 0xCC, 0xCC, 0x78, +0x3C, 0x66, 0x66, 0x66, 0x3C, 0x18, +0x7E, 0x18, 0x3F, 0x33, 0x3F, 0x30, 0x30, 0x70, 0xF0, 0xE0, +0x7F, 0x63, 0x7F, 0x63, 0x63, +0x67, 0xE6, 0xC0, 0x99, 0x5A, 0x3C, 0xE7, 0xE7, 0x3C, 0x5A, 0x99, +0x80, 0xE0, 0xF8, 0xFE, +0xF8, 0xE0, 0x80, 0x00, 0x02, 0x0E, 0x3E, 0xFE, 0x3E, 0x0E, 0x02, 0x00, +0x18, 0x3C, 0x7E, +0x18, 0x18, 0x7E, 0x3C, 0x18, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x66, 0x00, +0x7F, 0xDB, +0xDB, 0x7B, 0x1B, 0x1B, 0x1B, 0x00, 0x3E, 0x63, 0x38, 0x6C, 0x6C, 0x38, 0xCC, 0x78, +0x00, +0x00, 0x00, 0x00, 0x7E, 0x7E, 0x7E, 0x00, 0x18, 0x3C, 0x7E, 0x18, 0x7E, 0x3C, 0x18, 0xFF, + +0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x3C, 0x18, +0x00, +0x00, 0x18, 0x0C, 0xFE, 0x0C, 0x18, 0x00, 0x00, 0x00, 0x30, 0x60, 0xFE, 0x60, 0x30, +0x00, 0x00, +0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xFE, 0x00, 0x00, 0x00, 0x24, 0x66, 0xFF, 0x66, +0x24, 0x00, 0x00, +0x00, 0x18, 0x3C, 0x7E, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x7E, +0x3C, 0x18, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, +0x40, 0x40, 0x00, 0x40, 0x00, +0x90, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x50, +0xF8, 0x50, 0xF8, 0x50, 0x50, 0x00, +0x20, 0x78, 0xA0, 0x70, 0x28, 0xF0, 0x20, 0x00, 0xC8, +0xC8, 0x10, 0x20, 0x40, 0x98, 0x98, 0x00, +0x70, 0x88, 0x50, 0x20, 0x54, 0x88, 0x74, 0x00, +0x60, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, +0x20, 0x40, 0x80, 0x80, 0x80, 0x40, 0x20, +0x00, 0x20, 0x10, 0x08, 0x08, 0x08, 0x10, 0x20, 0x00, +0x00, 0x20, 0xA8, 0x70, 0x70, 0xA8, +0x20, 0x00, 0x00, 0x00, 0x20, 0x20, 0xF8, 0x20, 0x20, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, +0x60, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, +0x00, 0x60, 0x60, 0x00, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, +0x70, 0x88, 0x98, +0xA8, 0xC8, 0x88, 0x70, 0x00, 0x40, 0xC0, 0x40, 0x40, 0x40, 0x40, 0xE0, 0x00, +0x70, 0x88, +0x08, 0x10, 0x20, 0x40, 0xF8, 0x00, 0x70, 0x88, 0x08, 0x10, 0x08, 0x88, 0x70, 0x00, +0x08, +0x18, 0x28, 0x48, 0xFC, 0x08, 0x08, 0x00, 0xF8, 0x80, 0x80, 0xF0, 0x08, 0x88, 0x70, 0x00, + +0x20, 0x40, 0x80, 0xF0, 0x88, 0x88, 0x70, 0x00, 0xF8, 0x08, 0x10, 0x20, 0x40, 0x40, 0x40, +0x00, +0x70, 0x88, 0x88, 0x70, 0x88, 0x88, 0x70, 0x00, 0x70, 0x88, 0x88, 0x78, 0x08, 0x08, +0x70, 0x00, +0x00, 0x00, 0x60, 0x60, 0x00, 0x60, 0x60, 0x00, 0x00, 0x00, 0x60, 0x60, 0x00, +0x60, 0x60, 0x20, +0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x00, 0x00, 0x00, 0xF8, 0x00, +0xF8, 0x00, 0x00, 0x00, +0x80, 0x40, 0x20, 0x10, 0x20, 0x40, 0x80, 0x00, 0x78, 0x84, 0x04, +0x08, 0x10, 0x00, 0x10, 0x00, +0x70, 0x88, 0x88, 0xA8, 0xB8, 0x80, 0x78, 0x00, 0x20, 0x50, +0x88, 0x88, 0xF8, 0x88, 0x88, 0x00, +0xF0, 0x88, 0x88, 0xF0, 0x88, 0x88, 0xF0, 0x00, 0x70, +0x88, 0x80, 0x80, 0x80, 0x88, 0x70, 0x00, +0xF0, 0x88, 0x88, 0x88, 0x88, 0x88, 0xF0, 0x00, +0xF8, 0x80, 0x80, 0xE0, 0x80, 0x80, 0xF8, 0x00, +0xF8, 0x80, 0x80, 0xE0, 0x80, 0x80, 0x80, +0x00, 0x70, 0x88, 0x80, 0x80, 0x98, 0x88, 0x78, 0x00, +0x88, 0x88, 0x88, 0xF8, 0x88, 0x88, +0x88, 0x00, 0xE0, 0x40, 0x40, 0x40, 0x40, 0x40, 0xE0, 0x00, +0x38, 0x10, 0x10, 0x10, 0x10, +0x90, 0x60, 0x00, 0x88, 0x90, 0xA0, 0xC0, 0xA0, 0x90, 0x88, 0x00, +0x80, 0x80, 0x80, 0x80, +0x80, 0x80, 0xF8, 0x00, 0x82, 0xC6, 0xAA, 0x92, 0x82, 0x82, 0x82, 0x00, +0x84, 0xC4, 0xA4, +0x94, 0x8C, 0x84, 0x84, 0x00, 0x70, 0x88, 0x88, 0x88, 0x88, 0x88, 0x70, 0x00, +0xF0, 0x88, +0x88, 0xF0, 0x80, 0x80, 0x80, 0x00, 0x70, 0x88, 0x88, 0x88, 0xA8, 0x90, 0x68, 0x00, +0xF0, +0x88, 0x88, 0xF0, 0xA0, 0x90, 0x88, 0x00, 0x70, 0x88, 0x80, 0x70, 0x08, 0x88, 0x70, 0x00, + +0xF8, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x70, +0x00, +0x88, 0x88, 0x88, 0x50, 0x50, 0x20, 0x20, 0x00, 0x82, 0x82, 0x82, 0x82, 0x92, 0x92, +0x6C, 0x00, +0x88, 0x88, 0x50, 0x20, 0x50, 0x88, 0x88, 0x00, 0x88, 0x88, 0x88, 0x50, 0x20, +0x20, 0x20, 0x00, +0xF8, 0x08, 0x10, 0x20, 0x40, 0x80, 0xF8, 0x00, 0xE0, 0x80, 0x80, 0x80, +0x80, 0x80, 0xE0, 0x00, +0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, 0xE0, 0x20, 0x20, +0x20, 0x20, 0x20, 0xE0, 0x00, +0x20, 0x50, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, +0x40, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x70, 0x08, 0x78, 0x88, 0x74, 0x00, +0x80, 0x80, 0xB0, 0xC8, 0x88, 0xC8, 0xB0, 0x00, +0x00, 0x00, 0x70, 0x88, 0x80, 0x88, 0x70, 0x00, +0x08, 0x08, 0x68, 0x98, 0x88, 0x98, 0x68, +0x00, 0x00, 0x00, 0x70, 0x88, 0xF8, 0x80, 0x70, 0x00, +0x30, 0x48, 0x40, 0xE0, 0x40, 0x40, +0x40, 0x00, 0x00, 0x00, 0x34, 0x48, 0x48, 0x38, 0x08, 0x30, +0x80, 0x80, 0xB0, 0xC8, 0x88, +0x88, 0x88, 0x00, 0x20, 0x00, 0x60, 0x20, 0x20, 0x20, 0x70, 0x00, +0x10, 0x00, 0x30, 0x10, +0x10, 0x10, 0x90, 0x60, 0x80, 0x80, 0x88, 0x90, 0xA0, 0xD0, 0x88, 0x00, +0xC0, 0x40, 0x40, +0x40, 0x40, 0x40, 0xE0, 0x00, 0x00, 0x00, 0xEC, 0x92, 0x92, 0x92, 0x92, 0x00, +0x00, 0x00, +0xB0, 0xC8, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x70, 0x88, 0x88, 0x88, 0x70, 0x00, +0x00, +0x00, 0xB0, 0xC8, 0xC8, 0xB0, 0x80, 0x80, 0x00, 0x00, 0x68, 0x98, 0x98, 0x68, 0x08, 0x08, + +0x00, 0x00, 0xB0, 0xC8, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x78, 0x80, 0x70, 0x08, 0xF0, +0x00, +0x40, 0x40, 0xE0, 0x40, 0x40, 0x50, 0x20, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x98, +0x68, 0x00, +0x00, 0x00, 0x88, 0x88, 0x88, 0x50, 0x20, 0x00, 0x00, 0x00, 0x82, 0x82, 0x92, +0x92, 0x6C, 0x00, +0x00, 0x00, 0x88, 0x50, 0x20, 0x50, 0x88, 0x00, 0x00, 0x00, 0x88, 0x88, +0x98, 0x68, 0x08, 0x70, +0x00, 0x00, 0xF8, 0x10, 0x20, 0x40, 0xF8, 0x00, 0x10, 0x20, 0x20, +0x40, 0x20, 0x20, 0x10, 0x00, +0x40, 0x40, 0x40, 0x00, 0x40, 0x40, 0x40, 0x00, 0x40, 0x20, +0x20, 0x10, 0x20, 0x20, 0x40, 0x00, +0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0x00, +0x3E, 0x60, 0xC0, 0x60, 0x3E, 0x08, 0x04, 0x18, +0x00, 0x48, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, +0x18, 0x20, 0x00, 0x78, 0xCC, 0xFC, 0xC0, +0x78, 0x10, 0x28, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, +0x00, 0x48, 0x00, 0x78, 0x0C, 0x7C, +0xCC, 0x76, 0x30, 0x08, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, +0x48, 0x30, 0x00, 0x78, 0x0C, +0x7C, 0xCC, 0x76, 0x78, 0xCC, 0xC0, 0xCC, 0x78, 0x10, 0x08, 0x30, +0x30, 0x48, 0x84, 0x78, +0xCC, 0xFC, 0xC0, 0x78, 0x00, 0x48, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, +0x30, 0x08, 0x00, +0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00, 0x48, 0x00, 0x30, 0x30, 0x30, 0x30, 0x30, +0x30, 0x48, +0x00, 0x30, 0x30, 0x30, 0x30, 0x30, 0x60, 0x10, 0x00, 0x30, 0x30, 0x30, 0x30, 0x30, +0x48, +0x00, 0x30, 0x78, 0xCC, 0xCC, 0xFC, 0xCC, 0x30, 0x48, 0x30, 0x48, 0x84, 0xFC, 0x84, 0x84, + +0x18, 0x20, 0x00, 0xF8, 0x80, 0xF0, 0x80, 0xF8, 0x00, 0x00, 0x00, 0x66, 0x19, 0x77, 0x88, +0x77, +0x00, 0x00, 0x00, 0x0F, 0x14, 0x3E, 0x44, 0x87, 0x30, 0x48, 0x84, 0x78, 0xCC, 0xCC, +0xCC, 0x78, +0x00, 0x48, 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0x78, 0x60, 0x10, 0x00, 0x78, 0xCC, +0xCC, 0xCC, 0x78, +0x30, 0x48, 0x84, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x60, 0x10, 0x00, 0xCC, +0xCC, 0xCC, 0xCC, 0x76, +0x48, 0x00, 0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8, 0x44, 0x00, 0x38, +0x6C, 0xC6, 0xC6, 0x6C, 0x38, +0x24, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00, 0x08, +0x1C, 0x28, 0x28, 0x1C, 0x08, 0x00, +0x1C, 0x22, 0x20, 0x70, 0x20, 0x22, 0x5C, 0x00, 0x44, +0x28, 0x10, 0x10, 0x38, 0x10, 0x38, 0x10, +0xF0, 0x88, 0x8A, 0xF7, 0x82, 0x82, 0x83, 0x00, +0x06, 0x08, 0x08, 0x3C, 0x10, 0x10, 0x60, 0x00, +0x18, 0x20, 0x00, 0x78, 0x0C, 0x7C, 0xCC, +0x76, 0x18, 0x20, 0x00, 0x30, 0x30, 0x30, 0x30, 0x30, +0x18, 0x20, 0x00, 0x78, 0xCC, 0xCC, +0xCC, 0x78, 0x18, 0x20, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, +0x80, 0x78, 0x04, 0xF8, 0xCC, +0xCC, 0xCC, 0xCC, 0x80, 0x7E, 0x01, 0xC6, 0xE6, 0xD6, 0xCE, 0xC6, +0x00, 0x78, 0x0C, 0x7C, +0xCC, 0x76, 0x00, 0xFE, 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0x78, 0x00, 0xFC, +0x00, 0x00, 0x18, +0x18, 0x30, 0x60, 0x66, 0x3C, 0xFF, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, +0xFF, 0x01, +0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x40, 0xC4, 0x48, 0x50, 0x26, 0x49, 0x82, 0x07, +0x40, +0xC4, 0x48, 0x50, 0x26, 0x4A, 0x9F, 0x02, 0x00, 0x30, 0x00, 0x30, 0x30, 0x30, 0x30, 0x30, + +0x00, 0x12, 0x24, 0x48, 0x90, 0x48, 0x24, 0x12, 0x00, 0x48, 0x24, 0x12, 0x09, 0x12, 0x24, +0x48, +0x49, 0x00, 0x92, 0x00, 0x49, 0x00, 0x92, 0x00, 0x6D, 0x00, 0xB6, 0x00, 0x6D, 0x00, +0xB6, 0x00, +0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0x10, 0x10, 0x10, 0x10, 0x10, +0x10, 0x10, 0x10, +0x10, 0x10, 0x10, 0x10, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0xF0, +0x10, 0xF0, 0x10, 0x10, +0x28, 0x28, 0x28, 0x28, 0xE8, 0x28, 0x28, 0x28, 0x00, 0x00, 0x00, +0x00, 0xF8, 0x28, 0x28, 0x28, +0x00, 0x00, 0x00, 0xF0, 0x10, 0xF0, 0x10, 0x10, 0x28, 0x28, +0x28, 0xE8, 0x08, 0xE8, 0x28, 0x28, +0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x00, +0x00, 0x00, 0xF8, 0x08, 0xE8, 0x28, 0x28, +0x28, 0x28, 0x28, 0xE8, 0x08, 0xF8, 0x00, 0x00, +0x28, 0x28, 0x28, 0x28, 0xF8, 0x00, 0x00, 0x00, +0x10, 0x10, 0x10, 0xF0, 0x10, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x10, 0x10, 0x10, +0x10, 0x10, 0x10, 0x10, 0x1F, 0x00, +0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0xFF, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xFF, +0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F, 0x10, 0x10, 0x10, +0x00, 0x00, 0x00, 0x00, +0xFF, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, +0x10, 0x10, 0x10, +0x1F, 0x10, 0x1F, 0x10, 0x10, 0x28, 0x28, 0x28, 0x28, 0x3F, 0x28, 0x28, 0x28, +0x28, 0x28, +0x28, 0x2F, 0x20, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x20, 0x2F, 0x28, 0x28, +0x28, +0x28, 0x28, 0xEF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xEF, 0x28, 0x28, + +0x28, 0x28, 0x28, 0x2F, 0x20, 0x2F, 0x28, 0x28, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, +0x00, +0x28, 0x28, 0x28, 0xEF, 0x00, 0xEF, 0x28, 0x28, 0x10, 0x10, 0x10, 0xFF, 0x00, 0xFF, +0x00, 0x00, +0x28, 0x28, 0x28, 0x28, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, +0xFF, 0x10, 0x10, +0x00, 0x00, 0x00, 0x00, 0xFF, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, +0x3F, 0x00, 0x00, 0x00, +0x10, 0x10, 0x10, 0x1F, 0x10, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, +0x1F, 0x10, 0x1F, 0x10, 0x10, +0x00, 0x00, 0x00, 0x00, 0x3F, 0x28, 0x28, 0x28, 0x28, 0x28, +0x28, 0x28, 0xFF, 0x28, 0x28, 0x28, +0x10, 0x10, 0x10, 0xFF, 0x10, 0xFF, 0x10, 0x10, 0x10, +0x10, 0x10, 0x10, 0xF0, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x1F, 0x10, 0x10, 0x10, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, +0x00, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, +0x07, 0x07, 0x07, 0x07, 0x07, 0x07, +0x07, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x34, +0x4C, 0x4C, 0x32, 0x00, 0x5C, 0x22, 0x22, 0x3C, 0x44, 0x44, 0x78, +0x7E, 0x42, 0x42, 0x40, +0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x02, 0x7C, 0xA8, 0x28, 0x28, 0x44, +0x00, 0x7E, 0x61, +0x30, 0x18, 0x08, 0x10, 0x20, 0x00, 0x00, 0x08, 0x7F, 0x88, 0x88, 0x88, 0x70, +0x00, 0x00, +0x00, 0x22, 0x44, 0x44, 0x7A, 0x80, 0x00, 0x00, 0x00, 0x7C, 0x10, 0x10, 0x10, 0x10, +0x00, +0x1C, 0x08, 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, 0x00, 0x38, 0x44, 0x44, 0x7C, 0x44, 0x44, + +0x3C, 0x66, 0xC3, 0xC3, 0xC3, 0x66, 0x24, 0x66, 0x0C, 0x10, 0x08, 0x1C, 0x22, 0x22, 0x22, +0x1C, +0x00, 0x00, 0x00, 0x00, 0x6C, 0x92, 0x92, 0x6C, 0x00, 0x01, 0x1A, 0x26, 0x2A, 0x32, +0x2C, 0x40, +0x00, 0x18, 0x20, 0x20, 0x30, 0x20, 0x20, 0x18, 0x00, 0x3C, 0x42, 0x42, 0x42, +0x42, 0x42, 0x42, +0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x08, 0x08, 0x3E, +0x08, 0x08, 0x00, 0x3E, +0x00, 0x10, 0x08, 0x04, 0x08, 0x10, 0x00, 0x3E, 0x00, 0x04, 0x08, +0x10, 0x08, 0x04, 0x00, 0x3E, +0x00, 0x06, 0x09, 0x09, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, +0x08, 0x08, 0x08, 0x48, 0x48, 0x30, +0x00, 0x00, 0x08, 0x00, 0x3E, 0x00, 0x08, 0x00, 0x00, +0x60, 0x92, 0x0C, 0x60, 0x92, 0x0C, 0x00, +0x60, 0x90, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x30, 0x78, 0x30, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, +0x00, 0x00, 0x03, 0x04, 0x04, 0xC8, 0x28, 0x10, 0x00, +0x00, 0x00, 0x00, 0x7C, 0x42, 0x42, +0x42, 0x00, 0x18, 0x24, 0x08, 0x10, 0x3C, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x3E, 0x3E, +0x3E, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + diff --git a/lib/VGA/modes.c b/lib/VGA/modes.c index 26cf16f..64b9ffc 100755 --- a/lib/VGA/modes.c +++ b/lib/VGA/modes.c @@ -1,3 +1,7 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ + /* definition des registres de la carte VGA pour differents modes */ #define maxgraphmode 11 diff --git a/lib/cpu.c b/lib/cpu.c index 1073cb7..79f4377 100755 --- a/lib/cpu.c +++ b/lib/cpu.c @@ -1,3 +1,6 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ #include "types.h" #include "cpu.h" #include "cpuid.h" @@ -31,7 +34,6 @@ static u8 *msg[] = { static u8 space[] = " "; /******************************************************************************/ - /* Annule les FLAGs CPU */ bool cansetflag(u32 flag) @@ -42,7 +44,6 @@ bool cansetflag(u32 flag) } /******************************************************************************/ - /* Lance l'instruction CPUID */ void cpuid(u32 op, u32 * eax, u32 * ebx, u32 * ecx, u32 * edx) @@ -51,7 +52,6 @@ void cpuid(u32 op, u32 * eax, u32 * ebx, u32 * ecx, u32 * edx) } /******************************************************************************/ - /* Retourne les informations sur le CPU dans une structure cpuinfo */ u8 getcpuinfos(cpuinfo * proc) @@ -127,7 +127,6 @@ u8 getcpuinfos(cpuinfo * proc) } /******************************************************************************/ - /* Retourne un élément de la pile */ u32 viewstack(u32 pointer) @@ -138,10 +137,9 @@ u32 viewstack(u32 pointer) } /******************************************************************************/ - /* Affiche les registres CPU */ -void dump_regs() +void dump_regs(void) { cli(); u32 eax = 0; @@ -227,3 +225,4 @@ void dump_regs() } sti(); } +/*******************************************************************************/ diff --git a/lib/gdt.c b/lib/gdt.c index c12b3c3..999d201 100755 --- a/lib/gdt.c +++ b/lib/gdt.c @@ -1,3 +1,6 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ #include "gdt.h" #include "asm.h" #include "types.h" @@ -12,7 +15,6 @@ static gdtdes gdt[SIZEGDT]; static struct tss tss0; /*******************************************************************************/ - /* Initialise la GDT */ void initgdt(u32 offset) @@ -44,7 +46,6 @@ void initgdt(u32 offset) } /*******************************************************************************/ - /* Initialise le registre de tâche (TSR) */ void inittr(void) @@ -53,7 +54,6 @@ void inittr(void) } /*******************************************************************************/ - /* Initialise les selecteurs avec la GDT */ void initselectors(u32 executingoffset) @@ -74,7 +74,6 @@ void initselectors(u32 executingoffset) } /*******************************************************************************/ - /* Créé un descripteur GDT */ void makegdtdes(u32 base, u32 limite, u8 acces, u8 flags, gdtdes * desc) diff --git a/lib/interrupts.c b/lib/interrupts.c index ce686ff..57418f1 100755 --- a/lib/interrupts.c +++ b/lib/interrupts.c @@ -1,3 +1,6 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ #include "interrupts.h" #include "types.h" #include "asm.h" @@ -15,7 +18,6 @@ static struct idtr idtreg; static idtdes idt[256]; /******************************************************************************/ - /* Initialise le controleur d'interruption 8259A */ void initpic(void) @@ -59,7 +61,6 @@ void initpic(void) } /******************************************************************************/ - /* Active une IRQ */ void enableirq(u8 irq) @@ -72,7 +73,6 @@ void enableirq(u8 irq) } /******************************************************************************/ - /* Désactive une IRQ */ void disableirq(u8 irq) @@ -98,7 +98,6 @@ void makeidtdes(u32 offset, u16 select, u16 type, idtdes * desc) } /******************************************************************************/ - /* Change une entrée dans l'IDT */ void setidt(u32 offset, u16 select, u16 type, u16 index) @@ -125,7 +124,6 @@ void putidt(u32 offset, u16 select, u16 type, u16 index) } /******************************************************************************/ - /* Affiche une erreur CPU et fige l'ordinateur */ void cpuerror(const u8 * src) @@ -139,7 +137,6 @@ void cpuerror(const u8 * src) } /******************************************************************************/ - /* Déclenché lors de l'appel d'une interruption */ void interruption() @@ -155,7 +152,6 @@ void interruption() } /******************************************************************************/ - /* Les expections */ void exception0() @@ -254,7 +250,6 @@ void exception18() } /******************************************************************************/ - /* Les IRQ par défaut */ void irq0() @@ -492,7 +487,6 @@ void irq15() } /******************************************************************************/ - /* Initialise une IDT */ void initidt(void) @@ -552,12 +546,12 @@ void initidt(void) } /******************************************************************************/ - /* 8253/8254 PIT (Programmable Interval Timer) Timer ajustable */ -void inittimer() +void inittimer(void) { outb(TIMER_MODE, RATE_GENERATOR); outb(TIMER0, (u8) (TIMER_FREQ / HZ)); outb(TIMER0, (u8) ((TIMER_FREQ / HZ) >> 8)); } +/*******************************************************************************/ diff --git a/lib/keyboard.c b/lib/keyboard.c index 85b1e03..c81af97 100755 --- a/lib/keyboard.c +++ b/lib/keyboard.c @@ -1,3 +1,6 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ #include "interrupts.h" #include "types.h" #include "asm.h" @@ -14,7 +17,6 @@ static u8 ptrascii = 0; static u16 kbdstatus, breakcode; /******************************************************************************/ - /* Tables clavier */ static const u8 set1_normal[] = { @@ -116,10 +118,9 @@ u8 *getstring(u8 * temp) } /******************************************************************************/ - /* Fonction qui attend l'appuie d'une touche générant un code ASCII puis le retourne */ -u8 waitascii() +u8 waitascii(void) { u8 oldptrascii = ptrascii; while ((oldptrascii == ptrascii)) ; @@ -127,7 +128,6 @@ u8 waitascii() } /******************************************************************************/ - /* Envoi d'une commande vers le contrôleur de clavier */ void outkbd(u8 port, u8 data) @@ -147,10 +147,9 @@ void outkbd(u8 port, u8 data) } /******************************************************************************/ - /* Redemarre l'ordinateur */ -void reboot() +void reboot(void) { u8 temp; cli(); @@ -169,7 +168,6 @@ void reboot() } /******************************************************************************/ - /* Converti un scancode vers une code ASCII */ unsigned convert(u32 keypressed) @@ -321,10 +319,9 @@ unsigned convert(u32 keypressed) } /******************************************************************************/ - /* Handler d'interruption IRQ 1 pour le clavier */ -void keyboard() +void keyboard(void) { cli(); pushf(); diff --git a/lib/math.c b/lib/math.c index cc21eb7..62087c5 100755 --- a/lib/math.c +++ b/lib/math.c @@ -1,6 +1,11 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ #include "types.h" #include "timer.h" +/*******************************************************************************/ +/* Arithmétique 64 bits */ unsigned long long __udivdi3 (unsigned long long num, unsigned long long den) { @@ -42,7 +47,6 @@ unsigned long long __umoddi3 (unsigned long long n, unsigned long long d) } /******************************************************************************/ - /* Fonction qui retourne le logarithme 2 */ u8 log2(u64 n) @@ -64,11 +68,8 @@ n >>= 1; return logValue + 1; } - - /******************************************************************************/ - /* Fonction qui retourne le logarithme 10 */ u8 log10(u64 n) @@ -87,8 +88,7 @@ return (n >= 10000000000000000000u) ? 19 : (n >= 100000000000000000u) ? 18 : } -/******************************************************************************/ - +/******************************************************************************/ /* Fonction qui retourne la valeur absolue */ u32 abs(int x) @@ -102,16 +102,13 @@ return (u32) x; } - - /******************************************************************************/ - /* Fonction qui initialise le générateur de nombre aléatoire */ static u32 seed = 0x12341234; -void randomize() +void randomize(void) { seed = gettimer(); @@ -120,60 +117,34 @@ seed = gettimer(); /******************************************************************************/ - /* Fonction qui renvoie un nombre aléatoire */ -u32 rand() +u32 rand(void) { - u32 next = seed; - int result; - - next *= 1103515245; - next += 12345; - result = (unsigned int)(next / 65536) % 2048; - - next *= 1103515245; - next += 12345; - result <<= 10; - result ^= (unsigned int)(next / 65536) % 1024; - - next *= 1103515245; - next += 12345; - result <<= 10; - result ^= (unsigned int)(next / 65536) % 1024; - - seed = next; - - return result; } - - /******************************************************************************/ - /* Fonction qui renvoie un nombre aléatoire borné */ u32 random(u32 lower, u32 upper) -{ - +{ return (rand() % (upper - lower + 1)) + lower; - } - +/*******************************************************************************/ diff --git a/lib/memory.c b/lib/memory.c index 0f7dcc8..8324166 100755 --- a/lib/memory.c +++ b/lib/memory.c @@ -1,47 +1,47 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ #include "types.h" /*******************************************************************************/ - /* Copie un octet une ou plusieurs fois en mémoire */ - void memset(void *dst, u8 val, u32 count, u32 size) -{ - u8 * temp; - for (temp = (u8 *) dst; count != 0; count--) { - temp += size; - *temp = val; - } - } - - -/*******************************************************************************/ - + +void memset(void *dst, u8 val, u32 count, u32 size) +{ +u8 * temp; +for (temp = (u8 *) dst; count != 0; count--) { +temp += size; +*temp = val; +} +} + +/*******************************************************************************/ /* Copie une portion de mémoire vers une autre */ - void memcpy(void *src, void *dst, u32 count, u32 size) -{ - char *s, *d; - u32 i; - s = (u8 *) src; - d = (u8 *) dst; - for (i = 0; i < count; i++) { - *(d + i * size) = *(s + i); - } - } - - -/*******************************************************************************/ - + +void memcpy(void *src, void *dst, u32 count, u32 size) +{ +char *s, *d; +u32 i; +s = (u8 *) src; +d = (u8 *) dst; +for (i = 0; i < count; i++) { +*(d + i * size) = *(s + i); +} +} + +/*******************************************************************************/ /* Compare 2 portions de mémoire */ - u32 memcmp(void *src, void *dst, u32 count, u32 size) -{ - const u8 *mem1 = (const u8 *)src; - const u8 *mem2 = (const u8 *)dst; - for (; count != 0; count--) { - if (*mem1 != *mem2) - return *mem1 - *mem2; - mem1 += size; - mem2 += size; - } - } - - + +u32 memcmp(void *src, void *dst, u32 count, u32 size) +{ +const u8 *mem1 = (const u8 *)src; +const u8 *mem2 = (const u8 *)dst; +for (; count != 0; count--) { +if (*mem1 != *mem2) +return *mem1 - *mem2; +mem1 += size; +mem2 += size; +} +} + /*******************************************************************************/ diff --git a/lib/mouse.c b/lib/mouse.c index bf63bc2..c1db4c4 100755 --- a/lib/mouse.c +++ b/lib/mouse.c @@ -1,3 +1,6 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ #include "types.h" #include "asm.h" #include "mouse.h" @@ -6,10 +9,9 @@ #include "video.h" /******************************************************************************/ - /* initialise la souris */ -bool initmouse() +bool initmouse(void) { u16 i = 1024; @@ -42,7 +44,6 @@ static bool mousebut1 = 0, mousebut2 = 0, mousebut3 = 0; static u8 speed = 6; /******************************************************************************/ - /* ecriture vers souris */ void outmseack(u8 value) @@ -61,10 +62,9 @@ void outmsecmd(u8 command) } /******************************************************************************/ - /* Handler d'interruption de la souris IRQ 12 */ -void mouse() +void mouse(void) { cli(); pushf(); @@ -144,3 +144,5 @@ popl %bx;\ iret;"); iret(); } + +/*******************************************************************************/ diff --git a/lib/multiboot.c b/lib/multiboot.c index 454d503..019c9fc 100644 --- a/lib/multiboot.c +++ b/lib/multiboot.c @@ -1,12 +1,22 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ + #include "multiboot2.h" static u32 infobloc; +/*******************************************************************************/ +/* Initialise avec l'adresse du bloc multiboot2 */ + void initmultiboot(const u32 addr) { infobloc=addr; } +/*******************************************************************************/ +/* Affiche les informations multiboot2 */ + void getbootinfo(void) { u32 addr=infobloc; @@ -150,4 +160,4 @@ for (tag = (struct multiboot_tag *) (addr + 8); } } } - +/*******************************************************************************/ diff --git a/lib/shell.c b/lib/shell.c index 06637fa..4bff224 100644 --- a/lib/shell.c +++ b/lib/shell.c @@ -1,3 +1,6 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ #include "vga.h" #include "video.h" #include "interrupts.h" @@ -22,7 +25,6 @@ static command commands[] = { }; /*******************************************************************************/ - /* Shell, traite les commandes */ void shell() @@ -56,7 +58,6 @@ void shell() /*******************************************************************************/ /* Information sur le démarrage */ - int info() { getbootinfo(); @@ -64,7 +65,6 @@ int info() } /*******************************************************************************/ - /* Affiche les registres */ int regs() @@ -76,7 +76,6 @@ int regs() /*******************************************************************************/ /* Change le mode */ - int mode() { setvmode(0x84); @@ -84,7 +83,6 @@ int mode() } /*******************************************************************************/ - /* Efface l'écran */ int clear() @@ -95,7 +93,6 @@ int clear() } /*******************************************************************************/ - /* Redemarre */ int rebootnow() @@ -107,7 +104,6 @@ int rebootnow() } /*******************************************************************************/ - /* Test les fonctionnalité 2D graphiques */ int test2d() @@ -130,7 +126,6 @@ int test2d() } /*******************************************************************************/ - /* Lit l'IDT et l'affiche */ int readidt() @@ -170,7 +165,6 @@ int readidt() } /*******************************************************************************/ - /* Lit les descripteurs GDT et les affiche */ int readgdt() @@ -236,7 +230,6 @@ int readgdt() } /*******************************************************************************/ - /* Detecte et affiche les information sur le CPU */ int detectcpu() @@ -251,3 +244,5 @@ int detectcpu() &cpu.techs); return 0; } + +/*******************************************************************************/ diff --git a/lib/string.c b/lib/string.c index c845f76..f36a508 100755 --- a/lib/string.c +++ b/lib/string.c @@ -1,7 +1,9 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ #include /******************************************************************************/ - /* Compare 2 chaines de caractère et renvoie la premiere distance (diff) */ s8 strcmp(const u8 * src, const u8 * dest) @@ -16,7 +18,6 @@ s8 strcmp(const u8 * src, const u8 * dest) } /******************************************************************************/ - /* Trouve la premiere occurence d'un caractère dans une chaine et renvoie un pointeur */ u8 *strchr(const u8 * src, u8 achar) @@ -28,7 +29,6 @@ u8 *strchr(const u8 * src, u8 achar) } /******************************************************************************/ - /* Trouve la premiere occurence d'un caractère dans une chaine */ u32 strchrpos(const u8 * src, u8 achar) @@ -41,7 +41,6 @@ u32 strchrpos(const u8 * src, u8 achar) } /******************************************************************************/ - /* Renvoie la taille de la chaine */ u32 strlen(const u8 * src) @@ -53,7 +52,6 @@ u32 strlen(const u8 * src) } /******************************************************************************/ - /* copie une chaine dans une autre */ u8 *strcpy(const u8 * src, u8 * dest) { @@ -63,7 +61,6 @@ u8 *strcpy(const u8 * src, u8 * dest) } /******************************************************************************/ - /* copie une portion limité d'une chaine asciiZ*/ u8 *strncpy(const u8 * src, u8 * dest, u32 count) @@ -79,7 +76,6 @@ u8 *strncpy(const u8 * src, u8 * dest, u32 count) } /******************************************************************************/ - /* concatene 2 chaines de caractère */ u8 *strcat(const u8 * src, u8 * dest) @@ -92,7 +88,6 @@ u8 *strcat(const u8 * src, u8 * dest) } /******************************************************************************/ - /* Met en minuscule */ void strtolower(u8 * src) @@ -105,7 +100,6 @@ void strtolower(u8 * src) } /******************************************************************************/ - /* Met en majuscule */ void strtoupper(u8 * src) @@ -118,7 +112,6 @@ void strtoupper(u8 * src) } /******************************************************************************/ - /* inverse la casse */ void strinvertcase(u8 * src) @@ -133,7 +126,6 @@ void strinvertcase(u8 * src) } /******************************************************************************/ - /* Met une majuscule et met le reste en minuscule */ void stronecase(u8 * src) @@ -148,7 +140,6 @@ void stronecase(u8 * src) } /******************************************************************************/ - /* Fixe la taille de la chaine */ void strsetlen(u8 * src, u32 size) @@ -157,7 +148,6 @@ void strsetlen(u8 * src, u32 size) } /******************************************************************************/ - /* Inverse la chaine */ void strinvert(u8 * src) @@ -174,7 +164,6 @@ void strinvert(u8 * src) } /******************************************************************************/ - /* Remplace tout les caractères rechercher par un autre */ void strreplace(u8 * src, u8 search, u8 replaced) @@ -187,7 +176,6 @@ void strreplace(u8 * src, u8 search, u8 replaced) } /******************************************************************************/ - /* Rempli de caractère */ u8 *strfill(u8 * dst, u8 pattern, u32 size) @@ -200,7 +188,6 @@ u8 *strfill(u8 * dst, u8 pattern, u32 size) } /******************************************************************************/ - /* Renvoie la partie gauche d'une chaine */ void strleft(u8 * src, u8 * dest, u32 size) @@ -212,7 +199,6 @@ void strleft(u8 * src, u8 * dest, u32 size) } /******************************************************************************/ - /* Renvoie la partie droite d'une chaine */ void strright(u8 * src, u8 * dest, u32 size) @@ -225,7 +211,6 @@ void strright(u8 * src, u8 * dest, u32 size) } /******************************************************************************/ - /* Supprime une portion de chaine */ void strdelete(u8 * src, u32 index, u32 size) @@ -238,7 +223,6 @@ void strdelete(u8 * src, u32 index, u32 size) } /******************************************************************************/ - /* Insert une portion dans la chaine */ void strinsert(u8 * src, u8 * dest, u32 index) @@ -254,7 +238,6 @@ void strinsert(u8 * src, u8 * dest, u32 index) } /******************************************************************************/ - /* Supprime les délimiteurs consécutifs */ void strcompressdelimiter(u8 * src, u8 delim) @@ -270,7 +253,6 @@ void strcompressdelimiter(u8 * src, u8 delim) } /******************************************************************************/ - /* Récupérère l'élément N d'une liste utilisant un délimiteur */ u8 *strgetitem(u8 * src, u8 * dest, u8 delim, u32 index) @@ -284,7 +266,6 @@ u8 *strgetitem(u8 * src, u8 * dest, u8 delim, u32 index) } /******************************************************************************/ - /* Récupérère un pointeur sur l'élément N d'une liste utilisant un délimiteur */ u8 *strgetpointeritem(u8 * src, u8 delim, u32 index) @@ -299,7 +280,6 @@ u8 *strgetpointeritem(u8 * src, u8 delim, u32 index) } /******************************************************************************/ - /* Récupérère le nombre d'éléments d'une liste utilisant un délimiteur */ u32 strgetnbitems(u8 * src, u8 delim) @@ -317,7 +297,6 @@ u32 strgetnbitems(u8 * src, u8 delim) } /******************************************************************************/ - /* Renvoie la base minimum du nombre */ u8 base[] = " 0123456789ABCDEF\000"; @@ -346,7 +325,6 @@ u8 strgetminbase(u8 * src) } /******************************************************************************/ - /* Renvoie la base du nombre */ u8 hexa[] = "0x\000"; @@ -383,7 +361,6 @@ u8 strgetbase(u8 * src) } /******************************************************************************/ - /* Transforme une chaine en nombre */ u32 strtoint(u8 * src) @@ -411,3 +388,5 @@ u32 strtoint(u8 * src) } return result; } + +/*******************************************************************************/ diff --git a/lib/syscall.c b/lib/syscall.c index 0989132..0841e94 100644 --- a/lib/syscall.c +++ b/lib/syscall.c @@ -1,3 +1,6 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ #include #include #include @@ -33,3 +36,5 @@ void initsyscall(void) wrmsr(0x175, STACK_OFFSET, 0x0); wrmsr(0x176, &sysenter_handler, 0x0); } + +/*******************************************************************************/ diff --git a/lib/timer.c b/lib/timer.c index 53cd22d..4296924 100755 --- a/lib/timer.c +++ b/lib/timer.c @@ -1,3 +1,6 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ #include "interrupts.h" #include "types.h" #include "asm.h" @@ -12,19 +15,17 @@ static u8 curspos = 0; static u32 time = 0; /******************************************************************************/ - /* Récupère la valeur du timer */ -u32 gettimer() +u32 gettimer(void) { return time; } /******************************************************************************/ - /* Handler d'interruption de la souris IRQ 0 */ -void timer() +void timer(void) { cli(); pushf(); @@ -39,3 +40,5 @@ void timer() asm("addl $0x0C, %esp;"); iret(); } + +/*******************************************************************************/ diff --git a/lib/types.c b/lib/types.c index 93b8023..dff0366 100755 --- a/lib/types.c +++ b/lib/types.c @@ -1,3 +1,6 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ #include char ctype[] = { @@ -43,3 +46,4 @@ char ctype[] = { /* 224 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 240 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; +/*******************************************************************************/ diff --git a/lib/vga.c b/lib/vga.c index 32ea994..602882b 100755 --- a/lib/vga.c +++ b/lib/vga.c @@ -1,3 +1,6 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ #include "vga.h" #include "memory.h" #include "asm.h" @@ -28,43 +31,38 @@ static u32 basemem; /* Adresse de la m static bool scrolling, graphic, blink; /* Activation du défilement, Flag du mode graphique */ /*******************************************************************************/ - /* Donne la resolution max horizontale */ -u16 getxres() +u16 getxres(void) { return resX; } /*******************************************************************************/ - /* Donne la profondeur en bit */ -u8 getdepth() +u8 getdepth(void) { return color; } /*******************************************************************************/ - /* Donne la resolution max verticale */ -u16 getyres() +u16 getyres(void) { return resY - splitY; } /*******************************************************************************/ - /* Donne le nombre max de page ecran dispo */ -u16 getnbpages() +u16 getnbpages(void) { return pages; } /*******************************************************************************/ - /* Fixe la page ecran de travail */ void setpage(u8 page) @@ -74,16 +72,14 @@ void setpage(u8 page) } /*******************************************************************************/ - /* Recupere la page ecran de travail */ -u8 getpage() +u8 getpage(void) { return activepage; } /*******************************************************************************/ - /* Affiche la page ecran specifié */ void showpage(u8 page) @@ -100,7 +96,6 @@ void showpage(u8 page) } /*******************************************************************************/ - /* Sépare l'écran en 2 a partir de la ligne Y */ void split(u16 y) @@ -126,10 +121,9 @@ void split(u16 y) } /*******************************************************************************/ - /* Sépare l'écran en 2 a partir de la ligne Y */ -void unsplit() +void unsplit(void) { /* line compare pour ligne atteinte */ outb(ccrt, 0x18); @@ -147,28 +141,25 @@ void unsplit() } /*******************************************************************************/ - /* Attend la retrace verticale */ -void waitvretrace() +void waitvretrace(void) { while ((inb(state) & 8) == 0) ; } /*******************************************************************************/ - /* Attend la retrace horizontale */ -void waithretrace() +void waithretrace(void) { while ((inb(state) & 1) == 0) ; } /*******************************************************************************/ - /* Active l'affichage du curseur de texte */ -void enablecursor() +void enablecursor(void) { u8 curs; /* active le curseur hardware */ @@ -178,10 +169,9 @@ void enablecursor() } /*******************************************************************************/ - /* Desactive l'affichage du curseur de texte */ -void disablecursor() +void disablecursor(void) { u8 curs; /* Desactive le curseur hardware */ @@ -191,10 +181,9 @@ void disablecursor() } /*******************************************************************************/ - /* Active le scrolling en cas de débordement d'écran */ -void enablescroll() +void enablescroll(void) { scrolling = true; } @@ -203,13 +192,12 @@ void enablescroll() /* Desactive le scrolling en cas de débordement d'écran */ -void disablescroll() +void disablescroll(void) { scrolling = false; } /*******************************************************************************/ - /* Utilise le plan de bit spécifié */ void useplane(u8 plan) @@ -226,7 +214,6 @@ void useplane(u8 plan) } /*******************************************************************************/ - /* Renvoie l'adresse du segment video */ u32 getbase(void) @@ -252,7 +239,6 @@ u32 getbase(void) } /*******************************************************************************/ - /* efface l'écran */ void (*fill) (u8 attrib); @@ -281,7 +267,6 @@ void fill_unchain(u8 attrib) } /*******************************************************************************/ - /* fixe la position du curseur texte */ void gotoscr(u16 x, u16 y) @@ -298,7 +283,6 @@ void gotoscr(u16 x, u16 y) } /*******************************************************************************/ - /* Fait defiler l'ecran de n lignes vers le haut */ void (*scroll) (u8 lines, u8 attrib); @@ -348,7 +332,6 @@ void scroll_text(u8 lines, u8 attrib) } /*******************************************************************************/ - /* Affiche le caractère a l'écran */ void (*showchar) (u16 coordx, u16 coordy, u8 thechar, u8 attrib); @@ -381,7 +364,6 @@ void showchar_text(u16 coordx, u16 coordy, u8 thechar, u8 attrib) } /*******************************************************************************/ - /* Recupere le caractère a l'écran */ u8(*getchar) (u16 coordx, u16 coordy); @@ -396,7 +378,6 @@ u8 getchar_text(u16 coordx, u16 coordy) } /*******************************************************************************/ - /* Recupere les attributs a l'écran */ u8(*getattrib) (u16 coordx, u16 coordy); @@ -411,7 +392,6 @@ u8 getattrib_text(u16 coordx, u16 coordy) } /*******************************************************************************/ - /* Ecrit un pixel a l'écran */ void (*writepxl) (u16 x, u16 y, u32 c); @@ -472,10 +452,9 @@ void writepxl_8bitsunchain(u16 x, u16 y, u32 c) } /*******************************************************************************/ - /* Met le mode video suivant */ -u8 nextvmode() +u8 nextvmode(void) { u8 mode = getvmode(); mode++; @@ -491,7 +470,6 @@ u8 nextvmode() } /*******************************************************************************/ - /* Change le mode video courant */ u32 setvmode(u8 mode) @@ -607,16 +585,14 @@ u32 setvmode(u8 mode) } /*******************************************************************************/ - /* Récupère le mode vidéo en cours */ -u8 getvmode() +u8 getvmode(void) { return vmode; } /*******************************************************************************/ - /* Charge une nouvelle police de caractère */ u32 loadfont(u8 * def, u8 size, u8 font) @@ -669,10 +645,9 @@ u32 loadfont(u8 * def, u8 size, u8 font) } /*******************************************************************************/ - /* Récupere le N° de la police de caractère en cours d'utilisation */ -u8 getfont() +u8 getfont(void) { u8 num, tmp; outb(sequencer, 3); @@ -682,10 +657,9 @@ u8 getfont() } /*******************************************************************************/ - /* Récupere le N° de la police de caractère en cours d'utilisation */ -u8 getfont2() +u8 getfont2(void) { u8 num, tmp; outb(sequencer, 3); @@ -695,7 +669,6 @@ u8 getfont2() } /*******************************************************************************/ - /* Fixe le N° de la police de caractère a utiliser */ void setfont(u8 num) @@ -708,7 +681,6 @@ void setfont(u8 num) } /*******************************************************************************/ - /* Fixe le N° de la police de caractère a utiliser */ void setfont2(u8 num) @@ -721,27 +693,24 @@ void setfont2(u8 num) } /*******************************************************************************/ - /* Autorise le clignotement */ -void enableblink() +void enableblink(void) { outb(ccrt, 0x10); outb(ccrt + 1, (inb(sequencer + 1) | 0x04)); } /*******************************************************************************/ - /* Annule le clignotement */ -void disableblink() +void disableblink(void) { outb(ccrt, 0x10); outb(ccrt + 1, (inb(sequencer + 1) & ~0x04)); } /*******************************************************************************/ - /* Envoie une série d'octet a destination d'une portion de mémoire vers le registre spécifié */ @@ -755,7 +724,6 @@ void outreg(u16 port, u8 * src, u16 num) } /*******************************************************************************/ - /* Envoie une série d'octet a destination d'une portion de mémoire vers le registre spécifié (accés data et index confondu) */ @@ -770,7 +738,6 @@ void outregsame(u16 port, u8 * src, u16 num) } /*******************************************************************************/ - /* Récupère une série d'octet en provenance d'un registre spécifié vers portion de mémoire */ @@ -784,7 +751,6 @@ void inreg(u16 port, u8 * src, u16 num) } /*******************************************************************************/ - /* Récupère une série d'octet en provenance d'un registre spécifié vers portion de mémoire (accés data et index confondu) */ diff --git a/lib/video.c b/lib/video.c index 16335af..3fd6c5b 100755 --- a/lib/video.c +++ b/lib/video.c @@ -1,3 +1,6 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ #include "vga.h" #include "video.h" #include "stdarg.h" @@ -23,7 +26,6 @@ console vc[8] = { u8 usedvc = 0; /*******************************************************************************/ - /* Fixe l'attribut courant */ void setattrib(u8 att) @@ -55,7 +57,6 @@ void setattrib(u8 att) } /*******************************************************************************/ - /* gere l'ansi */ bool makeansi(u8 c) @@ -194,7 +195,6 @@ bool makeansi(u8 c) } /*******************************************************************************/ - /* Change la console en cours d'utilisation */ void changevc(u8 avc) @@ -206,7 +206,6 @@ void changevc(u8 avc) } /*******************************************************************************/ - /* affiche un caractère a l'écran */ void putchar(u8 thechar) @@ -285,7 +284,6 @@ void putchar(u8 thechar) } /*******************************************************************************/ - /* affiche une chaine de caractère a l'écran */ u32 print(u8 * string) @@ -301,11 +299,10 @@ u32 print(u8 * string) } /*******************************************************************************/ +/* affiche une chaine de caractère formaté a l'ecran */ #define buffersize 1024 -/* affiche une chaine de caractère formaté a l'ecran */ - u32 printf(const u8 * string, ...) { va_list args,argstemp; @@ -509,7 +506,6 @@ u32 printf(const u8 * string, ...) } /*******************************************************************************/ - /* converti un entier non signé en chaine de caractère */ u8 *itoa(u64 orignum, u8 * str, u8 base, u64 dim, u8 achar) @@ -554,7 +550,6 @@ u8 *itoa(u64 orignum, u8 * str, u8 base, u64 dim, u8 achar) } /*******************************************************************************/ - /* converti un entier en chaine de caractère */ u8 *sitoa(u64 num, u8 * str, u64 dim) @@ -583,3 +578,4 @@ u8 *sitoa(u64 num, u8 * str, u64 dim) strinvert(str); return str; } +/*******************************************************************************/ diff --git a/system/ansi.c b/system/ansi.c index e90091c..b688ef4 100755 --- a/system/ansi.c +++ b/system/ansi.c @@ -1,3 +1,7 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ + u8 ansilogo[5056] = { 0x1B, 0x5B, 0x30, 0x6D, 0x1B, 0x5B, 0x31, 0x6D, 0xDA, 0x1B, 0x5B, 0x30, 0x6D, 0xC4, 0xC4, 0x1B, diff --git a/system/multiboot.asm b/system/multiboot.asm index ba7107b..befd290 100644 --- a/system/multiboot.asm +++ b/system/multiboot.asm @@ -1,3 +1,6 @@ +;/*******************************************************************************/ +;/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +;/* */ [BITS 32] SECTION .multiboot diff --git a/system/system.c b/system/system.c index 2edf954..f94bc73 100755 --- a/system/system.c +++ b/system/system.c @@ -1,3 +1,6 @@ +/*******************************************************************************/ +/* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ +/* */ #include "vga.h" #include "video.h" #include "interrupts.h"