VERSION 5.00
Begin VB.Form Form12 
   Caption         =   " Partition Table Entry"
   ClientHeight    =   3870
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   4725
   Icon            =   "partitionentry.frx":0000
   LinkTopic       =   "Form12"
   MaxButton       =   0   'False
   MinButton       =   0   'False
   ScaleHeight     =   3870
   ScaleWidth      =   4725
   StartUpPosition =   3  'Windows Default
   Begin VB.CommandButton Command2 
      Caption         =   "Close"
      Height          =   375
      Left            =   3240
      TabIndex        =   30
      Top             =   3120
      Width           =   1215
   End
   Begin VB.CommandButton Command1 
      Caption         =   "CHS to LBA"
      Height          =   375
      Left            =   240
      TabIndex        =   31
      Top             =   3120
      Width           =   1215
   End
   Begin VB.Label Label30 
      Height          =   255
      Left            =   3285
      TabIndex        =   29
      Top             =   2520
      Width           =   1200
   End
   Begin VB.Label Label29 
      Height          =   255
      Left            =   3285
      TabIndex        =   28
      Top             =   2280
      Width           =   1200
   End
   Begin VB.Label Label28 
      Height          =   255
      Left            =   3285
      TabIndex        =   27
      Top             =   1920
      Width           =   1200
   End
   Begin VB.Label Label27 
      Height          =   255
      Left            =   3285
      TabIndex        =   26
      Top             =   1680
      Width           =   1200
   End
   Begin VB.Label Label26 
      Height          =   255
      Left            =   3285
      TabIndex        =   25
      Top             =   1440
      Width           =   1200
   End
   Begin VB.Label Label25 
      Height          =   255
      Left            =   3285
      TabIndex        =   24
      Top             =   1200
      Width           =   1200
   End
   Begin VB.Label Label24 
      Height          =   255
      Left            =   3285
      TabIndex        =   23
      Top             =   960
      Width           =   1200
   End
   Begin VB.Label Label23 
      Height          =   255
      Left            =   3285
      TabIndex        =   22
      Top             =   720
      Width           =   1200
   End
   Begin VB.Label Label22 
      Height          =   255
      Left            =   3285
      TabIndex        =   21
      Top             =   480
      Width           =   1200
   End
   Begin VB.Label Label21 
      Height          =   255
      Left            =   3285
      TabIndex        =   20
      Top             =   240
      Width           =   1200
   End
   Begin VB.Label Label20 
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   8.25
         Charset         =   162
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   255
      Left            =   1560
      TabIndex        =   19
      Top             =   2520
      Width           =   1700
   End
   Begin VB.Label Label19 
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   8.25
         Charset         =   162
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   255
      Left            =   1560
      TabIndex        =   18
      Top             =   2280
      Width           =   1700
   End
   Begin VB.Label Label18 
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   8.25
         Charset         =   162
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   255
      Left            =   1560
      TabIndex        =   17
      Top             =   1920
      Width           =   1700
   End
   Begin VB.Label Label17 
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   8.25
         Charset         =   162
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   255
      Left            =   1560
      TabIndex        =   16
      Top             =   1680
      Width           =   1700
   End
   Begin VB.Label Label16 
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   8.25
         Charset         =   162
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   255
      Left            =   1560
      TabIndex        =   15
      Top             =   1440
      Width           =   1700
   End
   Begin VB.Label Label15 
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   8.25
         Charset         =   162
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   255
      Left            =   1560
      TabIndex        =   14
      Top             =   1200
      Width           =   1700
   End
   Begin VB.Label Label14 
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   8.25
         Charset         =   162
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   255
      Left            =   1560
      TabIndex        =   13
      Top             =   960
      Width           =   1700
   End
   Begin VB.Label Label13 
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   8.25
         Charset         =   162
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   255
      Left            =   1560
      TabIndex        =   12
      Top             =   720
      Width           =   1700
   End
   Begin VB.Label Label12 
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   8.25
         Charset         =   162
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   255
      Left            =   1560
      TabIndex        =   11
      Top             =   480
      Width           =   1700
   End
   Begin VB.Label Label11 
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   8.25
         Charset         =   162
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   255
      Left            =   1560
      TabIndex        =   10
      Top             =   240
      Width           =   1700
   End
   Begin VB.Label Label10 
      Alignment       =   1  'Right Justify
      Caption         =   "Total Sectors :"
      Height          =   255
      Left            =   120
      TabIndex        =   9
      Top             =   2520
      Width           =   1335
   End
   Begin VB.Label Label9 
      Alignment       =   1  'Right Justify
      Caption         =   "Relative Sectors :"
      Height          =   255
      Left            =   0
      TabIndex        =   8
      ToolTipText     =   "LBA - Beginning Sector"
      Top             =   2280
      Width           =   1455
   End
   Begin VB.Label Label8 
      Alignment       =   1  'Right Justify
      Caption         =   "Ending Cylinder :"
      Height          =   255
      Left            =   120
      TabIndex        =   7
      ToolTipText     =   "CHS"
      Top             =   1920
      Width           =   1335
   End
   Begin VB.Label Label7 
      Alignment       =   1  'Right Justify
      Caption         =   "Ending Sector :"
      Height          =   255
      Left            =   120
      TabIndex        =   6
      ToolTipText     =   "CHS"
      Top             =   1680
      Width           =   1335
   End
   Begin VB.Label Label6 
      Alignment       =   1  'Right Justify
      Caption         =   "Ending Head :"
      Height          =   255
      Left            =   120
      TabIndex        =   5
      ToolTipText     =   "CHS"
      Top             =   1440
      Width           =   1335
   End
   Begin VB.Label Label5 
      Alignment       =   1  'Right Justify
      Caption         =   "System ID :"
      Height          =   255
      Left            =   360
      TabIndex        =   4
      Top             =   1200
      Width           =   1095
   End
   Begin VB.Label Label4 
      Alignment       =   1  'Right Justify
      Caption         =   "Starting Cylinder :"
      Height          =   255
      Left            =   120
      TabIndex        =   3
      Top             =   960
      Width           =   1335
   End
   Begin VB.Label Label3 
      Alignment       =   1  'Right Justify
      Caption         =   "Starting Sector :"
      Height          =   255
      Left            =   240
      TabIndex        =   2
      Top             =   720
      Width           =   1215
   End
   Begin VB.Label Label2 
      Alignment       =   1  'Right Justify
      Caption         =   "Starting Head :"
      Height          =   255
      Left            =   240
      TabIndex        =   1
      Top             =   480
      Width           =   1215
   End
   Begin VB.Label Label1 
      Alignment       =   1  'Right Justify
      Caption         =   "Boot Indicator :"
      Height          =   255
      Left            =   240
      TabIndex        =   0
      Top             =   240
      Width           =   1215
   End
