You are on page 1of 5

Public Declare Sub PortOut Lib "io.

dll" _
(ByVal Port As Integer, ByVal Data As Byte)
Public Declare Sub PortWordOut Lib "io.dll" _
(ByVal Port As Integer, ByVal Data As Integer)
Public Declare Sub PortDWordOut Lib "io.dll" _
(ByVal Port As Integer, ByVal Data As Long)
Public Declare Function PortIn Lib "io.dll" _
(ByVal Port As Integer) As Byte
Public Declare Function PortWordIn Lib "io.dll" _
(ByVal Port As Integer) As Integer
Public Declare Function PortDWordIn Lib "io.dll" _
(ByVal Port As Integer) As Long
Public Declare Sub SetPortBit Lib "io.dll" _
(ByVal Port As Integer, ByVal Bit As Byte)
Public Declare Sub ClrPortBit Lib "io.dll" _
(ByVal Port As Integer, ByVal Bit As Byte)
Public Declare Sub NotPortBit Lib "io.dll" _
(ByVal Port As Integer, ByVal Bit As Byte)
Public Declare Function GetPortBit Lib "io.dll" _
(ByVal Port As Integer, ByVal Bit As Byte) As Boolean
Public Declare Function RightPortShift Lib "io.dll" _
(ByVal Port As Integer, ByVal Val As Boolean) As Boolean
Public Declare Function LeftPortShift Lib "io.dll" _
(ByVal Port As Integer, ByVal Val As Boolean) As Boolean
Public Declare Function IsDriverInstalled Lib "io.dll" () As Boole
PortOut : Mengirim data dalam format byte (8-bit) ke port tertentu.
PortWordOut : Mengirim data dalam format word (16-bit) ke port tertentu.
PortDWordOut : Mengirim data dalam format double word (32-bit) ke port tertentu.
PortIn : Membaca data falam format byte (8-bit) dari port tertentu.
PortWordIn : Membaca data falam format word (16-bit) dari port tertentu.
PortDWordIn : Membaca data falam format double word (32-bit) dari port tertentu.
GetPortBit : Membaca status dari bit tertentu.
SetPortBit : Set bit (=1) pada port tertentu.
ClrPortBit : Reset bit (=0) pada port tertentu.
NotPortBit : Lakukan inversi (NOT) bit pada port tertentu
RightPortShift : Geser bit dari port tertentu ke kanan, LSB -> MSB.
LeftPortShift : Geser bit dari port tertentu ke kiri, MSB -> LSB.
IsDriverInstalled : Akan memberikan nilai bukan-NOL jika io.dll sudah terinstal
dan berfungsi. Tujuan utama dari fungsi ini adalah untuk memastikan bahwa pengge
rak mode kernel pada NT/2000/XP telah diinstal dan dapat diakses.
Private Sub Check1_Click()
If Check1.Value = 1 Then
PortOut &H378, &HFF
Check1.Caption = Lampu ON semua
Else
PortOut &H378, &H0
Check1.Caption = Lampu OFF semua
End If
End Sub
Private Sub Command1_Click()
Unload Me
End Sub
Private Sub Form_Load()
If Not IsDriverInstalled Then
MsgBox error, vbOKOnly
Unload Me
End If
End Sub
Option Explicit
Private Sub cmd_clear_Click()
TxtNilai(0) = ""
TxtNilai(1) = ""
End Sub
Private Sub cmd_exit_Click()
End
End Sub
Private Sub Cmd_help_Click()
MsgBox "Masukkan nilai, lalu pilih mode pada kolom input dan output", vbInformat
ion, "irfan_konv"
End Sub
Private Sub CmdConvert_Click()
If in_bin.Value And out_des.Value Then TxtNilai(1) = BinKeDes(TxtNilai(0))
If in_bin.Value And out_bin.Value Then TxtNilai(1) = TxtNilai(0).Text
If in_bin.Value And out_ok.Value Then TxtNilai(1) = BinKeOk(TxtNilai(0))
If in_bin.Value And out_hex.Value Then TxtNilai(1) = BinKeHex(TxtNilai(0))
If in_des.Value And out_bin.Value Then TxtNilai(1) = DesKeBin(TxtNilai(0))
If in_des.Value And out_des.Value Then TxtNilai(1) = TxtNilai(0).Text
If in_des.Value And out_ok.Value Then TxtNilai(1) = DesKeOk(TxtNilai(0))
If in_des.Value And out_hex.Value Then TxtNilai(1) = DesKeHex(TxtNilai(0))
If in_ok.Value And out_bin.Value Then TxtNilai(1) = OkKeBin(TxtNilai(0))
If in_ok.Value And out_hex.Value Then TxtNilai(1) = OkKeHex(TxtNilai(0))
If in_ok.Value And out_des.Value Then TxtNilai(1) = OkKeDes(TxtNilai(0))
If in_ok.Value And out_ok.Value Then TxtNilai(1) = TxtNilai(0).Text
If in_hex.Value And out_bin.Value Then TxtNilai(1) = HexKeBin(TxtNilai(0))
If in_hex.Value And out_des.Value Then TxtNilai(1) = HexKeDes(TxtNilai(0))
If in_hex.Value And out_ok.Value Then TxtNilai(1) = HexKeOk(TxtNilai(0))
If in_hex.Value And out_hex.Value Then TxtNilai(1) = TxtNilai(0).Text

