Diff for /np2/font/fontx1.c between versions 1.1 and 1.6

version 1.1, 2003/10/16 17:58:36 version 1.6, 2005/02/09 20:11:34
Line 1 Line 1
 #include        "compiler.h"  #include        "compiler.h"
 #include        "parts.h"  #include        "parts.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"
   
   
 static void x1knjcpy(BYTE *dst, const BYTE *src, int from, int to) {  static void x1knjcpy(UINT8 *dst, const UINT8 *src, int from, int to) {
   
         int             i, j, k;          int             i, j, k;
 const BYTE      *p;  const UINT8     *p;
         BYTE    *q;          UINT8   *q;
         UINT    sjis;          UINT    sjis;
   
         for (i=from; i<to; i++) {          for (i=from; i<to; i++) {
Line 40  const BYTE *p; Line 40  const BYTE *p;
         }          }
 }  }
   
 BYTE fontx1_read(const char *filename, BYTE loading) {  UINT8 fontx1_read(const OEMCHAR *filename, UINT8 loading) {
   
         FILEH   fh;          FILEH   fh;
         BYTE    *work;          UINT8   *work;
         char    fname[MAX_PATH];          OEMCHAR fname[MAX_PATH];
   
         work = (BYTE *)_MALLOC(306176, "x1font");          work = (UINT8 *)_MALLOC(306176, "x1font");
         if (work == NULL) {          if (work == NULL) {
                 goto frx1_err1;                  goto frx1_err1;
         }          }
         file_cpyname(fname, filename, sizeof(fname));          file_cpyname(fname, filename, NELEMENTS(fname));
   
         // 8dot ANKを読み込む必要はある?          // 8dot ANKを読み込む必要はある?
         if (loading & FONT_ANK8) {          if (loading & FONT_ANK8) {
                 file_cutname(fname);                  file_cutname(fname);
                 file_catname(fname, x1ank1name, sizeof(fname));                  file_catname(fname, x1ank1name, NELEMENTS(fname));
                 fh = file_open_rb(fname);                  fh = file_open_rb(fname);
                 if (fh != FILEH_INVALID) {                  if (fh != FILEH_INVALID) {
                         if (file_read(fh, work, 2048) == 2048) {                          if (file_read(fh, work, 2048) == 2048) {
                                 loading &= ~FONT_ANK8;                                  loading &= ~FONT_ANK8;
                                 CopyMemory(font + 0x82100, work + 0x100, 0x60*8);                                  fontdata_ank8store(work + 0x100, 0x20, 0x60);
                                 CopyMemory(font + 0x82500, work + 0x500, 0x40*8);                                  fontdata_ank8store(work + 0x500, 0xa0, 0x40);
                         }                          }
                         file_close(fh);                          file_close(fh);
                 }                  }
Line 70  BYTE fontx1_read(const char *filename, B Line 70  BYTE fontx1_read(const char *filename, B
         // 16dot ANKを読み込む必要はあるか?          // 16dot ANKを読み込む必要はあるか?
         if (loading & FONTLOAD_ANK) {          if (loading & FONTLOAD_ANK) {
                 file_cutname(fname);                  file_cutname(fname);
                 file_catname(fname, x1ank2name, sizeof(fname));                  file_catname(fname, x1ank2name, NELEMENTS(fname));
                 fh = file_open_rb(fname);                  fh = file_open_rb(fname);
                 if (fh != FILEH_INVALID) {                  if (fh != FILEH_INVALID) {
                         if (file_read(fh, work, 4096) == 4096) {                          if (file_read(fh, work, 4096) == 4096) {
Line 78  BYTE fontx1_read(const char *filename, B Line 78  BYTE fontx1_read(const char *filename, B
                                 // 16dot ASCIIを読む必要があるか                                  // 16dot ASCIIを読む必要があるか
                                 if (loading & FONT_ANK16a) {                                  if (loading & FONT_ANK16a) {
                                         loading &= ~FONT_ANK16a;                                          loading &= ~FONT_ANK16a;
                                         CopyMemory(font + 0x80200, work + 0x200, 0x60*16);                                          CopyMemory(fontrom + 0x80200, work + 0x200, 0x60*16);
                                         fontdata_patch16a();                                          fontdata_patch16a();
                                 }                                  }
   
                                 // 16dot ANK(0x80〜)を読む必要があるか                                  // 16dot ANK(0x80〜)を読む必要があるか
                                 if (loading & FONT_ANK16b) {                                  if (loading & FONT_ANK16b) {
                                         loading &= ~FONT_ANK16b;                                          loading &= ~FONT_ANK16b;
                                         CopyMemory(font + 0x80a00, work + 0xa00, 0x40*16);                                          CopyMemory(fontrom + 0x80a00, work + 0xa00, 0x40*16);
                                         fontdata_patch16b();                                          fontdata_patch16b();
                                 }                                  }
                         }                          }
Line 96  BYTE fontx1_read(const char *filename, B Line 96  BYTE fontx1_read(const char *filename, B
         // 漢字を読み込む必要はあるか?          // 漢字を読み込む必要はあるか?
         if (loading & (FONT_KNJ1 | FONT_KNJ2)) {          if (loading & (FONT_KNJ1 | FONT_KNJ2)) {
                 file_cutname(fname);                  file_cutname(fname);
                 file_catname(fname, x1knjname, sizeof(fname));                  file_catname(fname, x1knjname, NELEMENTS(fname));
                 fh = file_open_rb(fname);                  fh = file_open_rb(fname);
                 if (fh != FILEH_INVALID) {                  if (fh != FILEH_INVALID) {
                         if (file_read(fh, work, 306176) == 306176) {                          if (file_read(fh, work, 306176) == 306176) {
Line 104  BYTE fontx1_read(const char *filename, B Line 104  BYTE fontx1_read(const char *filename, B
                                 // 第一水準漢字を読み込む?                                  // 第一水準漢字を読み込む?
                                 if (loading & FONT_KNJ1) {                                  if (loading & FONT_KNJ1) {
                                         loading &= ~FONT_KNJ1;                                          loading &= ~FONT_KNJ1;
                                         x1knjcpy(font, work, 0x01, 0x30);                                          x1knjcpy(fontrom, work, 0x01, 0x30);
                                         fontdata_patchjis();                                          fontdata_patchjis();
                                 }                                  }
   
                                 // 第二水準を読む必要はある?                                  // 第二水準を読む必要はある?
                                 if (loading & FONT_KNJ2) {                                  if (loading & FONT_KNJ2) {
                                         loading &= ~FONT_KNJ2;                                          loading &= ~FONT_KNJ2;
                                         x1knjcpy(font, work, 0x31, 0x50);                                          x1knjcpy(fontrom, work, 0x31, 0x50);
                                 }                                  }
                         }                          }
                         file_close(fh);                          file_close(fh);

Removed from v.1.1  
changed lines
  Added in v.1.6


RetroPC.NET-CVS <cvs@retropc.net>