|
|
1.1 ! root 1: /* SCSI Bus and Disk emulation */ ! 2: ! 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 */ ! 25: int limit; ! 26: int size; ! 27: bool disk; ! 28: } scsi_buffer; ! 29: ! 30: ! 31: void SCSI_Init(void); ! 32: void SCSI_Uninit(void); ! 33: void SCSI_Reset(void); ! 34: void SCSI_Insert(Uint8 target); ! 35: void SCSI_Eject(Uint8 target); ! 36: ! 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); ! 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.