|
是的,应该是外部的 unifont 的问题。因为 graphics.c 内部的变量地址已经更改,以下是关键的部分:
/* 8x16 dot array, total chars = 100*37. plano size = 800*600/8 = 60000 bytes */
static unsigned char *VSHADOW1 = (unsigned char *)0x3A0000; //unsigned char VSHADOW1[60000];
static unsigned char *VSHADOW2 = (unsigned char *)0x3AEA60; //unsigned char VSHADOW2[60000];
static unsigned char *VSHADOW4 = (unsigned char *)0x3BD4C0; //unsigned char VSHADOW4[60000];
static unsigned char *VSHADOW8 = (unsigned char *)0x3CBF20; //unsigned char VSHADOW8[60000]; end at 0x3DA980
/* text buffer has to be kept around so that we can write things as we scroll and the like */
//static unsigned short text[80 * 30];
static unsigned long *text = (unsigned long *)0x3FC000; // length in bytes = 100*37*4 = 0x39D0
更改以后,每个颜色的“位平面” 中就可以放得下 800x600 的位图。而 text 变量也移动到接近 4M 处了(原来的地方放不下了),同时每行也能够容纳 100 个字符,屏幕总共有 37 行。 |
|