Dim eldata(1024) As Integer Dim retval As Integer Dim ha As Integer Dim target As Integer Dim lun As Integer Dim results As String Dim inqstr As String Dim i As Integer Dim NL Dim length As Integer Dim vendor As String Dim vers As String Dim product As String Dim source As Integer Dim picker As Integer Dim dest As Integer Dim x As Object Dim bytecount As Integer Dim dataoffset As Integer Dim ellength As Integer Dim pvol As Integer Set x = CreateObject("Logger.Application") x.WriteLine "Jukebox command test program " x.WriteLine "" pvol = 0 picker = 86 source = 82 dest = 0 bytecount = 0 dataoffset = 0 target = 6 ha = 2 lun = 0 retval = SCSIInquiry(ha,target,lun,eldata) If retval <> 1 Then MsgBox "Inquiry failed - Status = " & retval Stop Else retval = SCSIGetVendor(ha,target,lun,vendor) retval = SCSIGetProduct(ha,target,lun,product) retval = SCSIGetVersion(ha,target, lun , vers) results = "Vendor = " & vendor & " Product = " & product & " Version = " & vers x.Write "Inquiry data = " x.WriteLine results End If retval = SCSIReadElementStatus(ha,target,lun,2,0,255,1024,eldata) If retval <> 0 Then MsgBox "Read Element Status failed - Status = " & retval Stop Else dataoffset = 8 bytecount = eldata(5) + eldata(6) + eldata(7) ellength = eldata(dataoffset + 2) + eldata(dataoffset + 3) x.WriteLine "" x.WriteLine "" x.Write "Element type = " & eldata(8) If (eldata(8) = 1) Then x.WriteLine " - Tape Pickers" If (eldata(8) = 2) Then x.WriteLine " - Cartridge Magazine Slots" If (eldata(8) = 3) Then x.WriteLine " - Tape Drives" If (eldata(9) And 128) Then x.WriteLine "PVolTag = 1" pvol = 1 Else x.WriteLine "PVolTag = 0" pvol = 0 End If If (eldata(9) And 64) Then x.WriteLine "AVolTag = 1" Else x.WriteLine "AVolTag = 0" End If x.WriteLine "Element Descriptor Length = " & ellength x.Writeline "Byte Count of Descriptor data = " & bytecount x.WriteLine "First Element Address = " & eldata(0) & eldata(1) x.WriteLine "Number of Elements = " & eldata(2) & eldata(3) x.WriteLine "Number of bytes of element status = " & bytecount x.WriteLine "" dataoffset = dataoffset + 8 bytecount = bytecount - 8 While (bytecount > 0) x.WriteLine "" x.WriteLine "" x.WriteLine "Element Address = " & eldata(dataoffset) & eldata(dataoffset+1) If (eldata(dataoffset+2) And 1) Then x.WriteLine " - Full, " Else x.WriteLine " - Empty, " End If If (eldata(dataoffset+2) And 4) Then x.Write " - Except = 1, " Else x.Write " - Except = 0, " End If If (eldata(dataoffset+2) And 8) Then x.Write "Access = 1, " Else x.Write "Access = 0, " End If x.WriteLine "" x.Write " - Additional Sense Code = " & eldata(dataoffset + 4) x.WriteLine ", Additional Sense Code Qualifier = " & eldata(dataoffset + 5) If (eldata(dataoffset + 6) And 128) Then x.Write " - SValid = 1 " Else x.Write" - SValid = 0, " End If If (eldata(dataoffset + 6) And 64) Then x.Write "Invert = 1 " Else x.Write "Invert = 0" End If x.Writeline "" x.WriteLine " - Source Storage Element Address = " & eldata(dataoffset + 10) & eldata(dataoffset + 11) If (pvol = 1) Then x.Write " - Primary Volume Tag Information = " For i = 12 To 47 x.Write eldata(dataoffset + i) Next i End If bytecount = bytecount - ellength dataoffset = dataoffset + ellength Wend x.WriteLine "" End If x.WriteLine "-------------------------------------------------------" retval = SCSIReadElementStatus(ha,target,lun,1,0,255,1024,eldata) If retval <> 0 Then MsgBox "Read Element Status failed - Status = " & retval Stop Else dataoffset = 8 bytecount = eldata(5) + eldata(6) + eldata(7) ellength = eldata(dataoffset + 2) + eldata(dataoffset + 3) x.WriteLine "" x.WriteLine "" x.Write "Element type = " & eldata(8) If (eldata(8) = 1) Then x.WriteLine " - Tape Pickers" If (eldata(8) = 2) Then x.WriteLine " - Cartridge Magazine Slots" If (eldata(8) = 3) Then x.WriteLine " - Tape Drives" x.WriteLine "First Element Address = " & eldata(0) & eldata(1) x.WriteLine "Number of Elements = " & eldata(2) & eldata(3) x.WriteLine "Number of bytes of element status = " & bytecount x.WriteLine "Element Descriptor Length = " & ellength x.WriteLine "" dataoffset = dataoffset + 8 bytecount = bytecount - 8 While (bytecount > 0) x.WriteLine "" x.WriteLine "" x.WriteLine "Element Address = " & eldata(dataoffset) & eldata(dataoffset+1) If (eldata(dataoffset+2) And 1) Then x.WriteLine " - Full, " Else x.WriteLine " - Empty, " End If If (eldata(dataoffset+2) And 4) Then x.Write " - Except = 1, " Else x.Write " - Except = 0, " End If If (eldata(dataoffset+2) And 8) Then x.Write "Access = 1, " Else x.Write "Access = 0, " End If x.WriteLine "" x.Write " - Additional Sense Code = " & eldata(dataoffset + 4) x.WriteLine ", Additional Sense Code Qualifier = " & eldata(dataoffset + 5) If (eldata(dataoffset + 6) And 128) Then x.Write " - SValid = 1 " Else x.Write" - SValid = 0, " End If If (eldata(dataoffset + 6) And 64) Then x.Write "Invert = 1 " Else x.Write "Invert = 0" End If x.Writeline "" x.WriteLine " - Source Storage Element Address = " & eldata(dataoffset + 10) & eldata(dataoffset + 11) If (pvol = 1) Then x.Write " - Primary Volume Tag Information = " For i = 12 To 47 x.Write eldata(dataoffset + i) Next i End If bytecount = bytecount - ellength dataoffset = dataoffset + ellength Wend x.WriteLine "" End If x.WriteLine "-------------------------------------------------------" retval = SCSIReadElementStatus(ha,target,lun,4,0,255,1024,eldata) If retval <> 0 Then MsgBox "Read Element Status failed - Status = " & retval Stop Else dataoffset = 8 bytecount = eldata(5) + eldata(6) + eldata(7) ellength = eldata(dataoffset + 2) + eldata(dataoffset + 3) x.WriteLine "" x.WriteLine "" x.Write "Element type = " & eldata(8) If (eldata(8) = 1) Then x.WriteLine " - Tape Pickers" If (eldata(8) = 2) Then x.WriteLine " - Cartridge Magazine Slots" If (eldata(8) = 4) Then x.WriteLine " - Tape Drives" x.WriteLine "First Element Address = " & eldata(0) & eldata(1) x.WriteLine "Number of Elements = " & eldata(2) & eldata(3) x.WriteLine "Number of bytes of element status = " & bytecount x.WriteLine "Element Descriptor Length = " & ellength x.WriteLine "" dataoffset = dataoffset + 8 bytecount = bytecount - 8 While (bytecount > 0) x.Write "Element Address = " & eldata(dataoffset) & eldata(dataoffset+1) x.WriteLine "" If (eldata(dataoffset+2) And 1) Then x.WriteLine " - Full, " Else x.WriteLine " - Empty, " End If If (eldata(dataoffset+2) And 4) Then x.Write " - Except = 1, " Else x.Write " - Except = 0, " End If If (eldata(dataoffset+2) And 8) Then x.Write "Access = 1, " Else x.Write "Access = 0, " End If x.WriteLine "" x.Write " - Additional Sense Code = " & eldata(dataoffset + 4) x.WriteLine ", Additional Sense Code Qualifier = " & eldata(dataoffset + 5) If (eldata(dataoffset + 6) And 128) Then x.Write " - Not Bus = 1," Else x.Write " - Not Bus = 0," End If If (eldata(dataoffset + 6) And 32) Then x.Write " ID Valid = 1," Else x.Write " ID Valid = 0," End If If (eldata(dataoffset + 6) And 16) Then x.Write " LU Valid = 1," Else x.Write " LU Valid = 0," End If x.WriteLine "Logical Unit Number = " & (eldata(dataoffset + 6) And 7) x.WriteLine " - SCSI Bus Address = " & eldata(dataoffset + 7) If (eldata(dataoffset + 6) And 128) Then x.Write " - SValid = 1 " Else x.Write" - SValid = 0, " End If If (eldata(dataoffset + 6) And 64) Then x.Write "Invert = 1 " Else x.Write "Invert = 0" End If x.Writeline "" x.WriteLine " - Source Storage Element Address = " & eldata(dataoffset + 10) & eldata(dataoffset + 11) If (pvol = 1) Then x.Write " - Primary Volume Tag Information = " For i = 12 To 47 x.Write eldata(dataoffset + i) Next i End If bytecount = bytecount - ellength dataoffset = dataoffset + ellength Wend x.WriteLine "" End If x.WriteLine "-------------------------------------------------------" 'retval = SCSIInitializeElementStatus(ha,target,lun) 'x.WriteLine "Initialize Element status = " & retval 'MsgBox "Move tape from 0 to 5. . ." 'dest = 0 'source = 5 'retval = SCSIMoveMedium(ha,target,lun,picker,source,dest) 'MsgBox "finished move - move back to 0" 'dest = 5 'source = 0 'retval = SCSIMoveMedium(ha,target,lun,picker,source,dest) x.Write "The End"