File:  [RetroPC.NET] / xmil / nds / fdd / d88head.h
Revision 1.1: download - view: text, annotated - select for diffs
Tue Mar 24 22:52:51 2009 JST (16 years, 7 months ago) by yui
Branches: MAIN
CVS tags: HEAD
add nds-win32 simulation project


enum {
	D88_TRACKMAX		= 164,
	D88_HEADERSIZE		= 0x20 + (D88_TRACKMAX * 4)
};


#if defined(__GNUC__)
// D88ヘッダ (size: 2b0h bytes)
typedef struct {
	UINT8	fd_name[17];		// Disk Name
	UINT8	reserved1[9]; 		// Reserved
	UINT8	protect;			// Write Protect bit:4
	UINT8	fd_type;			// Disk Format
	UINT8	fd_size[4];			// Disk Size
	UINT8	trkptr[D88_TRACKMAX][4];
} __attribute__ ((packed)) _D88HEAD, *D88HEAD;

// D88セクタ (size: 16bytes)
typedef struct {
	UINT8	c;
	UINT8	h;
	UINT8	r;
	UINT8	n;
	UINT8	sectors[2];			// Sector Count
	UINT8	mfm_flg;			// sides
	UINT8	del_flg;			// DELETED DATA
	UINT8	stat;				// STATUS (FDC ret)
	UINT8	seektime;			// Seek Time
	UINT8	reserved[3];		// Reserved
	UINT8	rpm_flg;			// rpm			0:1.2  1:1.44
	UINT8	size[2];			// Sector Size
} __attribute__ ((packed)) _D88SEC, *D88SEC;
#else
#pragma pack(push, 1)
// D88ヘッダ (size: 2b0h bytes)
typedef struct {
	UINT8	fd_name[17];		// Disk Name
	UINT8	reserved1[9]; 		// Reserved
	UINT8	protect;			// Write Protect bit:4
	UINT8	fd_type;			// Disk Format
	UINT8	fd_size[4];			// Disk Size
	UINT8	trkptr[D88_TRACKMAX][4];
} _D88HEAD, *D88HEAD;

// D88セクタ (size: 16bytes)
typedef struct {
	UINT8	c;
	UINT8	h;
	UINT8	r;
	UINT8	n;
	UINT8	sectors[2];			// Sector Count
	UINT8	mfm_flg;			// sides
	UINT8	del_flg;			// DELETED DATA
	UINT8	stat;				// STATUS (FDC ret)
	UINT8	seektime;			// Seek Time
	UINT8	reserved[3];		// Reserved
	UINT8	rpm_flg;			// rpm			0:1.2  1:1.44
	UINT8	size[2];			// Sector Size
} _D88SEC, *D88SEC;
#pragma pack(pop)
#endif


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