Option Explicit
Dim n As Integer
Dim BaseAddress As Integer
Private Declare Function Inp Lib "inpout32.dll" _
Alias "Inp32" (ByVal PortAddress As Integer) As Integer
Private Declare Sub Out Lib "inpout32.dll" _
Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)
Private Function parallelput(n As Integer)
Out BaseAddress, n
End Function
Private Function parallelget()
parallelget = (Inp(BaseAddress + 1) Xor &H90)
End Function
Private Sub Delay(n As Single)
Dim Start
Dim Check
Start = Timer
Do Until Check >= Start + n * 0.001
Check = Timer
Loop
End Sub
Public Function controlput(n As Integer)
Out (BaseAddress + 2), n Xor &HB
End Function
Public Function controlget()
controlget = (Inp(BaseAddress + 2) Xor &HB)
End Function
Private Sub cmdParallel1_Click()
parallelput (1)
End Sub
Private Sub Command1_Click()
For n = 1 To 9
parallelput (n + 16)
Delay (500)
Next
End Sub
Private Sub cmdback_Click()
parallelput (2 + 4)
End Sub
Private Sub cmdforward_Click()
parallelput (1 + 8)
End Sub
Private Sub cmdleft_Click()
parallelput (1)
End Sub
Private Sub cmdright_Click()
parallelput (2)
End Sub
Private Sub cmdstop_Click()
parallelput (0)
End Sub
Private Sub Form_Load()
BaseAddress = &H378 'Go to Control panel to find the address
End Sub
Private Sub Timer1_Timer()
n = n + 1
If n Mod 2 = 0 Then
parallelput (1)
Else
parallelput (0)
End If
End Sub
Private Sub Timer2_Timer()
parallelput (2)
End Sub