+++ /dev/null
-\r
-#include "core.h"\r
-\r
-void (*Draw_Put_String)(void *vram, uint xsize, uint x, uint y, uint c, const uchar *s);\r
-void (*Draw_Fill_Rectangle)(void *vram, uint xsize, uint c, uint x0, uint y0, uint x1, uint y1);\r
-void (*Draw_Slide_Line)(void *vram, uint xsize, uint ysize, uint vxsize, uint px, uint py);\r
-\r
-void Initialise_Graphic(uint bpp)\r
-{\r
- if(bpp == 8){\r
- Draw_Initialise_Palette();\r
- Draw_Put_String = Draw_Put_String_08;\r
- Draw_Fill_Rectangle = Draw_Fill_Rectangle_08;\r
- Draw_Slide_Line = Draw_Slide_Line_08;\r
- } else if(bpp == 16){\r
- Draw_Put_String = Draw_Put_String_16;\r
- Draw_Fill_Rectangle = Draw_Fill_Rectangle_16;\r
- Draw_Slide_Line = Draw_Slide_Line_16;\r
- } else if(bpp == 32){\r
- Draw_Put_String = Draw_Put_String_32;\r
- Draw_Fill_Rectangle = Draw_Fill_Rectangle_32;\r
- Draw_Slide_Line = Draw_Slide_Line_32;\r
- }\r
- return;\r
-}\r
-\r
-uchar RGB_32_To_08(uint c32)\r
-{\r
- uchar c8;\r
- uchar c[4];\r
-\r
- c[3] = (c32 << 24) >> 24;\r
- c[2] = (c32 << 16) >> 24;\r
- c[1] = (c32 << 8) >> 24;\r
- c[0] = (c32 >> 24);\r
-\r
- c[1] = c[1] / 51;\r
- c[2] = c[2] / 51;\r
- c[3] = c[3] / 51;\r
-\r
- c8 = (c[1] + c[2] * 6 + c[3] * 36) + 16;\r
-\r
- return c8;\r
-}\r
-\r
-uchar RGB_32_To_08_xy(uint c32, int x, int y)\r
-{\r
- static int table[4] = { 3, 1, 0, 2 };\r
- uchar c8;\r
- uchar c[4];\r
- int i;\r
-\r
- c[3] = (c32 << 24) >> 24;\r
- c[2] = (c32 << 16) >> 24;\r
- c[1] = (c32 << 8) >> 24;\r
- c[0] = (c32 >> 24);\r
-\r
- x &= 1; /* \8bô\90\94\82©\8aï\90\94\82© */\r
- y &= 1;\r
-\r
- i = table[x + y * 2]; /* \92\86\8aÔ\90F\82ð\8dì\82é\82½\82ß\82Ì\92è\90\94 */\r
- c[1] = (c[1] * 21) / 256; /* \82±\82ê\82Å 0\81`20 \82É\82È\82é */\r
- c[2] = (c[2] * 21) / 256;\r
- c[3] = (c[3] * 21) / 256;\r
- c[1] = (c[1] + i) / 4; /* \82±\82ê\82Å 0\81`5 \82É\82È\82é */\r
- c[2] = (c[2] + i) / 4;\r
- c[3] = (c[3] + i) / 4;\r
-\r
- c8 = 16 + c[1] + c[2] * 6 + c[3] * 36;\r
-\r
- return c8;\r
-}\r
-\r
-ushort RGB_32_To_16(uint c32)\r
-{\r
- ushort c16;\r
- uchar c[4];\r
-\r
- c[3] = (c32 << 24) >> 24;\r
- c[2] = (c32 << 16) >> 24;\r
- c[1] = (c32 << 8) >> 24;\r
- c[0] = (c32 >> 24);\r
-\r
- c16 = ((c[1] >> 3) << 11 | (c[2] >> 2) << 5 | (c[3] >> 3));\r
- \r
- return c16;\r
-}\r
-\r
-uchar Emergency_Out_Count;\r
-\r
-void Emergency_Out_Reset(void)\r
-{\r
- Emergency_Out_Count = 0;\r
- return;\r
-}\r
-\r
-int Emergency_Out(const uchar *format, ...)\r
-{\r
- int i;\r
- va_list ap;\r
- uchar s[256];\r
- DATA_VESAInfo *vesa = (DATA_VESAInfo *) ADR_VESAINFO;\r
- DATA_BootInfo *boot = (DATA_BootInfo *) ADR_BOOTINFO;\r
-\r
- va_start(ap, format);\r
- i = vsprintf(s, format, ap);\r
- va_end(ap);\r
-\r
- Draw_Fill_Rectangle(vesa->PhysBasePtr, boot->scrnx, 0x000000, 0, Emergency_Out_Count << 4, boot->scrnx - 1, (Emergency_Out_Count << 4) + 15);\r
- Draw_Put_String(vesa->PhysBasePtr, boot->scrnx, 0, Emergency_Out_Count << 4, 0xFFFFFF, s);\r
-\r
- if(Emergency_Out_Count < 12){\r
- Emergency_Out_Count++;\r
- }\r
-\r
- return i;\r
-}\r