|
|
| version 1.2, 2003/11/07 18:31:24 | version 1.8, 2005/02/07 14:46:09 |
|---|---|
| Line 1 | Line 1 |
| #if defined(SUPPORT_SCSI) | |
| enum { | enum { |
| HDDTYPE_SASI, | SASIHDD_MAX = 2, |
| HDDTYPE_SCSI, | SCSIHDD_MAX = 4 |
| HDDTYPE_NONE | |
| }; | }; |
| #else | |
| enum { | |
| SASIHDD_MAX = 2, | |
| SCSIHDD_MAX = 0 | |
| }; | |
| #endif | |
| enum { | |
| SXSITYPE_NONE = 0x0000, | |
| SXSITYPE_HDD = 0x0001, | |
| SXSITYPE_CDROM = 0x0002, | |
| SXSITYPE_MO = 0x0003, | |
| SXSITYPE_SCANNER = 0x0004, | |
| SXSITYPE_DEVMASK = 0x000f, | |
| SXSITYPE_REMOVE = 0x0010, | |
| SXSITYPE_SASIMASK = 0x0700, | |
| SXSITYPE_SASI = 0x1000, | |
| SXSITYPE_IDE = 0x2000, | |
| SXSITYPE_SCSI = 0x3000, | |
| SXSITYPE_IFMASK = 0xf000 | |
| }; | |
| typedef struct { | |
| UINT8 sectors; | |
| UINT8 surfaces; | |
| UINT16 cylinders; | |
| } SASIHDD; | |
| typedef struct { | |
| UINT8 cylinders[2]; | |
| } THDHDR; | |
| typedef struct { | |
| char sig[16]; | |
| char comment[0x100]; | |
| UINT8 headersize[4]; | |
| UINT8 cylinders[4]; | |
| UINT8 surfaces[2]; | |
| UINT8 sectors[2]; | |
| UINT8 sectorsize[2]; | |
| UINT8 reserved[0xe2]; | |
| } NHDHDR; | |
| typedef struct { | |
| UINT8 dummy[4]; | |
| UINT8 hddtype[4]; | |
| UINT8 headersize[4]; | |
| UINT8 hddsize[4]; | |
| UINT8 sectorsize[4]; | |
| UINT8 sectors[4]; | |
| UINT8 surfaces[4]; | |
| UINT8 cylinders[4]; | |
| } HDIHDR; | |
| typedef struct { | |
| char sig[3]; | |
| char ver[4]; | |
| char delimita; | |
| char comment[128]; | |
| UINT8 padding1[4]; | |
| UINT8 mbsize[2]; | |
| UINT8 sectorsize[2]; | |
| UINT8 sectors; | |
| UINT8 surfaces; | |
| UINT8 cylinders[2]; | |
| UINT8 totals[4]; | |
| UINT8 padding2[0x44]; | |
| } VHDHDR; | |
| typedef struct { | typedef struct { |
| long totals; | long totals; |
| UINT16 tracks; | UINT16 cylinders; |
| UINT16 size; | UINT16 size; |
| BYTE sectors; | UINT8 sectors; |
| BYTE surfaces; | UINT8 surfaces; |
| UINT16 type; | UINT16 type; |
| UINT32 headersize; | UINT32 headersize; |
| long fh; | long fh; |
| char fname[MAX_PATH]; | char fname[MAX_PATH]; |
| } _SXSIHDD, *SXSIHDD; | } _SXSIDEV, *SXSIDEV; |
| #ifdef __cplusplus | #ifdef __cplusplus |
| extern "C" { | extern "C" { |
| #endif | #endif |
| extern _SXSIHDD sxsi_hd[4]; | extern const char sig_vhd[8]; |
| extern const char sig_nhd[15]; | |
| extern const SASIHDD sasihdd[7]; | |
| void sxsi_initialize(void); | void sxsi_initialize(void); |
| SXSIHDD sxsi_getptr(BYTE drv); | SXSIDEV sxsi_getptr(REG8 drv); |
| const char *sxsi_getname(BYTE drv); | const char *sxsi_getname(REG8 drv); |
| BOOL sxsi_hddopen(BYTE drv, const char *file); | BOOL sxsi_hddopen(REG8 drv, const char *file); |
| void sxsi_open(void); | void sxsi_open(void); |
| void sxsi_flash(void); | void sxsi_flash(void); |
| void sxsi_trash(void); | void sxsi_trash(void); |
| BYTE sxsi_read(BYTE drv, long pos, BYTE *buf, UINT16 size); | BOOL sxsi_issasi(void); |
| BYTE sxsi_write(BYTE drv, long pos, const BYTE *buf, UINT16 size); | BOOL sxsi_isscsi(void); |
| BYTE sxsi_format(BYTE drv, long pos); | BOOL sxsi_iside(void); |
| REG8 sxsi_read(REG8 drv, long pos, UINT8 *buf, UINT size); | |
| REG8 sxsi_write(REG8 drv, long pos, const UINT8 *buf, UINT size); | |
| REG8 sxsi_format(REG8 drv, long pos); | |
| #ifdef __cplusplus | #ifdef __cplusplus |
| } | } |