|
|
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 */
! 25: Uint32 limit;
! 26: Uint32 size;
! 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);
34:
1.1.1.3 ! root 35: Uint8 SCSIdisk_Send_Status(void);
! 36: Uint8 SCSIdisk_Send_Message(void);
! 37: Uint8 SCSIdisk_Send_Data(void);
! 38: void SCSIdisk_Receive_Data(Uint8 val);
! 39: bool SCSIdisk_Select(Uint8 target);
! 40: void SCSIdisk_Receive_Command(Uint8 *commandbuf, Uint8 identify);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.