;-----------------------------------------------------
; SCSI Command Exerciser (public)
;
; (C) Mikhail Mavritsin (rtester@rlab.ru)
;
;-----------------------------------------------------

[INFO]
;
; Version 0	Cmd Name=CDB_Len CDB0 CDB1 .. CDB[CDB_Len-1]
; Version 1	Cmd Name=CDB_Len I/O/N BufSize CDB0 CDB1 .. CDB[CDB_Len-1]
;
; "CDB_Len"	must be in DECIMAL format
; "BufSize"	must be in HEXADECIMAL or STRING format w/o "0x" and spaces
; "CDBxx"	must be in HEXADECIMAL or STRING format w/o "0x" and spaces
; I/O/N		"I" for DATA-IN mode
;		"O" for DATA-OUT mode
;		"N" for NO-DATA-TRANSFER mode
; Timeout	command execution timeout, msec
; Loop Mode	0/1 - used for command execution. ErrorBox is OFF during LOOP !
; Poll Time	command execution polling time in loop mode, msec
; Error Box	0/1 - enable or disable showing ErrorBox if command failed
;
Version=0
Timeout=30000
Loop Mode=0
Poll Time=1000
Error Box=1

[GENERAL]
Test Unit Ready=06 00 00 00 00 00 00
Start Unit=06 1B 01 00 00 01 00
Stop Unit=06 1B 01 00 00 00 00
;
Read Capacity (10)=10 25 00 00 00 00 00 00 00 00 00
Read Capacity (16)=16 9E 10 00 00 00 00 00 00 00 00 len3 len2 len1 len0 00 00
;
; ========= Defect List =========
;
Read Defect List P (12) pCHS=12 B7 15 00 00 00 00 00 00 00 08 00 00
Read Defect List P (12) BFI=12 B7 14 00 00 00 00 00 00 00 08 00 00
;
Read Defect List G (12) pCHS=12 B7 0D 00 00 00 00 00 00 00 08 00 00
Read Defect List G (12) BFI=12 B7 0C 00 00 00 00 00 00 00 08 00 00 
;
; ========= Buffer I/O =========
;
Read Buffer=10 3C mode buf_ID ofs2 ofs1 ofs0 len2 len1 len0 00
Read Buffer (16)=16 9B flags|mode ofs7 ofs6 ofs5 ofs4 ofs3 ofs2 ofs1 ofs0 len3 len2 len1 len0 buf_ID 00
Write Buffer=10 3B mode buf_ID ofs2 ofs1 ofs0 len2 len1 len0 00
;
; ========= Disk I/O - Read =========
;
Read (6)=6 08 LBA2[20:16] LBA1 LBA0 cnt 00
Read (10)=10 28 flags LBA3 LBA2 LBA1 LBA0 00 cnt1 cnt0 00
Read (12)=12 A8 flags LBA3 LBA2 LBA1 LBA0 cnt3 cnt2 cnt1 cnt0 00 00
Read (16)=16 88 flags LBA7 LBA6 LBA5 LBA4 LBA3 LBA2 LBA1 LBA0 cnt3 cnt2 cnt1 cnt0 00 00
;
Read LONG (10)=10 3E flags LBA3 LBA2 LBA1 LBA0 00 bytes1 bytes0 00
Read LONG (16)=16 9E 11 LBA7 LBA6 LBA5 LBA4 LBA3 LBA2 LBA1 LBA0 00 00 bytes1 bytes0 flags 00
;
; ========= Disk I/O - Write =========
;
Write (6)=6 0A LBA2[20:16] LBA1 LBA0 cnt 00
Write (10)=10 2A flags LBA3 LBA2 LBA1 LBA0 00 cnt1 cnt0 00
Write (12)=12 AA flags LBA3 LBA2 LBA1 LBA0 cnt3 cnt2 cnt1 cnt0 00 00
Write (16)=16 8A flags LBA7 LBA6 LBA5 LBA4 LBA3 LBA2 LBA1 LBA0 cnt3 cnt2 cnt1 cnt0 00 00
;
Write Verify (10)=10 2E flags LBA3 LBA2 LBA1 LBA0 00 cnt1 cnt0 00
Write Verify (12)=12 AE flags LBA3 LBA2 LBA1 LBA0 cnt3 cnt2 cnt1 cnt0 00 00
Write Verify (16)=16 8E flags LBA7 LBA6 LBA5 LBA4 LBA3 LBA2 LBA1 LBA0 cnt3 cnt2 cnt1 cnt0 00 00
;
Write Same (10)=10 41 flags LBA3 LBA2 LBA1 LBA0 00 cnt1 cnt0 00
Write Same (16)=16 93 flags LBA7 LBA6 LBA5 LBA4 LBA3 LBA2 LBA1 LBA0 cnt3 cnt2 cnt1 cnt0 00 00
;
Write LONG (10)=10 3F flags LBA3 LBA2 LBA1 LBA0 00 bytes1 bytes0 00
Write LONG (16)=16 9F flags[7:5]]|11 LBA7 LBA6 LBA5 LBA4 LBA3 LBA2 LBA1 LBA0 00 00 bytes1 bytes0 00 00
;
; ========= Disk I/O - Seek =========
;
Seek (6)=6 0B LBA2[20:16] LBA1 LBA0 00 00
Seek (10)=10 2B 00 LBA3 LBA2 LBA1 LBA0 00 00 00 00
;
; ========= Disk I/O - Verify =========
;
Verify (10)=10 2F flags LBA3 LBA2 LBA1 LBA0 00 cnt1 cnt0 00
Verify (12)=12 AF flags LBA3 LBA2 LBA1 LBA0 cnt3 cnt2 cnt1 cnt0 00 00
Verify (16)=16 8F flags LBA7 LBA6 LBA5 LBA4 LBA3 LBA2 LBA1 LBA0 cnt3 cnt2 cnt1 cnt0 00 00
;
; ========= Common Commands =========
;
Inquiry=06 12 00/01 nCP 00 len 00
Log Sense=10 4D 00 page 00 00 prm1 prm0 len1 len0 00
Mode Select (6)=06 15 SP 00 00 len 00
Mode Select (10)=10 55 SP nCP 00 00 00 00 len1 len0 00
Mode Sense (6)=06 1A DBD.3 PCF|nPage nSubPage len0 00
Mode Sense (10)=10 5A LLBAA.4_DBD.3 PCF|nPage nSubPage 00 00 00 len1 len0 00
Request Sense=06 03 00 00 00 30 00
Send Diagnostic=06 1D flag1 00 len1 len0 00
Receive Diagnostic=06 1C pcv pagecode len1 len0 00
;
