|
|
1.1 root 1: /* SCSI Bus and Disk emulation */
2:
1.1.1.3 root 3: /* SCSI phase */
4: #define PHASE_DO 0x00 /* data out */
5: #define PHASE_DI 0x01 /* data in */
6: #define PHASE_CD 0x02 /* command */
7: #define PHASE_ST 0x03 /* status */
8: #define PHASE_MO 0x06 /* message out */
9: #define PHASE_MI 0x07 /* message in */
10:
11: struct {
12: Uint8 target;
13: Uint8 phase;
14: } SCSIbus;
15:
16:
17: /* Command Descriptor Block */
18: #define SCSI_CDB_MAX_SIZE 12
19:
20:
21: /* This buffer temporarily stores data to be written to memory or disk */
22:
23: struct {
24: Uint8 data[512]; /* FIXME: BLOCKSIZE */
1.1.1.4 ! root 25: int limit;
! 26: int size;
1.1.1.3 root 27: bool disk;
28: } scsi_buffer;
1.1 root 29:
30:
31: void SCSI_Init(void);
32: void SCSI_Uninit(void);
33: void SCSI_Reset(void);
1.1.1.4 ! root 34: void SCSI_Insert(Uint8 target);
! 35: void SCSI_Eject(Uint8 target);
1.1 root 36:
1.1.1.3 root 37: Uint8 SCSIdisk_Send_Status(void);
38: Uint8 SCSIdisk_Send_Message(void);
39: Uint8 SCSIdisk_Send_Data(void);
40: void SCSIdisk_Receive_Data(Uint8 val);
41: bool SCSIdisk_Select(Uint8 target);
42: void SCSIdisk_Receive_Command(Uint8 *commandbuf, Uint8 identify);
1.1.1.4 ! root 43:
! 44: Sint64 SCSI_Seek_Time(void);
! 45: Sint64 SCSI_Sector_Time(void);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.