|
|
| version 1.2, 2003/10/18 01:21:58 | version 1.9, 2005/02/09 20:11:34 |
|---|---|
| Line 1 | Line 1 |
| #include "compiler.h" | #include "compiler.h" |
| #include "strres.h" | #include "strres.h" |
| #include "dosio.h" | #include "dosio.h" |
| #include "memory.h" | #include "cpucore.h" |
| #include "font.h" | #include "font.h" |
| #include "fontdata.h" | #include "fontdata.h" |
| #include "fontmake.h" | #include "fontmake.h" |
| #ifndef FONTMEMORYBIND | #ifndef FONTMEMORYBIND |
| BYTE __font[0x84000]; | UINT8 __font[0x84000]; |
| #endif | #endif |
| static const char fonttmpname[] = "font.tmp"; | static const OEMCHAR fonttmpname[] = OEMTEXT("font.tmp"); |
| void font_init(void) { | void font_initialize(void) { |
| BYTE *p; | UINT8 *p; |
| BYTE *q; | UINT8 *q; |
| UINT i; | UINT i; |
| UINT j; | UINT j; |
| UINT32 dbit; | UINT32 dbit; |
| ZeroMemory(font, sizeof(font)); | ZeroMemory(fontrom, sizeof(fontrom)); |
| p = font + 0x81000; | p = fontrom + 0x81000; |
| q = font + 0x82800; | q = fontrom + 0x82000; |
| for (i=0; i<256; i++) { | for (i=0; i<256; i++) { |
| q += 8; | |
| for (j=0; j<4; j++) { | for (j=0; j<4; j++) { |
| dbit = 0; | dbit = 0; |
| if (i & (0x01 << j)) { | if (i & (0x01 << j)) { |
| Line 42 void font_init(void) { | Line 43 void font_init(void) { |
| } | } |
| } | } |
| static BYTE fonttypecheck(const char *fname) { | static UINT8 fonttypecheck(const OEMCHAR *fname) { |
| const char *p; | const OEMCHAR *p; |
| p = file_getext((char *)fname); | p = file_getext(fname); |
| if (!file_cmpname(p, str_bmp)) { | if (!file_cmpname(p, str_bmp)) { |
| return(FONTTYPE_PC98); | return(FONTTYPE_PC98); |
| } | } |
| p = file_getname((char *)fname); | p = file_getname(fname); |
| if (!file_cmpname(p, v98fontname)) { | if (!file_cmpname(p, v98fontname)) { |
| return(FONTTYPE_V98); | return(FONTTYPE_V98); |
| } | } |
| Line 74 const char *p; | Line 75 const char *p; |
| return(FONTTYPE_NONE); | return(FONTTYPE_NONE); |
| } | } |
| BYTE font_load(const char *filename, BOOL force) { | UINT8 font_load(const OEMCHAR *filename, BOOL force) { |
| UINT i; | UINT i; |
| BYTE *q; | const UINT8 *p; |
| const BYTE *p; | UINT8 *q; |
| UINT j; | UINT j; |
| char fname[MAX_PATH]; | OEMCHAR fname[MAX_PATH]; |
| BYTE type; | UINT8 type; |
| BYTE loading; | UINT8 loading; |
| if (filename) { | if (filename) { |
| file_cpyname(fname, filename, sizeof(fname)); | file_cpyname(fname, filename, NELEMENTS(fname)); |
| } | } |
| else { | else { |
| fname[0] = '\0'; | fname[0] = '\0'; |
| Line 97 const BYTE *p; | Line 98 const BYTE *p; |
| // 外字: font[??560-??57f], font[??d60-??d7f] は削らないように… | // 外字: font[??560-??57f], font[??d60-??d7f] は削らないように… |
| for (i=0; i<0x80; i++) { | for (i=0; i<0x80; i++) { |
| q = font + (i << 12); | q = fontrom + (i << 12); |
| ZeroMemory(q + 0x000, 0x0560 - 0x000); | ZeroMemory(q + 0x000, 0x0560 - 0x000); |
| ZeroMemory(q + 0x580, 0x0d60 - 0x580); | ZeroMemory(q + 0x580, 0x0d60 - 0x580); |
| ZeroMemory(q + 0xd80, 0x1000 - 0xd80); | ZeroMemory(q + 0xd80, 0x1000 - 0xd80); |
| } | } |
| CopyMemory(font + 0x82000, fontdata_8, 0x800); | fontdata_ank8store(fontdata_8, 0, 256); |
| p = fontdata_8; | p = fontdata_8; |
| q = font + 0x80000; | q = fontrom + 0x80000; |
| for (i=0; i<256; i++) { | for (i=0; i<256; i++) { |
| for (j=0; j<8; j++) { | for (j=0; j<8; j++) { |
| q[0] = p[0]; | q[0] = p[0]; |
| Line 145 const BYTE *p; | Line 146 const BYTE *p; |
| loading = fontv98_read(file_getcd(v98fontname), loading); | loading = fontv98_read(file_getcd(v98fontname), loading); |
| loading = fontpc88_read(file_getcd(pc88ankname), loading); | loading = fontpc88_read(file_getcd(pc88ankname), loading); |
| if (loading & FONTLOAD_16) { | if (loading & FONTLOAD_16) { |
| file_cpyname(fname, file_getcd(fonttmpname), sizeof(fname)); | file_cpyname(fname, file_getcd(fonttmpname), NELEMENTS(fname)); |
| if (file_attr_c(fname) == -1) { | if (file_attr(fname) == -1) { |
| makepc98bmp(fname); | makepc98bmp(fname); |
| } | } |
| loading = fontpc98_read(fname, loading); | loading = fontpc98_read(fname, loading); |