+++ /dev/null
-\r
-#include "core.h"\r
-\r
-void boxfill8(uchar *vram, int xsize, uchar c, int x0, int y0, int x1, int y1)\r
-{\r
- int x, y;\r
-\r
- y1 -= 1;\r
- x1 -= 1;\r
-\r
- for (y = y0; y <= y1; y++) {\r
- for (x = x0; x <= x1; x++)\r
- vram[y * xsize + x] = c;\r
- }\r
-\r
- return;\r
-}\r
-\r
-void init_desktop8(uchar *vram, uint xsize, uint ysize)\r
-{\r
- boxfill8(vram, xsize, DESKTOP_COL8, 0, 0, xsize, ysize);\r
-\r
- return; \r
-}\r
-\r
-void init_taskbar8(uchar *vram, uint xsize)\r
-{\r
- boxfill8(vram, xsize, COL8_FFFFFF, 0, 0, xsize, TASKBAR_HEIGHT);\r
- boxfill8(vram, xsize, COL8_FFFFFF, 0, 0, xsize - 2, TASKBAR_HEIGHT - 2);\r
- boxfill8(vram, xsize, TASKBAR_COL8, 2, 2, xsize - 2, TASKBAR_HEIGHT - 2);\r
-\r
- return;\r
-}\r
-\r
-void putfont8(uchar *vram, int xsize, int x, int y, uchar c, uchar *font)\r
-{\r
- int i;\r
- uchar d;\r
- uchar *p;\r
- for (i = 0; i < 16; i++) {\r
- p = vram + (y + i) * xsize + x;\r
- d = font[i];\r
- if ((d & 0x80) != 0) { p[0] = c; }\r
- if ((d & 0x40) != 0) { p[1] = c; }\r
- if ((d & 0x20) != 0) { p[2] = c; }\r
- if ((d & 0x10) != 0) { p[3] = c; }\r
- if ((d & 0x08) != 0) { p[4] = c; }\r
- if ((d & 0x04) != 0) { p[5] = c; }\r
- if ((d & 0x02) != 0) { p[6] = c; }\r
- if ((d & 0x01) != 0) { p[7] = c; }\r
- }\r
- return;\r
-}\r
-\r
-void putfonts8_asc(uchar *vram, int xsize, int x, int y, uchar c, const uchar *s)\r
-{\r
- for (; *s != 0x00; s++) {\r
- putfont8(vram, xsize, x, y, c, hankaku + *s * 16);\r
- x += 8;\r
- }\r
-\r
- return;\r
-}\r
-\r
-void init_mouse_cursor8(uchar *mouse)\r
-{\r
- int x, y;\r
-\r
- for (y = 0; y < 24; y++) {\r
- for (x = 0; x < 24; x++) {\r
- if (cursor[y][x] == '*') {\r
- mouse[y * 24 + x] = COL8_000000;\r
- }\r
- if (cursor[y][x] == 'O') {\r
- mouse[y * 24 + x] = COL8_FFFFFF;\r
- }\r
- if (cursor[y][x] == '.') {\r
- mouse[y * 24 + x] = INV_COL8;\r
- }\r
- }\r
- }\r
-\r
- return;\r
-}\r
-\r
-void putblock8_8(uchar *vram, int vxsize, int pxsize,int pysize, int px0, int py0, uchar *buf, int bxsize)\r
-{\r
- int x, y;\r
-\r
- for (y = 0; y < pysize; y++) {\r
- for (x = 0; x < pxsize; x++) {\r
- vram[(py0 + y) * vxsize + (px0 + x)] = buf[y * bxsize + x];\r
- }\r
- }\r
-\r
- return;\r
-}\r
-\r
-void init_palette(void)\r
-{\r
- static uchar table_rgb[16 * 3] = {\r
- 0x00, 0x00, 0x00,\r
- 0xff, 0x00, 0x00,\r
- 0x00, 0xff, 0x00,\r
- 0xff, 0xff, 0x00,\r
- 0x00, 0x00, 0xff,\r
- 0xff, 0x00, 0xff,\r
- 0x00, 0xff, 0xff,\r
- 0xff, 0xff, 0xff,\r
- 0xc6, 0xc6, 0xc6,\r
- 0x84, 0x00, 0x00,\r
- 0x00, 0x84, 0x00,\r
- 0x84, 0x84, 0x00,\r
- 0x00, 0x00, 0x84,\r
- 0x84, 0x00, 0x84,\r
- 0x00, 0x84, 0x84,\r
- 0x84, 0x84, 0x84\r
- };\r
- uchar table2[216 * 3];\r
- int r, g, b;\r
-\r
- set_palette(0, 15, table_rgb);\r
- for (b = 0; b < 6; b++) {\r
- for (g = 0; g < 6; g++) {\r
- for (r = 0; r < 6; r++) {\r
- table2[(r + g * 6 + b * 36) * 3 + 0] = r * 51;\r
- table2[(r + g * 6 + b * 36) * 3 + 1] = g * 51;\r
- table2[(r + g * 6 + b * 36) * 3 + 2] = b * 51;\r
- }\r
- }\r
- }\r
- set_palette(16, 231, table2);\r
-\r
- return;\r
-}\r
-\r
-void set_palette(int start, int end, uchar *rgb)\r
-{\r
- int i, eflags;\r
-\r
- eflags = io_load_eflags();\r
- io_cli(); \r
- io_out8(0x03c8, start);\r
- for (i = start; i <= end; i++) {\r
- io_out8(0x03c9, rgb[0] >> 2);\r
- io_out8(0x03c9, rgb[1] >> 2);\r
- io_out8(0x03c9, rgb[2] >> 2);\r
- rgb += 3;\r
- }\r
- io_store_eflags(eflags);\r
- return;\r
-}\r