Option Explicit
Dim X
Dim BitStr, BitStr2 As Variant
Private Sub Form_Load()
MSComm1.CommPort = "2"
MSComm1.Settings = "4800,O,8,1"
MSComm1.InputLen = 0
MSComm1.PortOpen = True
End Sub
Private Static Sub MSComm1_OnComm()
Dim Data
Dim strchr As String
Dim strlen, valchr As Byte
Select Case MSComm1.CommEvent
Case comEvReceive
Dim Buffer As Variant
Buffer = MSComm1.Input
Data = (StrConv(Buffer, vbUnicode))
strlen = Len(Data)
For X = 1 To strlen
strchr = Mid$(Data, X, 2)
valchr = Asc(strchr)
Text1.SelText = Format(valchr, "000") & " > "
Next X
'convert from 'decimal' byte value to 8 bit pattern
Bin2BinStr Str(valchr)
Text1.SelText = BitStr & vbCrLf
End Select
End Sub
Static Function Bin2BinStr(PrtVal As Integer)
'converts a 8 bit string value to 8 bits
Dim binmask, p As Integer
BitStr = String(8, "0")
If PrtVal > 127 Then
Mid$(BitStr, 1, 1) = "1"
Else
Mid$(BitStr, 1, 1) = "0"
End If
If PrtVal < 0 Then
Mid$(BitStr, 1, 1) = "1"
End If
binmask = &H40
For p = 2 To 8
If PrtVal And binmask Then
Mid$(BitStr, p, 1) = "1"
End If
binmask = binmask \ 2
Next p
BitStr2 = BitStr
End Function