Subversion Repositories svnkaklik

Compare Revisions

No changes between revisions

Ignore whitespace Rev 5 → Rev 6

/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