End
Attribute VB_Name = "Form12"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Dim dgBuffer(23) As Byte
Dim Cylinders As Double
Dim CylindersHigh As Double
Dim MediaType As Double
Dim TracksPerCylinder As Double
Dim SectorsPerTrack As Double
Dim BytesPerSector As Double
Dim LBA_BS As Double
Dim LBA_ES As Double
Dim LBA_TS As Double
Dim DriveName As String
Dim CHStoLBAInfo As String

Private Sub Command1_Click()
If GetDriveGeometry(DriveName, dgBuffer()) <> True Then
   MsgBox ("Drive Not Ready !"), 48, " Get drive Geometry"
Else
   Cylinders = Form11.GetDoubleNumberFrom4Bytes(dgBuffer(0), dgBuffer(1), dgBuffer(2), dgBuffer(3))
   Rem CylindersHigh = Form11.GetDoubleNumberFrom4Bytes(dgBuffer(4), dgBuffer(4), dgBuffer(6), dgBuffer(7))
   MediaType = Form11.GetDoubleNumberFrom4Bytes(dgBuffer(8), dgBuffer(9), dgBuffer(10), dgBuffer(11))
   TracksPerCylinder = Form11.GetDoubleNumberFrom4Bytes(dgBuffer(12), dgBuffer(13), dgBuffer(14), dgBuffer(15))
   SectorsPerTrack = Form11.GetDoubleNumberFrom4Bytes(dgBuffer(16), dgBuffer(17), dgBuffer(18), dgBuffer(19))
   BytesPerSector = Form11.GetDoubleNumberFrom4Bytes(dgBuffer(20), dgBuffer(21), dgBuffer(22), dgBuffer(23))
   LBA_BS = Val(Label14.Caption)
   LBA_BS = LBA_BS * TracksPerCylinder
   LBA_BS = LBA_BS + Val(Label12.Caption)
   LBA_BS = LBA_BS * SectorsPerTrack
   LBA_BS = LBA_BS + Val(Label13.Caption)
   LBA_BS = LBA_BS - 1
   LBA_ES = Val(Label18.Caption)
   LBA_ES = LBA_ES * TracksPerCylinder
   LBA_ES = LBA_ES + Val(Label16.Caption)
   LBA_ES = LBA_ES * SectorsPerTrack
   LBA_ES = LBA_ES + Val(Label17.Caption)
   LBA_ES = LBA_ES - 1
   LBA_TS = LBA_ES
   LBA_TS = LBA_TS - LBA_BS
   CHStoLBAInfo = "Beginning Sector: " + CStr(LBA_BS) + Chr$(13) + Chr$(10) + "Ending Sector: " + CStr(LBA_ES) + Chr$(13) + Chr$(10) + "Total Sectors: " + CStr(LBA_TS)
   If LBA_TS <> Val(Label20.Caption) Then
      CHStoLBAInfo = CHStoLBAInfo + Chr$(13) + Chr$(10) + Chr$(13) + Chr$(10) + "NOTE: This conversion gives wrong result;" + Chr$(13) + Chr$(10) + "because, partition limits are at the beyond of the first 7.8 GB of the disk." + Chr$(13) + Chr$(10) + "(CHS limits: 0 to 1023 for cylinders, 0 to 255 for heads, 1 to 63 for sectors.)"
   End If
   MsgBox ("Media Type : " + MediaTypeStr(CInt(MediaType))) + Chr$(13) + Chr$(10) + Chr$(13) + Chr$(10) + "CHS TO LBA CONVERSION" + Chr$(13) + Chr$(10) + Chr$(13) + Chr$(10) + CHStoLBAInfo, 0, Me.Caption
End If
End Sub

Private Sub Command2_Click()
Unload Me
End Sub

Private Function MediaTypeStr(MType As Integer) As String
Select Case MType
       Case 12
           MediaTypeStr = "Fixed Media"
       Case 11
           MediaTypeStr = "Removable Media"
       Case Else
           MediaTypeStr = "Unknown (" + CStr(MType) + ")"
End Select
End Function

Private Sub Form_Load()
Rem get drive geometry penceresi olacak...
If Left(DRV, 2) = "Ph" Then
   DriveName = "PhysicalDrive" + Right(DRV, 1)
Else
   DriveName = DRV
End If
End Sub
