⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scsidefs.pas

📁 用于CD/DVD烧录的Delphi源码,包括source和demo
💻 PAS
📖 第 1 页 / 共 2 页
字号:
  SCSI_VERIFY12 = $AF; // Verify 12-Byte (O)
  SCSI_WRITE12 = $AA; // Write 12-Byte (O)
  SCSI_WRT_VER10 = $2E; // Write and Verify 10-Byte (O)
  SCSI_WRT_VER12 = $AE; // Write and Verify 12-Byte (O)

  //***************************************************************************
  //				  %%% Commands Unique to CD-ROM Devices %%%
  //***************************************************************************

  SCSI_PLAYAUD_10 = $45; // Play Audio 10-Byte (O)
  SCSI_PLAYAUD_12 = $A5; // Play Audio 12-Byte 12-Byte (O)
  SCSI_PLAYAUDMSF = $47; // Play Audio MSF (O)
  SCSI_PLAYA_TKIN = $48; // Play Audio Track/Index (O)
  SCSI_PLYTKREL10 = $49; // Play Track Relative 10-Byte (O)
  SCSI_PLYTKREL12 = $A9; // Play Track Relative 12-Byte (O)
  SCSI_READCDCAP = $25; // Read CD-ROM Capacity (MANDATORY)
  SCSI_READHEADER = $44; // Read Header (O)
  SCSI_SUBCHANNEL = $42; // Read Subchannel (O)
  SCSI_READ_TOC = $43; // Read TOC (O)

  //***************************************************************************
  //				  %%% Commands Unique to Scanner Devices %%%
  //***************************************************************************

  SCSI_GETDBSTAT = $34; // Get Data Buffer Status (O)
  SCSI_GETWINDOW = $25; // Get Window (O)
  SCSI_OBJECTPOS = $31; // Object Postion (O)
  SCSI_SCAN = $1B; // Scan (O)
  SCSI_SETWINDOW = $24; // Set Window (MANDATORY)

  //***************************************************************************
  //			 %%% Commands Unique to Optical Memory Devices %%%
  //***************************************************************************

  SCSI_UpdateBlk = $3D; // Update Block (O)

  //***************************************************************************
  //			 %%% Commands Unique to Medium Changer Devices %%%
  //***************************************************************************

  SCSI_EXCHMEDIUM = $A6; // Exchange Medium (O)
  SCSI_INITELSTAT = $07; // Initialize Element Status (O)
  SCSI_POSTOELEM = $2B; // Position to Element (O)
  SCSI_REQ_VE_ADD = $B5; // Request Volume Element Address (O)
  SCSI_SENDVOLTAG = $B6; // Send Volume Tag (O)

  //***************************************************************************
  //			  %%% Commands Unique to Communication Devices %%%
  //***************************************************************************

  SCSI_GET_MSG_6 = $08; // Get Message 6-Byte (MANDATORY)
  SCSI_GET_MSG_10 = $28; // Get Message 10-Byte (O)
  SCSI_GET_MSG_12 = $A8; // Get Message 12-Byte (O)
  SCSI_SND_MSG_6 = $0A; // Send Message 6-Byte (MANDATORY)
  SCSI_SND_MSG_10 = $2A; // Send Message 10-Byte (O)
  SCSI_SND_MSG_12 = $AA; // Send Message 12-Byte (O)

  //---------------------------------------------------------------------------
  //
  //					  %%% END OF SCSI COMMAND OPCODES %%%
  //
  //---------------------------------------------------------------------------

  //***************************************************************************
  //						%%% Request Sense Data Format %%%
  //***************************************************************************
type

  SENSE_DATA_FMT = record
    ErrorCode, // Error Code (70H or 71H)
    SegmentNum, // Number of current segment descriptor
    SenseKey, // Sense Key(See bit definitions too)
    InfoByte0, // Information MSB
    InfoByte1, // Information MID
    InfoByte2, // Information MID
    InfoByte3, // Information LSB
    AddSenLen, // Additional Sense Length
    ComSpecInf0, // Command Specific Information MSB
    ComSpecInf1, // Command Specific Information MID
    ComSpecInf2, // Command Specific Information MID
    ComSpecInf3, // Command Specific Information LSB
    AddSenseCode, // Additional Sense Code
    AddSenQual, // Additional Sense Code Qualifier
    FieldRepUCode, // Field Replaceable Unit Code
    SenKeySpec15, // Sense Key Specific 15th byte
    SenKeySpec16, // Sense Key Specific 16th byte
    SenKeySpec17, // Sense Key Specific 17th byte
    AddSenseBytes: BYTE; // Additional Sense Bytes
  end;

  TSENSE_DATA_FMT = SENSE_DATA_FMT;
  PSENSE_DATA_FMT = ^SENSE_DATA_FMT;

  //***************************************************************************
  //						 %%% Scsi Defaults %%%
  //***************************************************************************

  //***************************************************************************
  //						 %%% REQUEST SENSE ERROR CODE %%%
  //***************************************************************************

