/programy/VB/work/1st_program/INPOUT32.DPR |
---|
0,0 → 1,38 |
{Source code for inpout32.dll. |
Enables 32-bit Visual Basic programs to do direct port I/O |
(Inp and Out) under Windows 95. |
To be compiled with Borland's Delphi 2.0.} |
library inpout32; |
uses SysUtils; |
procedure Out32(PortAddress:smallint;Value:smallint);stdcall;export; |
var |
ByteValue:Byte; |
begin |
ByteValue:=Byte(Value); |
asm |
push dx |
mov dx,PortAddress |
mov al, ByteValue |
out dx,al |
pop dx |
end; |
end; |
function Inp32(PortAddress:smallint):smallint;stdcall;export; |
var |
ByteValue:byte; |
begin |
asm |
push dx |
mov dx, PortAddress |
in al,dx |
mov ByteValue,al |
pop dx |
end; |
Inp32:=smallint(ByteValue) and $00FF; |
end; |
Exports |
Inp32, |
Out32; |
begin |
end. |
/programy/VB/work/1st_program/INPOUT32.TXT |
---|
0,0 → 1,72 |
Documentation for inpout32.zip |
Inpout32.zip contains a DLL that enables direct reading and writing to I/O ports in 32-bit Visual-Basic programs running under Windows 95. |
by Jan Axelson |
Lakeview Research |
Email: jaxelson@lvr.com |
WWW: http://www.lvr.com |
Important information and cautions: |
1. Use this DLL at your own risk. Writing directly to hardware ports can result in system crashes, loss of data, and even permanent damage. Inpout32 was developed to allow access to parallel ports and other ports on custom hardware, but you can use it to attempt to access any hardware that is mapped as an I/O port. You've been warned! |
2. Use this DLL only with 32-bit programs. 16-bit programs require a 16-bit DLL (inpout16.dll). |
3. Windows 95 allows direct port reads and writes unless a VxD has control of the port and blocks access. Under Windows NT, direct port access is not allowed, and you must use a kernel-mode device driver. |
4. For the latest parallel-port programming and interfacing information and tools, visit Parallel Port Central at: |
http://www.lvr.com |
*** |
Inpout32.zip contains the following files: |
inpout32.txt |
This file |
inpout32.dll |
A DLL that enables the use of Inp and Out routines in 32-bit Visual Basic 4 and Visual Basic 5 programs. |
inpout32.bas |
Visual-Basic declarations for Inp and Out |
inpout32.vbp |
Visual Basic 4 test project for inpout32. The project will also load into and run under Visual Basic 5. |
inpout32.frm |
Startup form for the test project |
inpout32.dpr |
Source code for inpout32.dll. The DLL was compiled with Borland's Delphi 2.0 Object Pascal compiler. |
*** |
How to run the test program (inpout32.vbp): |
1. Copy inpout32.dll to one of these locations: your default Windows directory (usually \Windows), your Windows system directory (usually \Windows\system), or your application's working directory. In the VB programming environment, the working directory is the default VB directory. |
2. Open the project inpout32.vbp. |
3. In the Form_Load subroutine, set PortAddress equal to the port address you want to test. |
3. Clicking the command button causes the program to do the following: write a value to the port, read the port, and display the result. The value increments with each click, resetting to 0 at 255. |
*** |
How to use inpout32 in your programs: |
1. Copy inpout32.dll to your default Windows directory (or other directory as described above). |
2. Add inpout32.bas to your Visual-Basic project (File menu, Add File). |
3. Use this syntax to write to a port: |
Out PortAddress, ValueToWrite |
Example: |
Out &h378, &h55 |
Use this syntax to read a port: |
ValueRead = Inp(PortAddress) |
Example: |
ValueRead = Inp(&h378) |
(The syntax is identical to QuickBasic's Inp and Out). |
/programy/VB/work/1st_program/INPOUT32.VBP |
---|
0,0 → 1,30 |
Type=Exe |
Form=inpout32.frm |
Module=inpout; Inpout32.bas |
IconForm="inpout32" |
Startup="inpout32" |
Command32="" |
Name="Project1" |
HelpContextID="0" |
CompatibleMode="0" |
MajorVer=1 |
MinorVer=0 |
RevisionVer=0 |
AutoIncrementVer=0 |
ServerSupportFiles=0 |
VersionCompanyName="doma" |
CompilationType=0 |
OptimizationType=0 |
FavorPentiumPro(tm)=0 |
CodeViewDebugInfo=0 |
NoAliasing=0 |
BoundsCheck=0 |
OverflowCheck=0 |
FlPointCheck=0 |
FDIVCheck=0 |
UnroundedFP=0 |
StartMode=0 |
Unattended=0 |
Retained=0 |
ThreadPerObject=0 |
MaxNumberOfThreads=1 |
/programy/VB/work/1st_program/INPOUT32.vbw |
---|
0,0 → 1,2 |
inpout32 = 25, -2, 354, 453, Z, -2, -9, 554, 447, C |
inpout = 66, 66, 317, 328, C |
/programy/VB/work/1st_program/Inpout32.bas |
---|
0,0 → 1,29 |
Attribute VB_Name = "inpout" |
'Inp and Out declarations for direct port I/O |
'in 32-bit Visual Basic 4 programs. |
Public Declare Function Input32 Lib "inpout32.dll" _ |
Alias "Inp32" (ByVal PortAddress As Integer) As Integer |
Public Declare Sub Output Lib "inpout32.dll" _ |
Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer) |
Sub out(ByVal Value As Integer) |
Output &H3BC, Value |
End Sub |
Function inp() As Integer |
inp = Input32(&H3BD) |
End Function |
Function inp11() As Boolean |
inp11 = ((inp And &H80) = 0) |
End Function |
Function inp10() As Boolean |
inp10 = Not ((inp And &H40) = 0) |
End Function |
Function inp12() As Boolean |
inp12 = Not ((inp And &H20) = 0) |
End Function |
Function inp13() As Boolean |
inp13 = Not ((inp And &H10) = 0) |
End Function |
/programy/VB/work/1st_program/inpout32.frm |
---|
0,0 → 1,323 |
VERSION 5.00 |
Begin VB.Form inpout32 |
Caption = "Form1" |
ClientHeight = 4710 |
ClientLeft = 915 |
ClientTop = 1410 |
ClientWidth = 4770 |
LinkTopic = "Form1" |
PaletteMode = 1 'UseZOrder |
ScaleHeight = 4710 |
ScaleWidth = 4770 |
Begin VB.CheckBox Check2 |
Caption = "Check2" |
Height = 375 |
Left = 2640 |
Style = 1 'Graphical |
TabIndex = 22 |
Top = 2880 |
Width = 135 |
End |
Begin VB.CheckBox Check1 |
Caption = "Check1" |
Height = 375 |
Left = 2520 |
Style = 1 'Graphical |
TabIndex = 21 |
Top = 2880 |
Width = 135 |
End |
Begin VB.CommandButton Command11 |
Caption = "Command11" |
Height = 195 |
Left = 4320 |
TabIndex = 20 |
Top = 2280 |
Width = 135 |
End |
Begin VB.CommandButton Command10 |
Caption = "Command10" |
Height = 195 |
Left = 4080 |
TabIndex = 19 |
Top = 2280 |
Width = 135 |
End |
Begin VB.CommandButton Command9 |
Caption = "Command9" |
Height = 195 |
Left = 3840 |
TabIndex = 18 |
Top = 2280 |
Width = 135 |
End |
Begin VB.CommandButton Command8 |
Caption = "Command8" |
Height = 195 |
Left = 3600 |
TabIndex = 17 |
Top = 2280 |
Width = 135 |
End |
Begin VB.CommandButton Command7 |
Caption = "Command7" |
Height = 195 |
Left = 3240 |
TabIndex = 16 |
Top = 2280 |
Width = 135 |
End |
Begin VB.CommandButton Command6 |
Caption = "Command6" |
Height = 195 |
Left = 3000 |
TabIndex = 15 |
Top = 2280 |
Width = 135 |
End |
Begin VB.CommandButton Command5 |
Caption = "Command5" |
Height = 195 |
Left = 2760 |
TabIndex = 14 |
Top = 2280 |
Width = 135 |
End |
Begin VB.CommandButton Command4 |
Caption = "Command4" |
Height = 195 |
Left = 2520 |
TabIndex = 13 |
Top = 2280 |
Width = 135 |
End |
Begin VB.Timer Timer3 |
Left = 3120 |
Top = 3960 |
End |
Begin VB.TextBox Text13 |
Height = 285 |
Left = 3240 |
TabIndex = 8 |
Text = "Text5" |
Top = 1680 |
Width = 495 |
End |
Begin VB.TextBox Text12 |
Height = 285 |
Left = 3240 |
TabIndex = 7 |
Text = "Text4" |
Top = 1200 |
Width = 495 |
End |
Begin VB.TextBox Text10 |
Height = 285 |
Left = 3240 |
TabIndex = 6 |
Text = "Text3" |
Top = 240 |
Width = 495 |
End |
Begin VB.TextBox Text11 |
Height = 285 |
Left = 3240 |
TabIndex = 5 |
Text = "Text2" |
Top = 720 |
Width = 495 |
End |
Begin VB.CommandButton Command3 |
Caption = "Command3" |
Height = 615 |
Left = 240 |
TabIndex = 4 |
Top = 3840 |
Width = 2055 |
End |
Begin VB.Timer Timer2 |
Left = 1680 |
Top = 120 |
End |
Begin VB.CommandButton Command2 |
Caption = "Command2" |
Height = 615 |
Left = 240 |
TabIndex = 3 |
Top = 2760 |
Width = 2055 |
End |
Begin VB.CommandButton Command1 |
Caption = "Command1" |
Height = 615 |
Left = 240 |
TabIndex = 2 |
Top = 1680 |
Width = 2055 |
End |
Begin VB.Timer Timer1 |
Left = 2400 |
Top = 3960 |
End |
Begin VB.TextBox Text1 |
Height = 372 |
Left = 960 |
TabIndex = 1 |
Text = "Text1" |
Top = 120 |
Width = 615 |
End |
Begin VB.CommandButton cmdWriteToPort |
Caption = "Write to Port" |
Height = 732 |
Left = 240 |
TabIndex = 0 |
Top = 720 |
Width = 1932 |
End |
Begin VB.Label Label13 |
Caption = "13" |
Height = 375 |
Left = 3840 |
TabIndex = 12 |
Top = 1680 |
Width = 375 |
End |
Begin VB.Label Label3 |
Caption = "12" |
Height = 375 |
Left = 3840 |
TabIndex = 11 |
Top = 1200 |
Width = 375 |
End |
Begin VB.Label Label2 |
Caption = "10" |
Height = 375 |
Left = 3840 |
TabIndex = 10 |
Top = 240 |
Width = 375 |
End |
Begin VB.Label Label1 |
Caption = "11" |
Height = 255 |
Left = 3840 |
TabIndex = 9 |
Top = 720 |
Width = 255 |
End |
End |
Attribute VB_Name = "inpout32" |
Attribute VB_GlobalNameSpace = False |
Attribute VB_Creatable = False |
Attribute VB_PredeclaredId = True |
Attribute VB_Exposed = False |
Option Explicit |
Dim Value As Integer |
Dim PortAddress As Integer |
Dim stav As Boolean |
Dim promena As Byte |
Private Sub cmdWriteToPort_Click() |
'Write to a port. |
out Value |
'Read back and display the result. |
Value = Value + 1 |
If Value = 255 Then Value = 0 |
End Sub |
Private Sub Command1_Click() |
out 1 |
Timer1.Enabled = True |
End Sub |
Private Sub Command10_Click() |
out &H40 |
End Sub |
Private Sub Command11_Click() |
out &H80 |
End Sub |
Private Sub Command2_Click() |
out &HFF |
Timer1.Enabled = True |
End Sub |
Private Sub Command3_Click() |
out 3 |
Timer1.Enabled = True |
End Sub |
Private Sub Command4_Click() |
out &H1 |
End Sub |
Private Sub Command5_Click() |
out &H2 |
End Sub |
Private Sub Command6_Click() |
out &H4 |
End Sub |
Private Sub Command7_Click() |
out &H8 |
End Sub |
Private Sub Command8_Click() |
out &H10 |
End Sub |
Private Sub Command9_Click() |
out &H20 |
End Sub |
Private Sub Form_Load() |
Timer1.Interval = 1000 |
Timer2.Interval = 10 |
Timer3.Interval = 100 |
End Sub |
Private Sub Check1_Click() |
If Check1.Value = 1 Then |
promena = promena Or &H1 |
Else |
promena = promena And &HFE |
End If |
out promena |
End Sub |
Private Sub Check2_Click() |
If Check2.Value = 1 Then |
promena = promena Or &H2 |
Else |
promena = promena And &HFD |
End If |
out promena |
End Sub |
Private Sub Timer1_Timer() |
out 0 |
Timer1.Enabled = False |
End Sub |
Private Sub Timer2_Timer() |
'toto se provede kazdych 10ms |
Text1.Text = inp |
Text10.Text = inp10 |
Text11.Text = inp11 |
Text12.Text = inp12 |
Text13.Text = inp13 |
If Not inp10 Then |
Command2_Click |
End If |
End Sub |
'Private Sub Timer3_Timer() |
'If stav Then |
'out 1 |
'stav = False |
'Else |
'out 0 |
'stav = True |
'End If |
'End Sub |
/programy/VB/work/1st_program/mssccprj.scc |
---|
0,0 → 1,5 |
SCC = This is a Source Code Control file |
[INPOUT32.VBP] |
SCC_Aux_Path = "C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\COMMON\VSS" |
SCC_Project_Name = "$/programy/VB/work/1st_program", ZDBAAAAA |
/programy/VB/work/1st_program/vssver.scc |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programy/VB/work/INPOUT32.DLL |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programy/VB/work/INPOUT32.DPR |
---|
0,0 → 1,38 |
{Source code for inpout32.dll. |
Enables 32-bit Visual Basic programs to do direct port I/O |
(Inp and Out) under Windows 95. |
To be compiled with Borland's Delphi 2.0.} |
library inpout32; |
uses SysUtils; |
procedure Out32(PortAddress:smallint;Value:smallint);stdcall;export; |
var |
ByteValue:Byte; |
begin |
ByteValue:=Byte(Value); |
asm |
push dx |
mov dx,PortAddress |
mov al, ByteValue |
out dx,al |
pop dx |
end; |
end; |
function Inp32(PortAddress:smallint):smallint;stdcall;export; |
var |
ByteValue:byte; |
begin |
asm |
push dx |
mov dx, PortAddress |
in al,dx |
mov ByteValue,al |
pop dx |
end; |
Inp32:=smallint(ByteValue) and $00FF; |
end; |
Exports |
Inp32, |
Out32; |
begin |
end. |
/programy/VB/work/INPOUT32.TXT |
---|
0,0 → 1,72 |
Documentation for inpout32.zip |
Inpout32.zip contains a DLL that enables direct reading and writing to I/O ports in 32-bit Visual-Basic programs running under Windows 95. |
by Jan Axelson |
Lakeview Research |
Email: jaxelson@lvr.com |
WWW: http://www.lvr.com |
Important information and cautions: |
1. Use this DLL at your own risk. Writing directly to hardware ports can result in system crashes, loss of data, and even permanent damage. Inpout32 was developed to allow access to parallel ports and other ports on custom hardware, but you can use it to attempt to access any hardware that is mapped as an I/O port. You've been warned! |
2. Use this DLL only with 32-bit programs. 16-bit programs require a 16-bit DLL (inpout16.dll). |
3. Windows 95 allows direct port reads and writes unless a VxD has control of the port and blocks access. Under Windows NT, direct port access is not allowed, and you must use a kernel-mode device driver. |
4. For the latest parallel-port programming and interfacing information and tools, visit Parallel Port Central at: |
http://www.lvr.com |
*** |
Inpout32.zip contains the following files: |
inpout32.txt |
This file |
inpout32.dll |
A DLL that enables the use of Inp and Out routines in 32-bit Visual Basic 4 and Visual Basic 5 programs. |
inpout32.bas |
Visual-Basic declarations for Inp and Out |
inpout32.vbp |
Visual Basic 4 test project for inpout32. The project will also load into and run under Visual Basic 5. |
inpout32.frm |
Startup form for the test project |
inpout32.dpr |
Source code for inpout32.dll. The DLL was compiled with Borland's Delphi 2.0 Object Pascal compiler. |
*** |
How to run the test program (inpout32.vbp): |
1. Copy inpout32.dll to one of these locations: your default Windows directory (usually \Windows), your Windows system directory (usually \Windows\system), or your application's working directory. In the VB programming environment, the working directory is the default VB directory. |
2. Open the project inpout32.vbp. |
3. In the Form_Load subroutine, set PortAddress equal to the port address you want to test. |
3. Clicking the command button causes the program to do the following: write a value to the port, read the port, and display the result. The value increments with each click, resetting to 0 at 255. |
*** |
How to use inpout32 in your programs: |
1. Copy inpout32.dll to your default Windows directory (or other directory as described above). |
2. Add inpout32.bas to your Visual-Basic project (File menu, Add File). |
3. Use this syntax to write to a port: |
Out PortAddress, ValueToWrite |
Example: |
Out &h378, &h55 |
Use this syntax to read a port: |
ValueRead = Inp(PortAddress) |
Example: |
ValueRead = Inp(&h378) |
(The syntax is identical to QuickBasic's Inp and Out). |
/programy/VB/work/INPOUT32.VBP |
---|
0,0 → 1,30 |
Type=Exe |
Form=inpout32.frm |
Module=inpout; Inpout32.bas |
IconForm="inpout32" |
Startup="inpout32" |
Command32="" |
Name="Project1" |
HelpContextID="0" |
CompatibleMode="0" |
MajorVer=1 |
MinorVer=0 |
RevisionVer=0 |
AutoIncrementVer=0 |
ServerSupportFiles=0 |
VersionCompanyName="doma" |
CompilationType=0 |
OptimizationType=0 |
FavorPentiumPro(tm)=0 |
CodeViewDebugInfo=0 |
NoAliasing=0 |
BoundsCheck=0 |
OverflowCheck=0 |
FlPointCheck=0 |
FDIVCheck=0 |
UnroundedFP=0 |
StartMode=0 |
Unattended=0 |
Retained=0 |
ThreadPerObject=0 |
MaxNumberOfThreads=1 |
/programy/VB/work/INPOUT32.vbw |
---|
0,0 → 1,2 |
inpout32 = 25, -2, 354, 453, , -2, -9, 554, 447, C |
inpout = 66, 66, 317, 328, C |
/programy/VB/work/Inpout32.bas |
---|
0,0 → 1,29 |
Attribute VB_Name = "inpout" |
'Inp and Out declarations for direct port I/O |
'in 32-bit Visual Basic 4 programs. |
Public Declare Function Input32 Lib "inpout32.dll" _ |
Alias "Inp32" (ByVal PortAddress As Integer) As Integer |
Public Declare Sub Output Lib "inpout32.dll" _ |
Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer) |
Sub out(ByVal Value As Integer) |
Output &H3BC, Value |
End Sub |
Function inp() As Integer |
inp = Input32(&H3BD) |
End Function |
Function inp11() As Boolean |
inp11 = ((inp And &H80) = 0) |
End Function |
Function inp10() As Boolean |
inp10 = Not ((inp And &H40) = 0) |
End Function |
Function inp12() As Boolean |
inp12 = Not ((inp And &H20) = 0) |
End Function |
Function inp13() As Boolean |
inp13 = Not ((inp And &H10) = 0) |
End Function |
/programy/VB/work/inpout32.frm |
---|
0,0 → 1,271 |
VERSION 5.00 |
Begin VB.Form inpout32 |
Caption = "Form1" |
ClientHeight = 4710 |
ClientLeft = 915 |
ClientTop = 1410 |
ClientWidth = 4770 |
LinkTopic = "Form1" |
PaletteMode = 1 'UseZOrder |
ScaleHeight = 4710 |
ScaleWidth = 4770 |
Begin VB.Timer Timer2 |
Left = 2400 |
Top = 3480 |
End |
Begin VB.HScrollBar HScroll1 |
Height = 375 |
Left = 240 |
Max = 500 |
TabIndex = 17 |
Top = 3000 |
Value = 5 |
Width = 1695 |
End |
Begin VB.Timer Timer1 |
Left = 360 |
Top = 3480 |
End |
Begin VB.CommandButton Command11 |
Caption = "8" |
Height = 195 |
Left = 4320 |
TabIndex = 16 |
Top = 2280 |
Width = 135 |
End |
Begin VB.CommandButton Command10 |
Caption = "7" |
Height = 195 |
Left = 4080 |
TabIndex = 15 |
Top = 2280 |
Width = 135 |
End |
Begin VB.CommandButton Command9 |
Caption = "6" |
Height = 195 |
Left = 3840 |
TabIndex = 14 |
Top = 2280 |
Width = 135 |
End |
Begin VB.CommandButton Command8 |
Caption = "5" |
Height = 195 |
Left = 3600 |
TabIndex = 13 |
Top = 2280 |
Width = 135 |
End |
Begin VB.CommandButton Command7 |
Caption = "4" |
Height = 195 |
Left = 3240 |
TabIndex = 12 |
Top = 2280 |
Width = 135 |
End |
Begin VB.CommandButton Command6 |
Caption = "3" |
Height = 195 |
Left = 3000 |
TabIndex = 11 |
Top = 2280 |
Width = 135 |
End |
Begin VB.CommandButton Command5 |
Caption = "2" |
Height = 195 |
Left = 2760 |
TabIndex = 10 |
Top = 2280 |
Width = 135 |
End |
Begin VB.CommandButton Command4 |
Caption = "1" |
Height = 195 |
Left = 2520 |
TabIndex = 9 |
Top = 2280 |
Width = 135 |
End |
Begin VB.TextBox Text13 |
Height = 285 |
Left = 3240 |
TabIndex = 4 |
Top = 1680 |
Width = 495 |
End |
Begin VB.TextBox Text12 |
Height = 285 |
Left = 3240 |
TabIndex = 3 |
Top = 1200 |
Width = 495 |
End |
Begin VB.TextBox Text10 |
Height = 285 |
Left = 3240 |
TabIndex = 2 |
Top = 240 |
Width = 495 |
End |
Begin VB.TextBox Text11 |
Height = 285 |
Left = 3240 |
TabIndex = 1 |
Top = 720 |
Width = 495 |
End |
Begin VB.Timer Timer_input |
Left = 1680 |
Top = 120 |
End |
Begin VB.TextBox Text1 |
Height = 372 |
Left = 960 |
TabIndex = 0 |
Top = 120 |
Width = 615 |
End |
Begin VB.Label Label13 |
Caption = "13" |
Height = 375 |
Left = 3840 |
TabIndex = 8 |
Top = 1680 |
Width = 375 |
End |
Begin VB.Label Label3 |
Caption = "12" |
Height = 375 |
Left = 3840 |
TabIndex = 7 |
Top = 1200 |
Width = 375 |
End |
Begin VB.Label Label2 |
Caption = "10" |
Height = 375 |
Left = 3840 |
TabIndex = 6 |
Top = 240 |
Width = 375 |
End |
Begin VB.Label Label1 |
Caption = "11" |
Height = 255 |
Left = 3840 |
TabIndex = 5 |
Top = 720 |
Width = 255 |
End |
End |
Attribute VB_Name = "inpout32" |
Attribute VB_GlobalNameSpace = False |
Attribute VB_Creatable = False |
Attribute VB_PredeclaredId = True |
Attribute VB_Exposed = False |
Dim pocitadlo |
Dim stare_cislo |
Private Sub Command10_Click() |
out &H40 |
End Sub |
Private Sub Command11_Click() |
out &H80 |
End Sub |
Private Sub Command2_Click() |
out &HFF |
Timer1.Enabled = True |
End Sub |
Private Sub Command3_Click() |
out 3 |
Timer1.Enabled = True |
End Sub |
Private Sub Command4_Click() |
out &H1 |
End Sub |
Private Sub Command5_Click() |
out &H2 |
End Sub |
Private Sub Command6_Click() |
out &H4 |
End Sub |
Private Sub Command7_Click() |
out &H8 |
End Sub |
Private Sub Command8_Click() |
out &H10 |
End Sub |
Private Sub Command9_Click() |
out &H20 |
End Sub |
Private Sub Form_Load() |
Timer_input.Interval = 100 |
Timer_input.Enabled = True |
stare_cislo = HScroll1.Value |
End Sub |
Private Sub HScroll1_Change() |
If HScroll1.Value < stare_cislo Then |
Timer1.Interval = 1 |
Timer1.Enabled = True |
End If |
If HScroll1.Value > stare_cislo Then |
Timer2.Interval = 1 |
Timer2.Enabled = True |
End If |
stare_cislo = HScroll1.Value |
End Sub |
Private Sub Timer_input_Timer() |
Text1.Text = inp |
Text10.Text = inp10 |
Text11.Text = inp11 |
Text12.Text = inp12 |
Text13.Text = inp13 |
End Sub |
Private Sub Timer1_Timer() |
Select Case pocitadlo |
Case 1 |
Call Command8_Click |
Case 2 |
Call Command10_Click |
Case 3 |
Call Command9_Click |
Case 4 |
Call Command11_Click |
Timer1.Enabled = False |
pocitadlo = 0 |
End Select |
pocitadlo = pocitadlo + 1 |
End Sub |
Private Sub Timer2_Timer() |
Select Case pocitadlo |
Case 1 |
Call Command11_Click |
Case 2 |
Call Command9_Click |
Case 3 |
Call Command10_Click |
Case 4 |
Call Command8_Click |
Timer2.Enabled = False |
pocitadlo = 0 |
End Select |
pocitadlo = pocitadlo + 1 |
End Sub |
/programy/VB/work/joystick/INPOUT32.DLL |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programy/VB/work/joystick/INPOUT32.DPR |
---|
0,0 → 1,38 |
{Source code for inpout32.dll. |
Enables 32-bit Visual Basic programs to do direct port I/O |
(Inp and Out) under Windows 95. |
To be compiled with Borland's Delphi 2.0.} |
library inpout32; |
uses SysUtils; |
procedure Out32(PortAddress:smallint;Value:smallint);stdcall;export; |
var |
ByteValue:Byte; |
begin |
ByteValue:=Byte(Value); |
asm |
push dx |
mov dx,PortAddress |
mov al, ByteValue |
out dx,al |
pop dx |
end; |
end; |
function Inp32(PortAddress:smallint):smallint;stdcall;export; |
var |
ByteValue:byte; |
begin |
asm |
push dx |
mov dx, PortAddress |
in al,dx |
mov ByteValue,al |
pop dx |
end; |
Inp32:=smallint(ByteValue) and $00FF; |
end; |
Exports |
Inp32, |
Out32; |
begin |
end. |
/programy/VB/work/joystick/INPOUT32.TXT |
---|
0,0 → 1,72 |
Documentation for inpout32.zip |
Inpout32.zip contains a DLL that enables direct reading and writing to I/O ports in 32-bit Visual-Basic programs running under Windows 95. |
by Jan Axelson |
Lakeview Research |
Email: jaxelson@lvr.com |
WWW: http://www.lvr.com |
Important information and cautions: |
1. Use this DLL at your own risk. Writing directly to hardware ports can result in system crashes, loss of data, and even permanent damage. Inpout32 was developed to allow access to parallel ports and other ports on custom hardware, but you can use it to attempt to access any hardware that is mapped as an I/O port. You've been warned! |
2. Use this DLL only with 32-bit programs. 16-bit programs require a 16-bit DLL (inpout16.dll). |
3. Windows 95 allows direct port reads and writes unless a VxD has control of the port and blocks access. Under Windows NT, direct port access is not allowed, and you must use a kernel-mode device driver. |
4. For the latest parallel-port programming and interfacing information and tools, visit Parallel Port Central at: |
http://www.lvr.com |
*** |
Inpout32.zip contains the following files: |
inpout32.txt |
This file |
inpout32.dll |
A DLL that enables the use of Inp and Out routines in 32-bit Visual Basic 4 and Visual Basic 5 programs. |
inpout32.bas |
Visual-Basic declarations for Inp and Out |
inpout32.vbp |
Visual Basic 4 test project for inpout32. The project will also load into and run under Visual Basic 5. |
inpout32.frm |
Startup form for the test project |
inpout32.dpr |
Source code for inpout32.dll. The DLL was compiled with Borland's Delphi 2.0 Object Pascal compiler. |
*** |
How to run the test program (inpout32.vbp): |
1. Copy inpout32.dll to one of these locations: your default Windows directory (usually \Windows), your Windows system directory (usually \Windows\system), or your application's working directory. In the VB programming environment, the working directory is the default VB directory. |
2. Open the project inpout32.vbp. |
3. In the Form_Load subroutine, set PortAddress equal to the port address you want to test. |
3. Clicking the command button causes the program to do the following: write a value to the port, read the port, and display the result. The value increments with each click, resetting to 0 at 255. |
*** |
How to use inpout32 in your programs: |
1. Copy inpout32.dll to your default Windows directory (or other directory as described above). |
2. Add inpout32.bas to your Visual-Basic project (File menu, Add File). |
3. Use this syntax to write to a port: |
Out PortAddress, ValueToWrite |
Example: |
Out &h378, &h55 |
Use this syntax to read a port: |
ValueRead = Inp(PortAddress) |
Example: |
ValueRead = Inp(&h378) |
(The syntax is identical to QuickBasic's Inp and Out). |
/programy/VB/work/joystick/INPOUT32.VBP |
---|
0,0 → 1,31 |
Type=Exe |
Form=inpout32.frm |
Module=inpout; Inpout32.bas |
IconForm="inpout32" |
Startup="inpout32" |
HelpFile="" |
Command32="" |
Name="Project1" |
HelpContextID="0" |
CompatibleMode="0" |
MajorVer=1 |
MinorVer=0 |
RevisionVer=0 |
AutoIncrementVer=0 |
ServerSupportFiles=0 |
VersionCompanyName="doma" |
CompilationType=0 |
OptimizationType=0 |
FavorPentiumPro(tm)=0 |
CodeViewDebugInfo=0 |
NoAliasing=0 |
BoundsCheck=0 |
OverflowCheck=0 |
FlPointCheck=0 |
FDIVCheck=0 |
UnroundedFP=0 |
StartMode=0 |
Unattended=0 |
Retained=0 |
ThreadPerObject=0 |
MaxNumberOfThreads=1 |
/programy/VB/work/joystick/INPOUT32.vbw |
---|
0,0 → 1,2 |
inpout32 = 25, -2, 354, 453, Z, -2, -9, 554, 447, C |
inpout = 66, 66, 317, 328, |
/programy/VB/work/joystick/Inpout32.bas |
---|
0,0 → 1,29 |
Attribute VB_Name = "inpout" |
'Inp and Out declarations for direct port I/O |
'in 32-bit Visual Basic 4 programs. |
Public Declare Function Input32 Lib "inpout32.dll" _ |
Alias "Inp32" (ByVal PortAddress As Integer) As Integer |
Public Declare Sub Output Lib "inpout32.dll" _ |
Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer) |
Sub out(ByVal Value As Integer) |
Output &H3BC, Value |
End Sub |
Function inp() As Integer |
inp = Input32(&H3BD) |
End Function |
Function inp11() As Boolean |
inp11 = ((inp And &H80) = 0) |
End Function |
Function inp10() As Boolean |
inp10 = Not ((inp And &H40) = 0) |
End Function |
Function inp12() As Boolean |
inp12 = Not ((inp And &H20) = 0) |
End Function |
Function inp13() As Boolean |
inp13 = Not ((inp And &H10) = 0) |
End Function |
/programy/VB/work/joystick/inpout32.frm |
---|
0,0 → 1,78 |
VERSION 5.00 |
Begin VB.Form inpout32 |
Caption = "Form1" |
ClientHeight = 4710 |
ClientLeft = 915 |
ClientTop = 1410 |
ClientWidth = 4770 |
LinkTopic = "Form1" |
PaletteMode = 1 'UseZOrder |
ScaleHeight = 4710 |
ScaleWidth = 4770 |
Begin VB.Timer TimerY |
Left = 1680 |
Top = 600 |
End |
Begin VB.TextBox TextY |
Height = 375 |
Left = 960 |
TabIndex = 1 |
Text = "Y" |
Top = 600 |
Width = 615 |
End |
Begin VB.Timer TimerX |
Left = 1680 |
Top = 120 |
End |
Begin VB.TextBox TextX |
Height = 372 |
Left = 960 |
TabIndex = 0 |
Text = "X" |
Top = 120 |
Width = 615 |
End |
End |
Attribute VB_Name = "inpout32" |
Attribute VB_GlobalNameSpace = False |
Attribute VB_Creatable = False |
Attribute VB_PredeclaredId = True |
Attribute VB_Exposed = False |
Dim pocitadlo |
Private Sub Form_Load() |
TimerX.Interval = 500 |
TimerX.Enabled = True |
TimerY.Interval = 500 |
TimerY.Enabled = True |
End Sub |
Private Sub TimerX_Timer() |
Dim vstup |
Output &H201, &HFF |
For n = 1 To 1000 |
pocitadlo = n |
vstup = Input32(&H201) And 1 |
If vstup = 0 Then |
GoTo ven |
End If |
Next n |
ven: |
TextX.Text = pocitadlo |
End Sub |
Private Sub TimerY_Timer() |
Dim vstup |
Output &H201, &HFF |
For n = 1 To 1000 |
pocitadlo = n |
vstup = Input32(&H201) And 2 |
If vstup = 0 Then |
GoTo ven |
End If |
Next n |
ven: |
TextY.Text = pocitadlo |
End Sub |
/programy/VB/work/joystick/mssccprj.scc |
---|
0,0 → 1,5 |
SCC = This is a Source Code Control file |
[INPOUT32.VBP] |
SCC_Aux_Path = "C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\COMMON\VSS" |
SCC_Project_Name = "$/programy/VB/work/joystick", RDBAAAAA |
/programy/VB/work/joystick/vssver.scc |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programy/VB/work/mssccprj.scc |
---|
0,0 → 1,5 |
SCC = This is a Source Code Control file |
[INPOUT32.VBP] |
SCC_Aux_Path = "C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\COMMON\VSS" |
SCC_Project_Name = "$/programy/VB/work", QDBAAAAA |
/programy/VB/work/vssver.scc |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |