[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4752: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3887)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4754: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3887)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4755: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3887)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4756: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3887)
FMS Forum • View topic - UserPORT & DirectIO - Can these solve SPI problem under WinXP?

UserPORT & DirectIO - Can these solve SPI problem under WinXP?

Postby klei » Sun Feb 20, 2005 8:11 pm

Hello.

Is there anybody who tried out these little utilities under WinXP? They can give you direct hardware access under NT/2k/XP systems...

the USERPORT is open source, so it can be implemented into the next version of FMS I think.

If I set Win98 compatibility mode and open up the serial port, what addresses FMS looks for? What else should be made to make SPI's work again?

- Is there some other checkings that prevents it from proper working?

Michael or Roman M. would you be so kind to tell me more about this?

- What mem addresses FMS needs for Serial PPM Interfaces?
- How FMS recognises the OS?
- Is there additional protection that prevents FMS from running if the required port and addresses are open?
- Would you Implement the UserPORT source if it can solve the direct hardware access problem under NT/2k/XP systems?

Thanks, i hope someone will answer...
klei
 
Posts: 8
Joined: Wed Nov 06, 2002 4:29 pm

Postby klei » Mon Feb 21, 2005 8:02 pm

UserPort's official notes:

UserPort is a simple kernel mode driver for Windows NT/2000/XP that will give programs access to I/O ports. This makes it possible to access the hardware I/O ports directly under Windows NT/2000/XP just like 95/98/ME. Under XP, you may have to set the compatibility mode for the executable to "Windows 98" mode. We do not support Minidaq running on Windows NT/2000/XP operating systems due to using a 3rd party driver, however it does seem to run fine with the systems we have here in the lab.

The FileLINK:

And a sample note from the source code:

/*********************************************************************

Author: Tomas Franzon
Date: 11/09/2000
Program: UserPort.SYS
Compile: Use DDK BUILD facility

Purpose: Give direct port I/O access to user mode programs.

This driver is influenced by an article written by Dale Roberts 8/30/95,
published in May 96 Dr Dobbs Journal, see www.ddj.com.
The driver gives user mode program access to selected ports by changing
the x86-processors IOPM (I/O Permission Map). The driver has one separate
map for all procsesses (AllProcessesIOPM) and one separate map
(ThroughCreateFileIOPM) for processes that opens the file "\\.\UserPort"

The driver tries to read the registry keys:
HKEY_LOCAL_MACHINE\Software\UserPort\AllProcessesIOPM
HKEY_LOCAL_MACHINE\Software\UserPort\ThroughCreateFileIOPM
It will use the default values below if these doesn't exist.

*********************************************************************/


The full source can be found in the zip package.
klei
 
Posts: 8
Joined: Wed Nov 06, 2002 4:29 pm

Postby Michael Moeller » Tue Feb 22, 2005 11:30 am

I have looked into similar packages some time ago, and there hasn't been any the would work the way we need it for the FMS.

The main reason for this is, that we need not only read/write access to the ports, but as well access to some kind of timer chip and to the interrupt of the serial/parallel port. Maybe the timer chip could be replaced with some os timing routines. But the problem remains that we need to be able to register an interrupt service routine for the ports. The interrupt is needed, to achieve a good time resolution without using to much cpu ressources (as it would be the case for polling).

In the current FMS version there are two different drivers to get an interrupt service routine installed. One is the old 16-bit code from the DOS-FMS that is dynamically linked (with some tricks) to the 32-bit FMS code. The other driver is a true Win9x driver (vxd).

There are no special protection mechanisms to prevent the FMS from using the parallel/serial port. But since it is not possible to link and execute 16-bit code or vxd-drivers on WinXp systems, the FMS just disables these options. Just taking a look at the sources ...

... the check is:

Available := Win32Platform = Ver_Platform_Win32_Windows;

About implementing new drivers: I do not believe it is very usefull to implement new drivers directly into the FMS code. The development of a corresponding windows joystick driver is the better solution, I think. There has been developed a josytick driver for the simple IRQ interface once, but it was never finished completely.

Michael Möller
Michael Moeller
Site Admin
 
Posts: 24
Joined: Tue Dec 14, 2004 3:48 pm

Postby klei » Tue Feb 22, 2005 11:40 am

Thanks for the Info Michael.
klei
 
Posts: 8
Joined: Wed Nov 06, 2002 4:29 pm


Return to Serialport-PPM-Interface

Who is online

Users browsing this forum: No registered users and 7 guests

cron