home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Media Share 9
/
MEDIASHARE_09.ISO
/
pascal
/
vdl020d.zip
/
VSALHIGH.DOC
< prev
next >
Wrap
Text File
|
1993-04-14
|
78KB
|
2,601 lines
{
════════════════════════════════════════════════════════════════════════════
Visionix SCSI Abstraction Library High-level (VSALHIGH)
Copyright 1991,92,93 Visionix
ALL RIGHTS RESERVED
────────────────────────────────────────────────────────────────────────────
Revision history in reverse chronological order:
Initials Date Comment
──────── ──────── ────────────────────────────────────────────────────────
lpg 03/16/93 Added Source Documentation
mep 02/11/93 Cleaned up code for beta release
jrt 02/08/93 Sync with beta 0.12 release
jrt 11/21/92 Sync with beta 0.08
jrt 09/01/92 First logged revision.
════════════════════════════════════════════════════════════════════════════
INCOMPLETE FUNCTIONS
--------------------
SAL_S2DasdSetLimits
SAL_S2DasdSearchData
}
Unit VSALHIGH;
Uses
VTypes,
VSAL;
{------------------}
{ SCSI-2 Constants }
{------------------}
Const
{----------------------------}
{ Sense Data Flags and masks }
{----------------------------}
RS_Valid = $80;
RS_SenseKey = $0F;
RS_IncorrectLength = $20;
RS_EOM = $40;
RS_Filemark = $80;
RS_SKSV = $80;
{------------------------------}
{ Inquiry Data Flags and masks }
{------------------------------}
INQ_PQPresent = $00;
INQ_PQNotPresent = $20;
INQ_PQReserved = $40;
INQ_PQNotSupported = $60;
INQ_Removable = $80;
INQ_ANSIVersion = $07;
INQ_ECMAVersoin = $38;
INQ_ISOVersion = $C0;
INQ_AENC = $80;
INQ_TermIOP = $40;
INQ_ResDataFormat = $0F;
INQ_SoftReset = $01;
INQ_CommandQueing = $02;
INQ_Linked = $08;
INQ_Synchronous = $10;
INQ_WBus16 = $20;
INQ_WBus32 = $40;
INQ_RelAddressing = $80;
{-------------------}
{ SCSI Device Types }
{-------------------}
DEV_DASD = $00;
DEV_Sequential = $01;
DEV_Printer = $02;
DEV_Processor = $03;
DEV_WORM = $04;
DEV_CDROM = $05;
DEV_Scanner = $06;
DEV_Optical = $07;
DEV_Changer = $08;
DEV_Comm = $09;
DEV_Unknown = $1F;
{--------------}
{ SCSI-2 Types }
{--------------}
Type
T4Byte = Array[1..4] of BYTE;
T3Byte = Array[1..3] of BYTE;
T2Byte = Array[1..2] of BYTE;
{--------------------}
{ Request Sense Data }
{--------------------}
Type
TReqSense = RECORD
Error : BYTE;
Segment : BYTE;
SenseKey : BYTE;
Information : BYTE;
AddSenLen : BYTE;
CommandInfo : WORD;
AddSenseCode : BYTE;
AddSenseQual : BYTE;
FRUCode : BYTE;
SenseSpec : WORD;
END;
PReqSense = ^TReqSense;
{--------------}
{ Inquiry Data }
{--------------}
Type
TInquiry = RECORD
DevType : BYTE;
DevModifier : BYTE;
Version : BYTE;
ResDataFormat : BYTE;
AdditionalLen : BYTE;
Reserved1 : BYTE;
Reserved2 : BYTE;
Flags : BYTE;
Vendor : Array[1..8 ] of CHAR;
Product : Array[1..16] of CHAR;
ProductRev : Array[1..4 ] of CHAR;
END;
PInquiry = ^TInquiry;
{---------------------}
{ Direct Access Types }
{---------------------}
Type
TReadCapacity = RECORD
LBA : LONGINT;
BlockSize : LONGINT;
END;
{-------------------------}
{ Sequential Access Types }
{-------------------------}
Type
{-----------------------------}
{ Read BlockLimits Data Types }
{-----------------------------}
TSeqBlockLimits = RECORD
Reserved : BYTE;
MaxBlockLen : T3Byte;
MinBlockLen : WORD;
END;
PSeqBlockLimits = ^TSeqBlockLimits;
{--------------------------}
{ Read Position Data Types }
{--------------------------}
TSeqPosition = RECORD
Flags : BYTE;
Partition : BYTE;
Reserved1 : BYTE;
Reserved2 : BYTE;
FirstBlock : WORD;
LastBlock : WORD;
NumBlocksInBuff : WORD;
NumBytesInBuff : WORD;
END;
PSeqPosition = ^TSeqPosition;
{--------------}
{ Mode Headers }
{--------------}
TSeqMHeader6 = RECORD
ModeDataLen : BYTE;
MediumType : BYTE;
DevParam : BYTE;
BlockDescLen : BYTE;
END;
PSeqMHeader6 = ^TSeqMHeader6;
TSeqMHeader10 = RECORD
ModeDataLen : WORD;
MediumType : BYTE;
DevParam : BYTE;
Reserved1 : BYTE;
Reserved2 : BYTE;
BlockDescLen : WORD;
END;
PSeqMHeader10 = ^TSeqMHeader10;
{---------------------------}
{ Seq Mode Block Descriptor }
{---------------------------}
TSeqMBlockDesc = RECORD
DensityCode : BYTE;
NumBlocks : T3Byte;
Reserved : BYTE;
BlockLen : T3Byte;
END;
{------------------------------}
{ Dev Config Mode Select Pager }
{------------------------------}
TSeqMPageDevConfig = RECORD
PageCode : BYTE;
PageLen : BYTE;
ActiveFormat : BYTE;
ActivePartition : BYTE;
WrBuffFullRatio : BYTE;
RdBuffFullRation : BYTE;
WriteDelayTime : WORD;
Flags1 : BYTE;
GapSize : BYTE;
Flags2 : BYTE;
BuffSizeAtEW : T3Byte;
Compression : BYTE;
Reserved : BYTE;
END;
PSeqMPageDevConfig = ^TSeqMPageDevConfig;
{------------------------}
{ Medium Partitions Page }
{------------------------}
TSeqMPageMediumPar = RECORD
PageCode : BYTE;
PageLen : BYTE;
MaxAddPars : BYTE;
AddParsDefined : BYTE;
Flags : BYTE;
MediumFormatRec : BYTE;
Reserved1 : BYTE;
Reserved2 : BYTE;
ParSize : Array[1..2] of WORD;
END;
PSeqMPageMediumPar = ^TSeqMPageMediumPar;
{--------------------------}
{ Mode Error Recovery Page }
{--------------------------}
TSeqMPageErrRecovery = RECORD
PageCode : BYTE;
PageLen : BYTE;
Flags : BYTE;
ReadRetryCount : BYTE;
Reserved1 : BYTE;
Reserved2 : BYTE;
Reserved3 : BYTE;
Reserved4 : BYTE;
WriteRetryCount : BYTE;
REserved5 : BYTE;
Reserved6 : BYTE;
Reserved7 : BYTE;
END;
PSeqMPageErrRecovery = ^TSeqMPageErrRecovery;
{---------------}
{ Printer Types }
{---------------}
{----------------------------------------}
{ Parallel Printer Interface Params Page }
{----------------------------------------}
Type
TPrinterMPagePPIParams = RECORD
PageCode : BYTE;
ParamLen : BYTE;
Flags : BYTE;
Reserved : BYTE;
END;
PPrinterMPagePPIParams = ^TPrinterMPagePPIParams;
Const
prnMPagePPIParams = $03;
prnAutoFeed = $01;
prnVES = $02;
prnVCBS = $04;
prnVCBP = $08;
prnPIPC = $20;
prnParityMask = $C0;
prnParityShift = 5;
prnParityNone = $00;
prnParityEven = $40;
PrnParityOdd = $80;
{-------------------------------}
{ Printer Options Mode Sel Page }
{-------------------------------}
Type
TPrinterMPageOptions = RECORD
PageCode : BYTE;
ParamLen : BYTE;
FontID : BYTE;
Flags : BYTE;
MaxLineLen : WORD;
EVFUStartChar : CHAR;
EVFUStopChar : CHAR;
SlewOptions : BYTE;
DataTermOptions : BYTE;
Reserved1 : BYTE;
Reserved2 : BYTE;
END;
PPrinterMPageOptions = ^TPrinterMPageOptions;
Const
prnMPageOptions = $05;
prnAFC = $01;
prnSCTE = $02;
prnSlewModeMask = $30;
prnSlewModeShift = 4;
prnLineSlewMask = $F0;
prnLineSlewShift = 4;
prnFormSlewMask = $0F;
prnDataTermMask = $F0;
prnDataTermShift = 4;
{---------------------------------}
{ Printer RS-232 Mode Select Page }
{---------------------------------}
Type
TPrinterMPageRS232Params = RECORD
PageCode : BYTE;
ParamLen : BYTE;
StopBitLen : BYTE;
Flags1 : BYTE;
Flags2 : BYTE;
BPS : T3BYTE;
END;
PPrinterMPageRS232Params = ^TPrinterMPageRS232Params;
Const
prnBPCMask = $0F;
prnPacingMask = $0F;
prnPacingNone = $00;
prnPacingXONOFF = $01;
prnPacingETXACK = $02;
prnPacingDTR = $04;
prn232ParityMask = $E0;
prn232ParityShift = $6;
prn232ParityNone = $00;
prn232ParityMark = $20;
prn232ParitySpace = $40;
prn232ParityOdd = $60;
prn232ParityEven = $80;
{------------------------------}
{ SCSI-2 All Device Functions. }
{------------------------------}
{---------------------------------------------------------------------------}
Function SAL_S2ChangeDefinition( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
Flags2 : BYTE;
Definition : BYTE;
ParamSize : LONGINT;
ParamBuff : Pointer;
ReqSenSize : LONGINT;
ReqSenBuff : Pointer ): TError;
{ Issues a CHANGE DEFINITION the specified device. }
{---------------------------------------------------------------------------}
Function SAL_S2Inquiry( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
PageCode : BYTE;
InqSize : LONGINT;
InqBuff : Pointer;
ReqSenSize : LONGINT;
ReqSenBuff : Pointer ): TError;
{ Issues an INQUIRY to the specified device. }
Function SAL_S2ModeSelect( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
ModeSelSize : LONGINT;
ModeSelBuff : Pointer;
ReqSenSize : LONGINT;
ReqSenBuff : Pointer ): TError;
{ Issues a MODE SELECT to the specified device. }
Function SAL_S2ModeSense( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
Page : BYTE;
PCF : BYTE;
ModeSenSize : LONGINT;
ModeSenBuff : Pointer;
ReqSenSize : LONGINT;
ReqSenBuff : Pointer ): TError;
{ Issues a MODE SENSE to the specified device. }
Function SAL_S2RequestSense( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
ReqSenSize : LONGINT;
ReqSenBuff : Pointer ): TError;
{ Issues a REQUEST SENSE to the specified device. }
Function SAL_S2TestUnitReady( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER ): TError;
{ Issues a TEST UNIT READY to the specified device. }
{--------------------------------------------------------------------------}
{------------------------}
{ SCSI-2 DASD Functions }
{------------------------}
Function SAL_S2DasdFormat( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
VendorSpec : BYTE;
Interleave : WORD;
DataSize : LONGINT;
DataBuff : POINTER;
ReqSenSize : LONGINT;
ReqSenBuff : POINTEr ): TError;
{ Issues a DASD FORMAT to the specified device. }
Function SAL_S2DasdLockCache( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
StartBlock : LONGINT;
NumBlocks : LONGINT;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER ): TError;
{ Issues a LOCK/UNLOCK CACHE command }
Function SAL_S2DasdPreFetch( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
StartBlock : LONGINT;
NumBlocks : LONGINT;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER ): TError;
{ Issues a PRE-FETCH command }
Function SAL_S2DasdLockMedia( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER ): TError;
Function SAL_S2DasdUnLockMedia( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER ): TError;
{ These commands issue the PREVENT/ALLOW MEDIA REMOVAL command.}
Function SAL_S2DasdRead6( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
StartBlock : LONGINT;
NumBlocks : BYTE;
DataBuff : POINTER;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER ): TError;
{ These commands issue the 6 byte READ command. }
Function SAL_S2DasdRead( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
StartBlock : LONGINT;
NumBlocks : WORD;
DataBuff : POINTER;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER ): TError;
{ These commands issue the 10 byte READ COMMAND. }
Function SAL_S2DasdReadCapacity( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER;
Var LBA : LONGINT;
Var BlockSize : LONGINT ): TError;
Function SAL_S2DasdXReadCapacity( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
LBA : LONGINT;
Flags2 : BYTE;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER;
Var RLBA : LONGINT;
Var BlockSize : LONGINT ): TError;
{ These commands issue the READ CAPACITY command. }
Function SAL_S2DasdReadDefectData( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
DfDataSize : WORD;
DfDataBuff : Pointer;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER ): TError;
{ Issues a READ DEFECT DATA command }
Function SAL_S2DasdReadLong( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
StartBlock : LONGINT;
DataSize : LONGINT;
DataBuff : Pointer;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER ): TError;
{ This command issues the READ LONG command. }
Function SAL_S2DasdReassignBlocks( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
DataSize : LONGINT;
DataBuff : POINTER;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER ): TError;
{ This command issues the REASSIGN BLOCKS command. }
Function SAL_S2DasdRelease( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
ReserveID : BYTE;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER ): TError;
{ This command issues the RELEASE command. }
Function SAL_S2DasdReserve( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
ReserveID : BYTE;
ExtentSize : LONGINT;
ExtentBuff : Pointer;
ReqSenSize : LONGINT;
ReqSenBuff : Pointer ): TError;
{ This command issues the RESERVE command. }
Function SAL_S2DasdRezeroUnit( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
ReqSenSize : LONGINT;
ReqSenBuff : Pointer ): TError;
{ This command issues the REZERO UNIT command. }
Function SAL_S2DasdSearchData( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
LBA : LONGINT;
NumBlocks : WORD;
ParamSize : LONGINT;
ParamBuff : Pointer;
ReqSenSize : LONGINT;
ReqSenBuff : Pointer ): TError;
{ This command issues the SEARCH DATA command. }
Function SAL_S2DasdSeek( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
LBA : LONGINT;
ReqSenSize : LONGINT;
ReqSenBuff : Pointer ): TError;
{ This command issues the SEEK command. }
Function SAL_S2DasdSetLimits( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
StartBlock : LONGINT;
NumBlocks : WORD;
ReqSenSize : LONGINT;
ReqSenBuff : Pointer ): TError;
{ These commands issue the SET LIMITS command. }
Function SAL_S2DasdStartStopUnit( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
Flags2 : BYTE;
ReqSenSize : LONGINT;
ReqSenBuff : Pointer ): TError;
{ These commands issue the START/STOP UNIT COMMAND. }
Function SAL_S2DasdVerify( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
StartBlock : LONGINT;
NumBlocks : WORD;
DataBuff : POINTER;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER ): TError;
{ These commands issue the SET LIMITS command. }
Function SAL_S2DasdWrite( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
StartBlock : LONGINT;
NumBlocks : WORD;
DataBuff : POINTER;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER ): TError;
{ This command issues the DASD WRITE command. }
Function SAL_S2DasdWriteAndVerify( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
StartBlock : LONGINT;
NumBlocks : WORD;
DataBuff : POINTER;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER ): TError;
{ This command issues the DASD WRITE AND VERIFY command. }
Function SAL_S2DasdWriteLong( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
StartBlock : LONGINT;
NumBlocks : WORD;
DataBuff : POINTER;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER ): TError;
{ This command issues the DASD WRITE LONG command. }
Function SAL_S2DasdWriteSame( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
StartBlock : LONGINT;
NumBlocks : WORD;
DataBuff : POINTER;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER ): TError;
{ This command issues the DASD WRITE SAME command. }
(* *************************************
STARTING HERE - CODE COMMENTED OUT...
************************************* *)
(****
{────────────────────────────────────────────────────────────────────────────}
{--------------------------}
{ SCSI-2 Printer Functions }
{--------------------------}
{────────────────────────────────────────────────────────────────────────────}
Function SAL_S2PrinterFormat( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
DataSize : LONGINT;
DataBuff : Pointer;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER ): TError;
{ This command issues the PRINTER FORMAT command. }
Function SAL_S2PrinterPrint( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
DataSize : LONGINT;
DataBuff : Pointer ): TError;
{ This command issues the PRINTER PRINT command. }
Function SAL_S2PrinterRecoverData( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
DataSize : LONGINT;
DataBuff : Pointer ): TError;
{ This command issues the PRINTER RECOVER BUFFERED DATA }
Function SAL_S2PrinterSlewPrint( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
SlewVal : BYTE;
DataSize : LONGINT;
DataBuff : Pointer ): TError;
{ This command issues the PRINTER SLEW AND PRINT }
Function SAL_S2PrinterStopPrint( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
VendorByte : BYTE ): TError;
{ This command issues the PRINTER STOP PRINT }
Function SAL_S2PrinterSyncBuffer( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE ): TError;
{ This command issues the PRINTER SYNCHRONIZE BUFFER }
{--------------------------------------------------------------------------}
{----------------------------}
{ SCSI-2 Processor Functions }
{----------------------------}
Function SAL_S2ProcSend( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
DataSize : LONGINT;
DataBuff : Pointer ): TError;
{ This command issues the PROCESSOR SEND command }
Function SAL_S2ProcReceive( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
DataSize : LONGINT;
DataBuff : Pointer ): TError;
{ This command issues the PROCESSOR RECEIVE command }
{--------------------------------------------------------------------------}
Function SAL_S2SeqErase( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE ): TError;
{ This command issues the SEQUENTIAL ERASE command }
Function SAL_S2SeqLoadUnload( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
Flags2 : BYTE ): TError;
{ This command issues the SEQUENTIAL LOAD/UNLOAD command }
Function SAL_S2SeqLocate( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
LBA : LONGINT;
Partition : BYTE ): TError;
{ This command issues the SEQUENTIAL LOCATE command }
Function SAL_S2SeqRead( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
DataSize : LONGINT;
DataBuff : Pointer ): TError;
{ This command issues the SEQUENTIAL READcommand }
Function SAL_S2SeqReadBlockLimits( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
DataBuff : Pointer ): TError;
{ This command issues the SEQUENTIAL READ BLOCK LIMITS command }
Function SAL_S2SeqReadPosition( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
DataBuff : Pointer ): TError;
{ This command issues the SEQUENTIAL READ POSITION command }
Function SAL_S2SeqReadReverse( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
DataSize : LONGINT;
DataBuff : Pointer ): TError;
{ This command issues the SEQUENTIAL READ REVERSE command }
Function SAL_S2SeqRecoverData( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
DataSize : LONGINT;
DataBuff : Pointer ): TError;
{ This command issues the SEQUENTIAL RECOVER BUFFERED DATA command }
Function SAL_S2SeqReleaseUnit( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE ): TError;
{ This command issues the SEQUENTIAL RELEASE UNIT command }
Function SAL_S2SeqReserveUnit( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE ): TError;
{ This command issues the SEQUENTIAL RESERVE UNIT command }
Function SAL_S2SeqRewind( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE ): TError;
{ This command issues the SEQUENTIAL REWIND command }
Function SAL_S2SeqSpace( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
Count : LONGINT ): TError;
{ This command issues the SEQUENTIAL SPACE command }
Function SAL_S2SeqVerify( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
DataSize : LONGINT;
DataBuff : Pointer ): TError;
{ This command issues the SEQUENTIAL VERIFY command }
Function SAL_S2SeqWrite( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
DataSize : LONGINT;
DataBuff : Pointer ): TError;
{ This command issues the SEQUENTIAL WRITE command }
Function SAL_S2SeqWriteFilemarks( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
NumMarks : LONGINT ): TError;
{ This command issues the SEQUENTIAL ERASE command }
{--------------------------------------------------------------------------}
{-------------------------}
{ SCSI-2 CD-ROM Functions }
{-------------------------}
Function SAL_S2CDPauseResume( Bus : BYTE;
SubChannel : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
Flags2 : BYTE ): TError;
{ This command issues the CD-ROM PAUSE/RESUME command }
Function SAL_S2CDPlayAudio10( Bus : BYTE;
SubChannel : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
StartLBA : LONGINT;
DataSize : LONGINT ): TError;
{ This command issues the CD-ROM PLAY AUDIO 10 command }
Function SAL_S2CDPlayAudio12( Bus : BYTE;
SubChannel : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
StartLBA : LONGINT;
DataSize : LONGINT ): TError;
{ This command issues the CD-ROM PLAY AUDIO 12 command }
Function SAL_S2CDPlayAudioMSF( Bus : BYTE;
SubChannel : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
SM,SS,SF : BYTE;
EM,ES,EF : BYTE ): TError;
{ This command issues the CD-ROM PLAY AUDIO MSF command }
Function SAL_S2CDPlayAudioTrackIdx( Bus : BYTE;
SubChannel : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
ST,SI : BYTE;
ET,EI : BYTE ): TError;
{ This command issues the CD-ROM PLAY AUDIO TRACK INDEX }
Function SAL_S2CDPlayAudioTrackRel( Bus : BYTE;
SubChannel : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
TrackRelLBA : LONGINT;
DataSize : LONGINT ): TError;
{ This command issues the CD-ROM PLAY AUDIO--TRACK RELATIVE ommand }
Function SAL_S2CDReadCapacity( Bus : BYTE;
SubChannel : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
LBA : LONGINT;
DataBuff : Pointer ): TError;
{ This command issues the CD-ROM READ CAPACITY command }
Function SAL_S2CDReadHeader( Bus : BYTE;
SubChannel : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
LBA : LONGINT;
DataSize : LONGINT;
DataBuff : Pointer ): TError;
{ This command issues the CD-ROM PAUSE/RESUME command }
Function SAL_S2CDReadSubChannel( Bus : BYTE;
SubChannel : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
Flags2 : BYTE;
LBA : LONGINT;
DataSize : LONGINT;
DataBuff : Pointer ): TError;
{ This command issues the CD-ROM READ SUB-CHANNEL command }
Function SAL_S2CDReadTOC( Bus : BYTE;
SubChannel : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
StartTrack : BYTE;
DataSize : LONGINT;
DataBuff : Pointer ): TError;
{ This command issues the CD-ROM READ TOC command }
{--------------------------------------------------------------------------}
{--------------------------}
{ SCSI-2 Scanner Functions }
{--------------------------}
*********************** *)
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function SAL_S2ChangeDefinition( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
Flags2 : BYTE;
Definition : BYTE;
ParamSize : LONGINT;
ParamBuff : Pointer;
ReqSenSize : LONGINT;
ReqSenBuff : Pointer ): TError;
[PARAMETERS]
Handle ?
Bus Device Host Adapter Number
Target Device Target ID
Lun Device Logical Unit Number
Flags ?
Flags2 ?
Definition ?
ParamSize Size of New Definition Data
ParamBuff Pointer to New Definition Data
ReqSenSize Size of Request Sense Buffer
ReqSenBuff Pointer to Request Sense Buffer
[RETURNS]
[DESCRIPTION]
Issues a CHANGE DEFINITION the specified device.
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function SAL_S2Inquiry( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
PageCode : BYTE;
InqSize : LONGINT;
InqBuff : Pointer;
ReqSenSize : LONGINT;
ReqSenBuff : Pointer ): TError;
[PARAMETERS]
Handle ?
Bus Device Host Adapter Number
Target Device Target ID
Lun Device Logical Unit Number
Flags ?
PageCode Page Code
InqSize Size of Inquiry Data Buffer
InqBuff Pointer to Inquiry Data Buffer
ReqSenSize Size of Request Sense Buffer
ReqSenBuff Pointer to Request Sense Buffer
[RETURNS]
[DESCRIPTION]
Issues an INQUIRY to the specified device.
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function SAL_S2ModeSelect( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
ModeSelSize : LONGINT;
ModeSelBuff : Pointer;
ReqSenSize : LONGINT;
ReqSenBuff : Pointer ): TError;
[PARAMETERS]
Handle ?
Bus Device Host Adapter Number
Target Device Target ID
Lun Device Logical Unit Number
Flags ?
ModeSelSize Size of Mode Select Buffer
ModeSelBuff Pointer to Mode Select Buffer
ReqSenSize Size of Request Sense Buffer
ReqSenBuff Pointer to Request Sense Buffer
[RETURNS]
[DESCRIPTION]
Issues a MODE SELECT to the specified device.
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function SAL_S2ModeSense( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
Page : BYTE;
PCF : BYTE;
ModeSenSize : LONGINT;
ModeSenBuff : Pointer;
ReqSenSize : LONGINT;
ReqSenBuff : Pointer ): TError;
[PARAMETERS]
Handle ?
Bus Device Host Adapter Number
Target Device Target ID
Lun Device Logical Unit Number
Flags ?
Page Request Page Number
PCF Page Code Format Flag (1=Page Code Format,0=Not)
ModeSenSize Size of Mode Sense Buffer
ModeSenBuff Pointer to Mode Sense Buffer
ReqSenSize Size of Request Sense Buffer
ReqSenBuff Pointer to Request Sense Buffer
[RETURNS]
[DESCRIPTION]
Issues a MODE SENSE to the specified device.
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function SAL_S2RequestSense( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
ReqSenSize : LONGINT;
ReqSenBuff : Pointer ): TError;
[PARAMETERS]
Handle ?
Bus Device Host Adapter Number
Target Device Target ID
Lun Device Logical Unit Number
Flags ?
ReqSenSize Size of Request Sense Buffer
ReqSenBuff Pointer to Request Sense Buffer
[RETURNS]
[DESCRIPTION]
Issues a REQUEST SENSE to the specified device.
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function SAL_S2TestUnitReady( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
ReqSenSize : LONGINT;
ReqSenBuff : Pointer ): TError;
[PARAMETERS]
Handle ?
Bus Device Host Adapter Number
Target Device Target ID
Lun Device Logical Unit Number
Flags ?
ReqSenSize Size of Request Sense Buffer
ReqSenBuff Pointer to Request Sense Buffer
[RETURNS]
[DESCRIPTION]
Issues a TEST UNIT READY to the specified device.
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function SAL_S2DasdFormat( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
VendorSpec : BYTE;
Interleave : WORD;
DataSize : LONGINT;
DataBuff : POINTER;
ReqSenSize : LONGINT;
ReqSenBuff : Pointer ): TError;
[PARAMETERS]
Handle ?
Bus Device Host Adapter Number
Target Device Target ID
Lun Device Logical Unit Number
Flags ?
VendorSpec ?
Interleave Desired Interleave
DataSize Size of Format Information Data
DataBuff Pointer to Format Infomation Data
ReqSenSize Size of Request Sense Buffer
ReqSenBuff Pointer to Request Sense Buffer
[RETURNS]
[DESCRIPTION]
Issues a DASD FORMAT to the specified device.
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function SAL_S2DasdLockCache( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
StartBlock : LONGINT;
NumBlocks : LONGINT;
ReqSenSize : LONGINT;
ReqSenBuff : Pointer ): TError;
[PARAMETERS]
Handle ?
Bus Device Host Adapter Number
Target Device Target ID
Lun Device Logical Unit Number
Flags ?
StartBlock Starting Block to Cache Lock
NumBlocks Number of Blocks to Cache Lock
ReqSenSize Size of Request Sense Buffer
ReqSenBuff Pointer to Request Sense Buffer
[RETURNS]
[DESCRIPTION]
Issues a LOCK/UNLOCK CACHE command.
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function SAL_S2DasdPreFetch( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
StartBlock : LONGINT;
NumBlocks : LONGINT;
ReqSenSize : LONGINT;
ReqSenBuff : Pointer ): TError;
[PARAMETERS]
Handle ?
Bus Device Host Adapter Number
Target Device Target ID
Lun Device Logical Unit Number
Flags ?
StartBlock Starting Block to PreFetch
NumBlocks Number of Blocks to PreFetch
ReqSenSize Size of Request Sense Buffer
ReqSenBuff Pointer to Request Sense Buffer
[RETURNS]
[DESCRIPTION]
Issues a PRE-FETCH command.
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function SAL_S2DasdLockMedia( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
ReqSenSize : LONGINT;
ReqSenBuff : Pointer ): TError;
[PARAMETERS]
Handle ?
Bus Device Host Adapter Number
Target Device Target ID
Lun Device Logical Unit Number
Flags ?
ReqSenSize Size of Request Sense Buffer
ReqSenBuff Pointer to Request Sense Buffer
[RETURNS]
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function SAL_S2DasdUnLockMedia( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
ReqSenSize : LONGINT;
ReqSenBuff : Pointer ): TError;
[PARAMETERS]
Handle ?
Bus Device Host Adapter Number
Target Device Target ID
Lun Device Logical Unit Number
Flags ?
ReqSenSize Size of Request Sense Buffer
ReqSenBuff Pointer to Request Sense Buffer
[RETURNS]
[DESCRIPTION]
These commands issue the PREVENT/ALLOW MEDIA REMOVAL command.
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function SAL_S2DasdRead6( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
StartBlock : LONGINT;
NumBlocks : BYTE;
DataBuff : POINTER;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER ): TError;
[PARAMETERS]
Handle ?
Bus Device Host Adapter Number
Target Device Target ID
Lun Device Logical Unit Number
Flags ?
StartBlock Starting Block to Read
NumBlocks Number of Blocks to Read
DataBuff Pointer to Read Data Buffer
ReqSenSize Size of Request Sense Buffer
ReqSenBuff Pointer to Request Sense Buffer
[RETURNS]
[DESCRIPTION]
These commands issue the 6 byte READ command.
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function SAL_S2DasdRead( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
StartBlock : LONGINT;
NumBlocks : WORD;
DataBuff : POINTER;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER ): TError;
[PARAMETERS]
Handle ?
Bus Device Host Adapter Number
Target Device Target ID
Lun Device Logical Unit Number
Flags ?
StartBlock Starting Block to Read
NumBlocks Number of Blocks to Read
DataBuff Pointer to Read Data Buffer
ReqSenSize Size of Request Sense Buffer
ReqSenBuff Pointer to Request Sense Buffer
[RETURNS]
[DESCRIPTION]
These commands issue the 10 byte READ COMMAND.
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function SAL_S2DasdReadCapacity( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER;
Var LBA : LONGINT;
Var BlockSize : LONGINT ): TError;
[PARAMETERS]
Handle ?
Bus Device Host Adapter Number
Target Device Target ID
Lun Device Logical Unit Number
Flags ?
ReqSenSize Size of Request Sense Buffer
ReqSenBuff Pointer to Request Sense Buffer
LBA VAR Returned Last Block Address
BlockSize VAR Returned Block Size
[RETURNS]
Function : ?
(VAR : [LBA] Last Block Address)
(VAR : [BlockSize] Block Size)
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function SAL_S2DasdXReadCapacity( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
LBA : LONGINT;
Flags2 : BYTE;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER;
Var RLBA : LONGINT;
Var BlockSize : LONGINT ): TError;
[PARAMETERS]
Handle ?
Bus Device Host Adapter Number
Target Device Target ID
Lun Device Logical Unit Number
Flags ?
LBA ?
Flags2 ?
ReqSenSize Size of Request Sense Buffer
ReqSenBuff Pointer to Request Sense Buffer
RLBA VAR Returned Last Block Address
BlockSize VAR Returned Block Size
[RETURNS]
Function : ?
(VAR : [RLBA] Last Block Address)
(VAR : [BlockSize] Block Size)
[DESCRIPTION]
These commands issue the READ CAPACITY command.
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function SAL_S2DasdReadDefectData( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
DfDataSize : WORD;
DfDataBuff : Pointer;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER ): TError;
[PARAMETERS]
Handle ?
Bus Device Host Adapter Number
Target Device Target ID
Lun Device Logical Unit Number
Flags ?
DfDataSize Size of Defect List Data Buffer
DfDataBuff Pointer to Defect List Data Buffer
ReqSenSize Size of Request Sense Buffer
ReqSenBuff Pointer to Request Sense Buffer
[RETURNS]
[DESCRIPTION]
Issues a READ DEFECT DATA command.
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function SAL_S2DasdReadLong( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
StartBlock : LONGINT;
DataSize : LONGINT;
DataBuff : Pointer;
ReqSenSize : LONGINT;
ReqSenBuff : Pointer ): TError;
[PARAMETERS]
Handle ?
Bus Device Host Adapter Number
Target Device Target ID
Lun Device Logical Unit Number
Flags ?
StartBlock Starting Block to Start Read
DataSize Size of Read Data Buffer
DataBuff Pointer to Read Data Buffer
ReqSenSize Size of Request Sense Buffer
ReqSenBuff Pointer to Request Sense Buffer
[RETURNS]
[DESCRIPTION]
This command issues the READ LONG command.
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function SAL_S2DasdReassignBlocks( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
DataSize : LONGINT;
DataBuff : POINTER;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER ): TError;
[PARAMETERS]
Handle ?
Bus Device Host Adapter
Target Device Target ID
Lun Device Logical Unit Number
Flags ?
DataSize Length of Block Reassign Data List
DataBuff Pointer to Block Reassign Data List
ReqSenSize Size of Request Sense Buffer
ReqSenBuff Pointer to Request Sense Buffer
[RETURNS]
[DESCRIPTION]
This command issues the REASSIGN BLOCKS command.
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function SAL_S2DasdRelease( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
ReserveID : BYTE;
ReqSenSize : LONGINT;
ReqSenBuff : Pointer ): TError;
[PARAMETERS]
Handle ?
Bus Device Host Adapter Number
Target Device Target ID
Lun Device Logical Unit Number
Flags ?
ReserveID ?
ReqSenSize Size of Request Sense Buffer
ReqSenBuff Pointer to Request Sense Buffer
[RETURNS]
[DESCRIPTION]
This command issues the RELEASE command.
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function SAL_S2DasdReserve( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
ReserveID : BYTE;
ExtentSize : LONGINT;
ExtentBuff : Pointer;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER ): TError;
[PARAMETERS]
Handle ?
Bus Device Host Adapter Number
Target Device Target ID
Lun Device Logical Unit Number
Flags ?
ReserveID ?
ExtentSize Length of Reservation Extent Data
ExtentBuff Pointer to Reservation Extent Data
ReqSenSize Size of Request Sense Buffer
ReqSenBuff Pointerto Request Sense Buffer
[RETURNS]
[DESCRIPTION]
This command issues the RESERVE command.
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function SAL_S2DasdRezeroUnit( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER ): TError;
[PARAMETERS]
Handle ?
Bus Device Host Adapter Number
Target Device Target ID
Lun Device Logical Unit Number
Flags ?
ReqSenSize Size of Request Sense Buffer
ReqSenBuff Pointer to Request Sense Buffer
[RETURNS]
[DESCRIPTION]
This command issues the REZERO UNIT command.
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function SAL_S2DasdSearchData( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
LBA : LONGINT;
NumBlocks : WORD;
ParamSize : LONGINT;
ParamBuff : Pointer;
ReqSenSize : LONGINT;
ReqSenBuff : Pointer ): TError;
[PARAMETERS]
Handle ?
Bus Device Host Adapter Number
Target Device Target ID
Lun Device Logical Unit Number
Flags ?
LBA ?
NumBlocks Number of Blocks to ?
ParamSize Size of Search Data Buffer
ParamBuff Pointer to Search Data Buffer
ReqSenSize Size of Request Sense Buffer
ReqSenBuff Pointer to Request Sense Buffer
[RETURNS]
[DESCRIPTION]
This command issues the SEARCH DATA command.
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function SAL_S2DasdSeek( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
LBA : LONGINT;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER ): TError;
[PARAMETERS]
Handle ?
Bus Device Host Adapter Number
Target Device Target ID
Lun Device Logical Unit Number
Flags ?
LBA ?
ReqSenSize Size of Request Sense Buffer
ReqSenBuff Pointer to Request Sense Data
[RETURNS]
[DESCRIPTION]
This command issues the SEEK command.
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function SAL_S2DasdSetLimits( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
StartBlock : LONGINT;
NumBlocks : WORD;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER ): TError;
[PARAMETERS]
Handle ?
Bus Device Host Adapter Number
Target Device Target ID
Lun Device Logical Unit Number
Flags ?
StartBlock Starting Block of Limit
NumBlocks Number of Blocks to Set Limit On
ReqSenSize Size of Request Sense Buffer
ReqSenBuff Pointer to Request Sense Buffer
[RETURNS]
[DESCRIPTION]
These commands issue the SET LIMITS command.
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function SAL_S2DasdStartStopUnit( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
Flags2 : BYTE;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER ): TError;
[PARAMETERS]
Handle ?
Bus Device Host Adapter Number
Target Device Target ID
Lun Device Logical Unit Number
Flags ?
Flags2 ?
ReqSenSize Size of Request Sense Buffer
ReqSenBuff Pointer to Request Sense Buffer
[RETURNS]
[DESCRIPTION]
These commands issue the START/STOP UNIT COMMAND.
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function SAL_S2DasdVerify( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
StartBlock : LONGINT;
NumBlocks : WORD;
DataBuff : Pointer;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER ): TError;
[PARAMETERS]
Handle ?
Bus Device Host Adapter Number
Target Device Target ID
Lun Device Logical Unit Number
Flags : BYTE;
StartBlock Starting Block to
NumBlocks Number of Blocks to Verify
DataBuff Pointer to Verify Data Buffer
ReqSenSize Size of Request Sense Buffer
ReqSenBuff Pointer to Request Sense Buffer
[RETURNS]
[DESCRIPTION]
This command issues the DASD VERIFY command.
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function SAL_S2DasdWrite( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
StartBlock : LONGINT;
NumBlocks : WORD;
DataBuff : POINTER;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER ): TError;
[PARAMETERS]
Handle ?
Bus Device Host Adapter Number
Target Device Target ID
Lun Device Logical Unit Number
Flags ?
StartBlock Starting Block to Write
NumBlocks Number of Blocks to Write
DataBuff Pointer to Write Buffer
ReqSenSize Size of Request Sense Buffer
ReqSenBuff Pointer to Request Sense Buffer
[RETURNS]
[DESCRIPTION]
This command issues the DASD WRITE command.
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function SAL_S2DasdWriteAndVerify( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
StartBlock : LONGINT;
NumBlocks : WORD;
DataBuff : POINTER;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER ): TError;
[PARAMETERS]
Handle ?
Bus Device Host Adapter Number
Target Device Target ID
Lun Device Logical Unit Number
Flags ?
StartBlock Starting Block to Write
NumBlocks Number of Blocks to Write
DataBuff Pointer to Write Buffer
ReqSenSize Size of Request Sense Buffer
ReqSenBuff Pointer to Request Sense Buffer
[RETURNS]
[DESCRIPTION]
This command issues the DASD WRITE AND VERIFY command.
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function SAL_S2DasdWriteLong( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
StartBlock : LONGINT;
NumBlocks : WORD;
DataBuff : POINTER;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER ): TError;
[PARAMETERS]
Handle ?
Bus Device Host Adapter Number
Target Device Target ID
Lun Device Logical Unit Number
Flags ?
StartBlock Starting Block to Write
NumBlocks Number of Blocks to Write
DataBuff Pointer to Write Buffer
ReqSenSize Size of Request Sense Buffer
ReqSenBuff Pointer to Request Sense Buffer
[RETURNS]
[DESCRIPTION]
This command issues the DASD WRITE LONG command.
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function SAL_S2DasdWriteSame( Handle : THandle;
Bus : BYTE;
Target : BYTE;
Lun : BYTE;
Flags : BYTE;
StartBlock : LONGINT;
NumBlocks : WORD;
DataBuff : POINTER;
ReqSenSize : LONGINT;
ReqSenBuff : POINTER ): TError;
[PARAMETERS]
Handle ?
Bus Device Host Adapter Number
Target Device Target ID
Lun Device Logical Unit Number
Flags ?
StartBlock Starting Block to Write
NumBlocks Number of Blocks to Write
DataBuff Pointer to Write Buffer
ReqSenSize Size of Request Sense Buffer
ReqSenBuff Pointer to Request Sense Buffer
[RETURNS]
[DESCRIPTION]
This command issues the DASD WRITE SAME command.
[SEE-ALSO]
[EXAMPLE]