'************************************************************************************************** ' Parallel Port Output Tester program (for Win9x only) ' - X24™ ' ' Tests for output commands to the PC parallel port using the 8 data pins, plus the 4 control pins. ' Requires an OCX called IOPORT, which gives the program access to the parallel port. '************************************************************************************************** Option Explicit Dim bitvalueD_port, bitvalueC_port, bitvalue_D0, bitvalue_D1, bitvalue_D2, bitvalue_D3, bitvalue_D4, _ bitvalue_D5, bitvalue_D6, bitvalue_D7, bitvalue_C0, bitvalue_C1, bitvalue_C2, _ bitvalue_C3, x, y As Integer Dim forward As Boolean Dim rider, logic_test As Variant Private Sub chk_1_Click() If chk_1.Value = 1 Then Label1.Enabled = True bitvalueD_port = bitvalueD_port + bitvalue_D0 Else Label1.Enabled = False bitvalueD_port = bitvalueD_port - bitvalue_D0 End If Label11.Caption = bitvalueD_port End Sub Private Sub chk_2_Click() If chk_2.Value = 1 Then Label2.Enabled = True bitvalueD_port = bitvalueD_port + bitvalue_D1 Else Label2.Enabled = False bitvalueD_port = bitvalueD_port - bitvalue_D1 End If Label11.Caption = bitvalueD_port End Sub Private Sub chk_3_Click() If chk_3.Value = 1 Then Label3.Enabled = True bitvalueD_port = bitvalueD_port + bitvalue_D2 Else Label3.Enabled = False bitvalueD_port = bitvalueD_port - bitvalue_D2 End If Label11.Caption = bitvalueD_port End Sub Private Sub chk_4_Click() If chk_4.Value = 1 Then Label4.Enabled = True bitvalueD_port = bitvalueD_port + bitvalue_D3 Else Label4.Enabled = False bitvalueD_port = bitvalueD_port - bitvalue_D3 End If Label11.Caption = bitvalueD_port End Sub Private Sub chk_5_Click() If chk_5.Value = 1 Then Label5.Enabled = True bitvalueD_port = bitvalueD_port + bitvalue_D4 Else Label5.Enabled = False bitvalueD_port = bitvalueD_port - bitvalue_D4 End If Label11.Caption = bitvalueD_port End Sub Private Sub chk_6_Click() If chk_6.Value = 1 Then Label6.Enabled = True bitvalueD_port = bitvalueD_port + bitvalue_D5 Else Label6.Enabled = False bitvalueD_port = bitvalueD_port - bitvalue_D5 End If Label11.Caption = bitvalueD_port End Sub Private Sub chk_7_Click() If chk_7.Value = 1 Then Label7.Enabled = True bitvalueD_port = bitvalueD_port + bitvalue_D6 Else Label7.Enabled = False bitvalueD_port = bitvalueD_port - bitvalue_D6 End If Label11.Caption = bitvalueD_port End Sub Private Sub chk_8_Click() If chk_8.Value = 1 Then Label8.Enabled = True bitvalueD_port = bitvalueD_port + bitvalue_D7 Else Label8.Enabled = False bitvalueD_port = bitvalueD_port - bitvalue_D7 End If Label11.Caption = bitvalueD_port End Sub Private Sub chk_logic_Click() y = 0 If chk_logic.Value = 1 Then Ioport1.address = 890 Ioport1.Value = 11 Ioport1.address = 888 Ioport1.Value = 0 Command1.Enabled = False Command2.Enabled = False chk_rider.Enabled = False chk_1.Enabled = False chk_2.Enabled = False chk_3.Enabled = False chk_4.Enabled = False chk_5.Enabled = False chk_6.Enabled = False chk_7.Enabled = False chk_8.Enabled = False chk2_1.Enabled = False chk2_2.Enabled = False chk2_3.Enabled = False chk2_4.Enabled = False chk_1.Value = 0 chk_2.Value = 0 chk_3.Value = 0 chk_4.Value = 0 chk_5.Value = 0 chk_6.Value = 0 chk_7.Value = 0 chk_8.Value = 0 chk2_1.Value = 0 chk2_2.Value = 0 chk2_3.Value = 0 chk2_4.Value = 0 Label1.Enabled = False Label2.Enabled = False Label3.Enabled = False Label4.Enabled = False Label5.Enabled = False Label6.Enabled = False Label7.Enabled = False Label8.Enabled = False Label13.Enabled = False Label14.Enabled = False Label15.Enabled = False Label16.Enabled = False Label11.Caption = "0/1" Label18.Caption = "0/1" forward = True Timer2.Enabled = True Else Command1.Enabled = True Command2.Enabled = True chk_rider.Enabled = True chk_1.Enabled = True chk_2.Enabled = True chk_3.Enabled = True chk_4.Enabled = True chk_5.Enabled = True chk_6.Enabled = True chk_7.Enabled = True chk_8.Enabled = True chk2_1.Enabled = True chk2_2.Enabled = True chk2_3.Enabled = True chk2_4.Enabled = True Label1.Enabled = True Label2.Enabled = True Label3.Enabled = True Label4.Enabled = True Label5.Enabled = True Label6.Enabled = True Label7.Enabled = True Label8.Enabled = True Label13.Enabled = True Label14.Enabled = True Label15.Enabled = True Label16.Enabled = True bitvalueD_port = 0 bitvalueC_port = 0 Label11.Caption = bitvalueD_port Label18.Caption = bitvalueC_port Ioport1.address = 890 Ioport1.Value = 0 Ioport1.address = 888 Ioport1.Value = 0 Timer2.Enabled = False Ioport1.Value = 0 End If End Sub Private Sub chk_rider_Click() x = 1 If chk_rider.Value = 1 Then Ioport1.address = 890 Ioport1.Value = 11 Ioport1.address = 888 Ioport1.Value = 0 Command1.Enabled = False Command2.Enabled = False chk_logic.Enabled = False chk_1.Enabled = False chk_2.Enabled = False chk_3.Enabled = False chk_4.Enabled = False chk_5.Enabled = False chk_6.Enabled = False chk_7.Enabled = False chk_8.Enabled = False chk2_1.Enabled = False chk2_2.Enabled = False chk2_3.Enabled = False chk2_4.Enabled = False chk_1.Value = 0 chk_2.Value = 0 chk_3.Value = 0 chk_4.Value = 0 chk_5.Value = 0 chk_6.Value = 0 chk_7.Value = 0 chk_8.Value = 0 chk2_1.Value = 0 chk2_2.Value = 0 chk2_3.Value = 0 chk2_4.Value = 0 Label1.Enabled = False Label2.Enabled = False Label3.Enabled = False Label4.Enabled = False Label5.Enabled = False Label6.Enabled = False Label7.Enabled = False Label8.Enabled = False Label13.Enabled = False Label14.Enabled = False Label15.Enabled = False Label16.Enabled = False Label11.Caption = "<->" Label18.Caption = "<->" forward = True Timer1.Enabled = True Else Command1.Enabled = True Command2.Enabled = True chk_logic.Enabled = True chk_1.Enabled = True chk_2.Enabled = True chk_3.Enabled = True chk_4.Enabled = True chk_5.Enabled = True chk_6.Enabled = True chk_7.Enabled = True chk_8.Enabled = True chk2_1.Enabled = True chk2_2.Enabled = True chk2_3.Enabled = True chk2_4.Enabled = True Label1.Enabled = True Label2.Enabled = True Label3.Enabled = True Label4.Enabled = True Label5.Enabled = True Label6.Enabled = True Label7.Enabled = True Label8.Enabled = True Label13.Enabled = True Label14.Enabled = True Label15.Enabled = True Label16.Enabled = True bitvalueD_port = 0 bitvalueC_port = 0 Label11.Caption = bitvalueD_port Label18.Caption = bitvalueC_port Ioport1.address = 890 Ioport1.Value = 0 Ioport1.address = 888 Ioport1.Value = 0 Timer1.Enabled = False Ioport1.Value = 0 End If End Sub Private Sub chk2_1_Click() If chk2_1.Value = 1 Then Label13.Enabled = True bitvalueC_port = bitvalueC_port + bitvalue_C0 Else Label13.Enabled = False bitvalueC_port = bitvalueC_port - bitvalue_C0 End If Label18.Caption = bitvalueC_port End Sub Private Sub chk2_2_Click() If chk2_2.Value = 1 Then Label14.Enabled = True bitvalueC_port = bitvalueC_port + bitvalue_C1 Else Label14.Enabled = False bitvalueC_port = bitvalueC_port - bitvalue_C1 End If Label18.Caption = bitvalueC_port End Sub Private Sub chk2_3_Click() If chk2_3.Value = 1 Then Label15.Enabled = True bitvalueC_port = bitvalueC_port + bitvalue_C2 Else Label15.Enabled = False bitvalueC_port = bitvalueC_port - bitvalue_C2 End If Label18.Caption = bitvalueC_port End Sub Private Sub chk2_4_Click() If chk2_4.Value = 1 Then Label16.Enabled = True bitvalueC_port = bitvalueC_port + bitvalue_C3 Else Label16.Enabled = False bitvalueC_port = bitvalueC_port - bitvalue_C3 End If Label18.Caption = bitvalueC_port End Sub Private Sub Command1_Click() Ioport1.address = 888 ' LPT1 port DATA address (decimal value) Ioport1.Value = bitvalueD_port End Sub Private Sub Command2_Click() Ioport1.address = 890 ' LPT1 port CONTROL address (decimal value) Ioport1.Value = bitvalueC_port End Sub Private Sub Form_Load() Form1.Caption = "|| port output test v" & App.Major & "." & App.Minor & "." & App.Revision rider = Array(1, 2, 4, 8, 16, 32, 64, 128, 10, 9, 15, 3) logic_test = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 16, 32, 48, 64, 80, 96, 112, 128, 144) forward = True Timer1.Enabled = False bitvalueD_port = 0 bitvalueC_port = 0 ' You have to specify which port you want to control before sending a value to the parallel port. Ioport1.address = 888 ' LPT1 port DATA address (decimal value) Ioport1.Value = bitvalueD_port ' Sends a 0 value to the DATA port Ioport1.address = 890 ' LPT1 port CONTROL address (decimal value) Ioport1.Value = bitvalueC_port ' Sends a 0 value to the CONTROL ' Constant values sent to the DATA port that determines which pins are turned on. bitvalue_D0 = 1 bitvalue_D1 = 2 bitvalue_D2 = 4 bitvalue_D3 = 8 bitvalue_D4 = 16 bitvalue_D5 = 32 bitvalue_D6 = 64 bitvalue_D7 = 128 ' Constant values sent to the CONTROL port that determines which CONTROL pins are turned on. bitvalue_C0 = 1 bitvalue_C1 = 2 bitvalue_C2 = 4 bitvalue_C3 = 8 Label1.Enabled = False Label2.Enabled = False Label3.Enabled = False Label4.Enabled = False Label5.Enabled = False Label6.Enabled = False Label7.Enabled = False Label8.Enabled = False Label13.Enabled = False Label14.Enabled = False Label15.Enabled = False Label16.Enabled = False End Sub Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) Ioport1.Value = 0 ' Sends a 0 value when the program terminates. End Sub Private Sub Timer1_Timer() Timer1.Interval = HScroll1.Value If forward = True Then If x <= 7 Then Ioport1.address = 890 Ioport1.Value = 11 Ioport1.address = 888 Ioport1.Value = rider(x) x = x + 1 Else Ioport1.address = 888 Ioport1.Value = 0 Ioport1.address = 890 Ioport1.Value = rider(x) x = x + 1 If x = 11 Then forward = False End If End If Else If x >= 8 Then If x = 12 Then x = 11 End If Ioport1.address = 888 Ioport1.Value = 0 Ioport1.address = 890 Ioport1.Value = rider(x) x = x - 1 Else Ioport1.address = 890 Ioport1.Value = 11 Ioport1.address = 888 Ioport1.Value = rider(x) x = x - 1 If x = 0 Then forward = True End If End If End If End Sub Private Sub Timer2_Timer() If y < 18 Then Ioport1.address = 890 Ioport1.Value = 4 Ioport1.address = 888 Ioport1.Value = logic_test(y) Text1.Text = y y = y + 1 Else Timer2.Enabled = False chk_logic.Value = 0 End If End Sub