Discussion:
TP6 i/o ports on winxp
(too old to reply)
delo
2006-10-06 06:59:29 UTC
Permalink
Hi
Is there any chance to use a I/O port using a TP6 compiler
on a WIN XP box?.
With a dallas-maxim device MAX7301 I saw the usage of
a library to access the I/O ports:
" DriverLINX is a registered trademark of Scientific Software Tools, Inc."
(I saw the files and indicates VB and C examples)
Does anyone use it with TP6-7?

bye
delo
Thomas Michel
2006-10-09 07:46:51 UTC
Permalink
Hello
Post by delo
Is there any chance to use a I/O port using a TP6 compiler
on a WIN XP box?.
No!

WinXP (and Win2000, NT4, NT3.x) does not allow direct access to I/O ports. You need (to write) a device driver to access the I/O ports.

Greets Thomas
Markus Humm
2006-10-09 19:08:10 UTC
Permalink
Post by Thomas Michel
Hello
Post by delo
Is there any chance to use a I/O port using a TP6 compiler
on a WIN XP box?.
No!
WinXP (and Win2000, NT4, NT3.x) does not allow direct access to I/O ports.
You need (to write) a device driver to access the I/O ports.
Greets Thomas
And yes, such drivers do already exist. I just don't know their exact
names but google will find them.

Greetings

Markus
Thomas Michel
2006-10-10 05:12:31 UTC
Permalink
Post by Markus Humm
And yes, such drivers do already exist. I just don't know their exact
names but google will find them.
Are you sure it it possible to access the driver from a 16 bit app?

Greetz

Thomas
Markus Humm
2006-10-11 18:12:22 UTC
Permalink
Post by Thomas Michel
Post by Markus Humm
And yes, such drivers do already exist. I just don't know their exact
names but google will find them.
Are you sure it it possible to access the driver from a 16 bit app?
Yes, since he unlocks the ports you specify globally, thus visibly for
all others.

Greetings

Markus
Thomas Michel
2006-10-16 06:33:34 UTC
Permalink
Post by Markus Humm
Yes, since he unlocks the ports you specify globally, thus visibly for
all others.
I never heard about a posibility to access the I/O area from a 16 bit DOS application under Windows 2000 or Windows XP.

Do you have details about it? I did not find anything using google... :-|
Matt Claessen
2006-10-09 19:35:00 UTC
Permalink
Post by delo
Hi
Is there any chance to use a I/O port using a TP6 compiler
on a WIN XP box?.
You could try Direct-IO http://www.direct-io.com
It is shareware, you can try without buying first.

regards, Matt
Thomas Michel
2006-10-10 05:13:06 UTC
Permalink
Post by Matt Claessen
You could try Direct-IO http://www.direct-io.com
It is shareware, you can try without buying first.
Are you sure it it possible to access the driver from a 16 bit app?

Greetz

Thomas
Felipe Monteiro de Carvalho
2006-10-10 20:47:58 UTC
Permalink
Post by delo
Is there any chance to use a I/O port using a TP6 compiler
on a WIN XP box?.
There is a complete direct I/O port access for many platforms here:

http://wiki.lazarus.freepascal.org/Hardware_Access

The Windows part of the page works on Delphi too.

Why are you using TP6 compiler? You can download TurboDelphi for free.

If the app is commercial and you don't have money to buy Delphi you
could use Free Pascal to recompile it.
Felipe Monteiro de Carvalho
2006-10-10 21:01:14 UTC
Permalink
Why are you using TP6 compiler? You can download TurboDelphi for free.
I'd like to rephrase that to: Why are you using TP6 for a Windows
project? TP6 is a MS-DOS compiler, and you have TurboDelphi available
for free.
Yannis
2006-10-10 22:49:03 UTC
Permalink
Post by Felipe Monteiro de Carvalho
Why are you using TP6 compiler? You can download TurboDelphi for free.
I'd like to rephrase that to: Why are you using TP6 for a Windows
project? TP6 is a MS-DOS compiler, and you have TurboDelphi available
for free.
which also can be used for commercial products as well.

regards
Yannis

--
delo
2006-10-11 07:28:53 UTC
Permalink
Post by Yannis
Post by Felipe Monteiro de Carvalho
Why are you using TP6 compiler? You can download TurboDelphi for free.
I'd like to rephrase that to: Why are you using TP6 for a Windows
project? TP6 is a MS-DOS compiler, and you have TurboDelphi available
for free.
which also can be used for commercial products as well.
regards
Yannis
Many thanks to all, I begun with TP 3.2 in 1986 and I have used freepascal
on dos extender
in '97 for a logic analyzer, and use till now in linux, in 1998 I begun to
use also Delphi.
What I want do now is a simple NVRAM writer connected to a parallel port
I like the immediatly of TP6 and is for me an "old friend" from 1991.
I use it last week for truly simple file format transformations.
Probably the software will work on a DOS-box but I like if run also on
XP-box...
Interesting the new Turbo family and thank for the hint!

bye
delo
Marco van de Voort
2006-10-11 09:32:08 UTC
Permalink
Post by delo
Interesting the new Turbo family and thank for the hint!
Note that the new Turbo family is in fact a renamed and cut down Delphi
2006.

It is not bad or so, just closer to the Delphi family than to the Turbo one.
Philippe Verdy
2007-03-27 09:13:47 UTC
Permalink
Look for "inpout32.dll" on http://www.logix4u.net/
(it comes with the sources, and a discussion abuot how it works on ALL
versions of Windows, and a smart autoinstallation of the VxD if needed).

But warning: this DLL implements NO security. You can crash Windows if you
set the wrong I/O, and this DLL does not restrict any access right; if you
need security, you may create a custom DLL from this complete source, that
just implements a single port whose number will be setup and erad in the
Windows registry (the administrator will have access to it and will setup
the correct value).

It's worth reading this source if you have never looked in the Windows DDK
before and how it performs protected I/O or how it can perform I/O
virtualization for concurrent processes...

Note that this source provides NO smart mapping of I/O ports, and does not
implement the PCI autodetection of capabilities, negociation of
configuration and configuration. So this will work for hardware ports that
can be configured by hardware. It also does not perform any Plug'nPlay
autodetection (by vendor id/model id retreived through PCI or USB or I2C bus
enumeration services or custom enumerators for specific bus extenders).

Or you'll have to let the BIOS or Windows do that for you, and get the I/O
port number to use from the old BIOS setup block or from the Windows
registry in the embedded Vxd code or in the interface DLL. his works well
for the two first serial ports (COM1, COM2) and first parallel port (LPT1),
for all other ports, there's no standard way to determine the port
addresses, as it is hardware dependant (that's why we have specific device
drivers for each of them).

If you intend to support DMA operations or device-to-device operations (for
example between PCI boards), there's no support here to program the chipset
routings and the IRQs, and no support for translating virtual memory
addresses used in user applications into physical addresses (hint: you'll
need VirtualAlloc to map virtual memory to physical memory usable in your
VxD; on modern architectures, device I/O ports can also be mapped either as
memory or I/O ports by software; this is interesting for fast Ethernet or
disk drivers because mappings to memory space is faster than mappings to I/O
ports, due to the way the CPU instructions are encoded).
Post by delo
Hi
Is there any chance to use a I/O port using a TP6 compiler
on a WIN XP box?.
With a dallas-maxim device MAX7301 I saw the usage of
" DriverLINX is a registered trademark of Scientific Software Tools, Inc."
(I saw the files and indicates VB and C examples)
Does anyone use it with TP6-7?
bye
delo
Loading...