With TxtNilai(0)
.SelStart = 0
.SelLength = Len(TxtNilai(0))
End With
End Sub
Public Function BinKeDes(ByVal NBin As String) As Long
Dim C As Integer
Dim PosValue As Long
Dim Value As Long

On Error GoTo ErrorHandler

PosValue = 1
For C = Len(NBin) To 1 Step -1
If Mid(NBin, C, 1) = "1" Then Value = Value + PosValue
PosValue = PosValue * 2
Next

BinKeDes = Value
Exit Function

ErrorHandler:
BinKeDes = 0
End Function
Public Function DesKeBin(ByVal NDes As Long) As String
Dim C As Byte
Dim SubValue As Long
Dim Value As String

On Error GoTo ErrorHandler

SubValue = (2 ^ 31) - 1

While SubValue > 0
If NDes - SubValue >= 0 Then
NDes = NDes - SubValue
Value = Value & "1"
Else
If Val(Value) > 0 Then Value = Value & "0"
End If
SubValue = SubValue / 2
Wend

DesKeBin = Value
Exit Function
ErrorHandler:
DesKeBin = "0"
End Function
Public Function DesKeHex(ByVal NDes As Long) As String
DesKeHex = Hex(NDes)
End Function
Public Function HexKeDes(ByVal NHex As String) As Long
Dim C As Integer
Dim Value As Long
Dim PosValue As Long
Dim CharVal As Byte

On Error GoTo ErrorHandler

For C = Len(NHex) To 1 Step -1
Select Case Mid(NHex, C, 1)
Case "0" To "9": CharVal = CInt(Mid(NHex, C, 1))
Case Else: CharVal = Asc(Mid(NHex, C, 1)) - 55
End Select
Value = Value + ((16 ^ PosValue) * CharVal)
PosValue = PosValue + 1
Next C

HexKeDes = Value
Exit Function

ErrorHandler:
HexKeDes = 0
End Function
Public Function DesKeOk(ByVal NDes As Long) As String
DesKeOk = Oct(NDes)
End Function
Public Function OkKeDes(ByVal NOk As String) As Long
Dim C As Integer
Dim Value As Long
Dim PosValue As Long

On Error GoTo ErrorHandler

For C = Len(NOk) To 1 Step -1
Value = Value + (8 ^ PosValue) * CInt(Mid(NOk, C, 1))
PosValue = PosValue + 1
Next C

OkKeDes = Value
Exit Function

ErrorHandler:
OkKeDes = 0

End Function
Public Function BinKeOk(ByVal bin As Long) As String
BinKeOk = DesKeOk(BinKeDes(bin))

End Function
Public Function BinKeHex(ByVal NBin As Long) As String
BinKeHex = DesKeHex(BinKeDes(NBin))

End Function
Public Function OkKeBin(ByVal NOk As Double) As String
OkKeBin = DesKeBin(OkKeDes(NOk))

End Function
Public Function OkKeHex(ByVal NOk As Double) As String
OkKeHex = DesKeHex(OkKeDes(NOk))

End Function
Public Function HexKeBin(ByVal NHex As String) As String
HexKeBin = DesKeBin(HexKeDes(NHex))

End Function
'
Public Function HexKeOk(ByVal NHex As String) As Double
HexKeOk = DesKeOk(HexKeDes(NHex))

End Function
Private Sub Form_Load()
Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2
TxtNilai(0) = ""
TxtNilai(1) = ""
End Sub
Private Sub in_bin_Click()
End Sub
Private Sub Label1_Click()
End Sub
Private Sub Label2_Click()
End Sub
Private Sub out_hex_Click()
End Sub
Private Sub TxtNilai_Change(Index As Integer)
End Sub

You might also like