Attribute VB_Name = "Module1" Public Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean Public Const NIM_ADD = &H0 Public Const NIM_MODIFY = &H1 Public Const NIM_DELETE = &H2 Public Const NIF_MESSAGE = &H1 Public Const NIF_ICON = &H2 Public Const NIF_TIP = &H4 Public Const WM_MOUSEMOVE = &H200 Public Const WM_LBUTTONDOWN = &H201 Public Const WM_LBUTTONUP = &H202 Public Const WM_LBUTTONDBLCLK = &H203 Public Const WM_RBUTTONDOWN = &H204 Public Const WM_RBUTTONUP = &H205 Public Const WM_RBUTTONDBLCLK = &H206 Public Const HWND_TOPMOST = -1 Public nid As NOTIFYICONDATA Public Type NOTIFYICONDATA cbSize As Long hwnd As Long uId As Long uFlags As Long uCallBackMessage As Long hIcon As Long szTip As String * 64 End Type Public Declare Function DlPortReadPortUchar Lib "dlportio.dll" (ByVal Port As Long) As Byte Public Declare Function DlPortReadPortUshort Lib "dlportio.dll" (ByVal Port As Long) As Integer Public Declare Function DlPortReadPortUlong Lib "dlportio.dll" (ByVal Port As Long) As Long Public Declare Sub DlPortReadPortBufferUchar Lib "dlportio.dll" (ByVal Port As Long, Buffer As Any, ByVal Count As Long) Public Declare Sub DlPortReadPortBufferUshort Lib "dlportio.dll" (ByVal Port As Long, Buffer As Any, ByVal Count As Long) Public Declare Sub DlPortReadPortBufferUlong Lib "dlportio.dll" (ByVal Port As Long, Buffer As Any, ByVal Count As Long) Public Declare Sub DlPortWritePortUchar Lib "dlportio.dll" (ByVal Port As Long, ByVal Value As Byte) Public Declare Sub DlPortWritePortUshort Lib "dlportio.dll" (ByVal Port As Long, ByVal Value As Integer) Public Declare Sub DlPortWritePortUlong Lib "dlportio.dll" (ByVal Port As Long, ByVal Value As Long) Public Declare Sub DlPortWritePortBufferUchar Lib "dlportio.dll" (ByVal Port As Long, Buffer As Any, ByVal Count As Long) Public Declare Sub DlPortWritePortBufferUshort Lib "dlportio.dll" (ByVal Port As Long, Buffer As Any, ByVal Count As Long) Public Declare Sub DlPortWritePortBufferUlong Lib "dlportio.dll" (ByVal Port As Long, Buffer As Any, ByVal Count As Long) Public Declare Function QueryPerformanceCounter Lib "kernel32" (lpPerformanceCount As Currency) As Long Public Declare Function QueryPerformanceFrequency Lib "kernel32" (lpFrequency As Currency) As Long Public char(10, 4) As String Public size As Integer Public Port As Long Public Dataport As Long Public controlport As Long Public frequency As Currency Public Sub initialize() lcdwrite &H38 lcdwrite &H6 lcdwrite &HC lcdwrite &H1 End Sub Public Sub setcursor(row As Integer, col As Integer) Select Case row Case 1 lcdwrite &H80 + col - 1 Case 2 lcdwrite &HC0 + col - 1 Case 3 lcdwrite &H94 + col - 1 Case 4 lcdwrite &HD4 + col - 1 End Select End Sub Public Sub displaytext(row As Integer, col As Integer, this As String) setcursor row, col For i = 0 To Len(this) - 1 displaychar Mid(this, i + 1, 1) Next i End Sub Public Sub lcdwrite(this As Long) DlPortWritePortUchar Dataport, this DlPortWritePortUchar controlport, &H2 DlPortWritePortUchar controlport, &H3 QueryPerformanceCounter count0 Do QueryPerformanceCounter count1 howlong = CDbl((count1 - count0) / frequency) Loop Until howlong > 0.0008 End Sub Public Sub lcdwritedata(this As Long) DlPortWritePortUchar controlport, &H6 DlPortWritePortUchar Dataport, this DlPortWritePortUchar controlport, &H7 QueryPerformanceCounter count0 Do QueryPerformanceCounter count1 howlong = CDbl((count1 - count0) / frequency) Loop Until howlong > 0.0001 End Sub Public Sub displaychar(char As String) lcdwritedata Asc(char) End Sub