const

  SERROR_CURRENT = $70; // Current Errors
  SERROR_DEFERED = $71; // Deferred Errors

  //***************************************************************************
  //					 %%% REQUEST SENSE BIT DEFINITIONS %%%
  //***************************************************************************

  SENSE_VALID = $80; // Byte 0 Bit 7
  SENSE_FILEMRK = $80; // Byte 2 Bit 7
  SENSE_EOM = $40; // Byte 2 Bit 6
  SENSE_ILI = $20; // Byte 2 Bit 5

  //***************************************************************************
  //				 %%% REQUEST SENSE SENSE KEY DEFINITIONS %%%
  //***************************************************************************

  KEY_NOSENSE = $00; // No Sense
  KEY_RECERROR = $01; // Recovered Error
  KEY_NOTREADY = $02; // Not Ready
  KEY_MEDIUMERR = $03; // Medium Error
  KEY_HARDERROR = $04; // Hardware Error
  KEY_ILLGLREQ = $05; // Illegal Request
  KEY_UNITATT = $06; // Unit Attention
  KEY_DATAPROT = $07; // Data Protect
  KEY_BLANKCHK = $08; // Blank Check
  KEY_VENDSPEC = $09; // Vendor Specific
  KEY_COPYABORT = $0A; // Copy Abort
  KEY_EQUAL = $0C; // Equal (Search)
  KEY_VOLOVRFLW = $0D; // Volume Overflow
  KEY_MISCOMP = $0E; // Miscompare (Search)
  KEY_RESERVED = $0F; // Reserved

  //***************************************************************************
  //				  %%% PERIPHERAL DEVICE TYPE DEFINITIONS %%%
  //***************************************************************************

  DTYPE_DISKDEV = $00; // Disk Device
  DTYPE_TAPEDEV = $01; // Tape Device
  DTYPE_PRINTER = $02; // Printer
  DTYPE_PROCESSER = $03; // Processor
  DTYPE_WORM = $04; // Write-once read-multiple
  DTYPE_CDROM = $05; // CD-ROM device
  DTYPE_SCANNER = $06; // Scanner device
  DTYPE_OPTICAL = $07; // Optical memory device
  DTYPE_JUKEBOX = $08; // Medium Changer device
  DTYPE_COMMS = $09; // Communications device
  DTYPE_RESL = $0A; // Reserved (low)
  DTYPE_RESH = $1E; // Reserved (high)
  DTYPE_UNKNOWN = $1F; // Unknown or no device type

  //***************************************************************************
  //				  %%% ANSI APPROVED VERSION DEFINITIONS %%%
  //***************************************************************************

  ANSI_MAYBE = $0; // Device may or may not be ANSI approved stand
  ANSI_SCSI1 = $1; // Device complies to ANSI X3.131-1986 (SCSI-1)
  ANSI_SCSI2 = $2; // Device complies to SCSI-2
  ANSI_RESLO = $3; // Reserved (low)
  ANSI_RESHI = $7; // Reserved (high)

  //***************************************************************************
         {ModeParametersHeader -> Medium types}
  //***************************************************************************
  MT_UNKNOWN = $00;
  MT_CDROMDATA120 = $01;
  MT_CDAUDIO120 = $02;
  MT_CDROMMIXED120 = $03;
  MT_CDROMHYBRID120 = $04;
  MT_CDROMDATA80 = $05;
  MT_CDAUDIO80 = $06;
  MT_CDROMMIXED80 = $07;
  MT_CDROMHYBRID80 = $08;
  MT_CDRUNKNOWN = $10;
  MT_CDRDATA120 = $11;
  MT_CDRAUDIO120 = $12;
  MT_CDRMIXED120 = $13;
  MT_CDRHYBRID120 = $14;
  MT_CDRDATA80 = $15;
  MT_CDRAUDIO80 = $16;
  MT_CDRMIXED80 = $17;
  MT_CDRHYBRID80 = $18;
  MT_CDRWUNKNOWN = $20;
  MT_CDRWDATA120 = $21;
  MT_CDRWAUDIO120 = $22;
  MT_CDRWMIXED120 = $23;
  MT_CDRWHYBRID120 = $24;
  MT_CDRWDATA80 = $25;
  MT_CDRWAUDIO80 = $26;
  MT_CDRWMIXED80 = $27;
  MT_CDRWHYBRID80 = $28;
  MT_NODISC = $70;
  MT_DOOROPEN = $71;

  //***************************************************************************
         {CDText Consts}
  //***************************************************************************

  CD_TEXT_PACK_ALBUM_NAME = $80;
  CD_TEXT_PACK_PERFORMER = $81;
  CD_TEXT_PACK_SONGWRITER = $82;
  CD_TEXT_PACK_COMPOSER = $83;
  CD_TEXT_PACK_ARRANGER = $84;
  CD_TEXT_PACK_MESSAGES = $85;
  CD_TEXT_PACK_DISC_ID = $86;
  CD_TEXT_PACK_GENRE = $87;
  CD_TEXT_PACK_TOC_INFO = $88;
  CD_TEXT_PACK_TOC_INFO2 = $89;
  CD_TEXT_PACK_UPC_EAN = $8E;
  CD_TEXT_PACK_SIZE_INFO = $8F;

implementation
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -