--- np2/fdd/newdisk.c 2004/01/30 01:29:13 1.7 +++ np2/fdd/newdisk.c 2005/02/12 12:13:57 1.12 @@ -1,4 +1,7 @@ #include "compiler.h" +#if defined(OSLANG_UTF8) || defined(OSLANG_UCS2) +#include "oemtext.h" +#endif #include "dosio.h" #include "newdisk.h" #include "fddfile.h" @@ -8,14 +11,19 @@ // ---- fdd -void newdisk_fdd(const char *fname, REG8 type, const char *label) { +void newdisk_fdd(const OEMCHAR *fname, REG8 type, const OEMCHAR *label) { _D88HEAD d88head; FILEH fh; ZeroMemory(&d88head, sizeof(d88head)); STOREINTELDWORD(d88head.fd_size, sizeof(d88head)); +#if defined(OSLANG_UTF8) || defined(OSLANG_UCS2) + oemtext_oemtosjis((char *)d88head.fd_name, sizeof(d88head.fd_name), + label, (UINT)-1); +#else milstr_ncpy((char *)d88head.fd_name, label, sizeof(d88head.fd_name)); +#endif d88head.fd_type = type; fh = file_create(fname); if (fh != FILEH_INVALID) { @@ -29,7 +37,7 @@ void newdisk_fdd(const char *fname, REG8 static BOOL writezero(FILEH fh, UINT size) { - BYTE work[256]; + UINT8 work[256]; UINT wsize; ZeroMemory(work, sizeof(work)); @@ -45,7 +53,7 @@ static BOOL writezero(FILEH fh, UINT siz static BOOL writehddipl(FILEH fh, UINT ssize, UINT32 tsize) { - BYTE work[1024]; + UINT8 work[1024]; UINT size; ZeroMemory(work, sizeof(work)); @@ -71,10 +79,10 @@ static BOOL writehddipl(FILEH fh, UINT s return(SUCCESS); } -void newdisk_thd(const char *fname, UINT hddsize) { +void newdisk_thd(const OEMCHAR *fname, UINT hddsize) { FILEH fh; - BYTE work[256]; + UINT8 work[256]; UINT size; BOOL r; @@ -99,7 +107,7 @@ ndthd_err: return; } -void newdisk_nhd(const char *fname, UINT hddsize) { +void newdisk_nhd(const OEMCHAR *fname, UINT hddsize) { FILEH fh; NHDHDR nhd; @@ -116,13 +124,13 @@ void newdisk_nhd(const char *fname, UINT ZeroMemory(&nhd, sizeof(nhd)); CopyMemory(&nhd.sig, sig_nhd, 15); STOREINTELDWORD(nhd.headersize, sizeof(nhd)); - size = hddsize * 16; + size = hddsize * 15; STOREINTELDWORD(nhd.cylinders, size); STOREINTELWORD(nhd.surfaces, 8); - STOREINTELWORD(nhd.sectors, 32); - STOREINTELWORD(nhd.sectorsize, 256); + STOREINTELWORD(nhd.sectors, 17); + STOREINTELWORD(nhd.sectorsize, 512); r = (file_write(fh, &nhd, sizeof(nhd)) != sizeof(nhd)); - r |= writehddipl(fh, 256, size * 8 * 32 * 256); + r |= writehddipl(fh, 512, size * 8 * 17 * 512); file_close(fh); if (r) { file_delete(fname); @@ -133,7 +141,7 @@ ndnhd_err: } // hddtype = 0:5MB / 1:10MB / 2:15MB / 3:20MB / 5:30MB / 6:40MB -void newdisk_hdi(const char *fname, UINT hddtype) { +void newdisk_hdi(const OEMCHAR *fname, UINT hddtype) { const SASIHDD *sasi; FILEH fh; @@ -171,7 +179,7 @@ ndhdi_err: return; } -void newdisk_vhd(const char *fname, UINT hddsize) { +void newdisk_vhd(const OEMCHAR *fname, UINT hddsize) { FILEH fh; VHDHDR vhd;