通过指针取值

This commit is contained in:
Yourtion
2014-09-10 17:16:24 +08:00
parent a53c79e14c
commit 1b1d5d12b7

View File

@@ -51,34 +51,34 @@ void HariMain(void)
void init_palette(void)
{
static unsigned char table_rgb[16 * 3] = {
0x00, 0x00, 0x00, /* 0: */
0xff, 0x00, 0x00, /* 1:明るい赤 */
0x00, 0xff, 0x00, /* 2:明るい緑 */
0xff, 0xff, 0x00, /* 3:明るい黄色 */
0x00, 0x00, 0xff, /* 4:明るい青 */
0xff, 0x00, 0xff, /* 5:明るい紫 */
0x00, 0xff, 0xff, /* 6:明るい水色 */
0xff, 0xff, 0xff, /* 7: */
0xc6, 0xc6, 0xc6, /* 8:明るい灰色 */
0x84, 0x00, 0x00, /* 9:暗い赤 */
0x00, 0x84, 0x00, /* 10:暗い緑 */
0x84, 0x84, 0x00, /* 11:暗い黄色 */
0x00, 0x00, 0x84, /* 12:暗い青 */
0x84, 0x00, 0x84, /* 13:暗い紫 */
0x00, 0x84, 0x84, /* 14:暗い水色 */
0x84, 0x84, 0x84 /* 15:暗い灰色 */
0x00, 0x00, 0x00, /* 0:<EFBFBD><EFBFBD> */
0xff, 0x00, 0x00, /* 1:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
0x00, 0xff, 0x00, /* 2:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
0xff, 0xff, 0x00, /* 3:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>F */
0x00, 0x00, 0xff, /* 4:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
0xff, 0x00, 0xff, /* 5:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
0x00, 0xff, 0xff, /* 6:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>F */
0xff, 0xff, 0xff, /* 7:<EFBFBD><EFBFBD> */
0xc6, 0xc6, 0xc6, /* 8:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>D<EFBFBD>F */
0x84, 0x00, 0x00, /* 9:<EFBFBD>Â<EFBFBD><EFBFBD><EFBFBD> */
0x00, 0x84, 0x00, /* 10:<EFBFBD>Â<EFBFBD><EFBFBD><EFBFBD> */
0x84, 0x84, 0x00, /* 11:<EFBFBD>Â<EFBFBD><EFBFBD><EFBFBD><EFBFBD>F */
0x00, 0x00, 0x84, /* 12:<EFBFBD>Â<EFBFBD><EFBFBD><EFBFBD> */
0x84, 0x00, 0x84, /* 13:<EFBFBD>Â<EFBFBD><EFBFBD><EFBFBD> */
0x00, 0x84, 0x84, /* 14:<EFBFBD>Â<EFBFBD><EFBFBD><EFBFBD><EFBFBD>F */
0x84, 0x84, 0x84 /* 15:<EFBFBD>Â<EFBFBD><EFBFBD>D<EFBFBD>F */
};
set_palette(0, 15, table_rgb);
return;
/* static char 命令は、データにしか使えないけどDB命令相当 */
/* static char <EFBFBD><EFBFBD><EFBFBD>߂́A<EFBFBD>f<EFBFBD>[<5B>^<5E>ɂ<EFBFBD><C982><EFBFBD><EFBFBD>g<EFBFBD><67><EFBFBD>Ȃ<EFBFBD><C882><EFBFBD><EFBFBD><EFBFBD>DB<44><42><EFBFBD>ߑ<EFBFBD><DF91><EFBFBD> */
}
void set_palette(int start, int end, unsigned char *rgb)
{
int i, eflags;
eflags = io_load_eflags(); /* 割り込み許可フラグの値を記録する */
io_cli(); /* 許可フラグを0にして割り込み禁止にする */
eflags = io_load_eflags(); /* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>݋<EFBFBD><EFBFBD>ƒt<EFBFBD><EFBFBD><EFBFBD>O<EFBFBD>̒l<EFBFBD><EFBFBD><EFBFBD>L<EFBFBD>^<5E><><EFBFBD><EFBFBD> */
io_cli(); /* <EFBFBD><EFBFBD><EFBFBD>ƒt<EFBFBD><EFBFBD><EFBFBD>O<EFBFBD><EFBFBD>0<EFBFBD>ɂ<EFBFBD><EFBFBD>Ċ<EFBFBD><EFBFBD><EFBFBD>݋֎~<7E>ɂ<EFBFBD><C982><EFBFBD> */
io_out8(0x03c8, start);
for (i = start; i <= end; i++) {
io_out8(0x03c9, rgb[0] / 4);
@@ -86,7 +86,7 @@ void set_palette(int start, int end, unsigned char *rgb)
io_out8(0x03c9, rgb[2] / 4);
rgb += 3;
}
io_store_eflags(eflags); /* 割り込み許可フラグを元に戻す */
io_store_eflags(eflags); /* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>݋<EFBFBD><EFBFBD>ƒt<EFBFBD><EFBFBD><EFBFBD>O<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɖ߂<EFBFBD> */
return;
}