Re: High frequency output on parallel port, how?

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance

From: J.P. Iribarren (famirib33_at_free.fr)
Date: 09/23/04


Date: Thu, 23 Sep 2004 09:42:31 +0200

Bert <bert@nospam.home.nl> wrote:
> Sorry Guys,
>
> You are all not close,
> The guys in the link below make a CNC control
> with stepper motors on the parallel port.
> A fiend of mine has this system with 3 axes connected,
> there is no external time what so ever.
>
> The step output to the steppermotors really generate well above 10 khz
> on hist 1.5 GHz machine. The steppers run fine, without lost pulses
> etc. Everything on windows keeps running normally, no problem.
> All I know is that a device driver is installed which probably does
> the trick.

Why didn't you dig the site yourself ? It took me about 3 minutes to
find and RTFM at http://www.artofcnc.ca/Mach1.pdf:

[quote]
CNC under Windows platforms has long been thought to be difficult if not
impossible due to unpredictable interrupt and timing systems. Mach1 is
designed to avail itself of interrupt zero processing which allows it to
bypass Microsoft’s limitations in this respect. When interrupt zero
takeover of the 8259 PIC is deemed impossible due to different
motherboard hardware the program automatically attempts to take over
interrupt 255 which is the highest priority interrupt on local PIC
interrupting systems and use the Local APIC timer to instantiate a
real-time subsystem under Windows.
[snip]
The Mach1 driver is written as a form of virus. It is not a destructive
virus, but in order to create a real-time subsystem, it is necessary for
Mach1 to create code for timing in memory and then modify that code as
it checks your computer to re-write the code to match your system.
Windows does not allow this to occur unless a special security key is
generated to inform Windows that this type of self-modifying code is
allowed in your system. A reboot is necessary to instantiate this change
into your system. Without the reboot, when the code tries to self
modify, you will instantly get a Blue Screen of death and the security
key will be lost and the driver corrupted. Since the driver was loaded,
it will reload on the next boot which will signal a corrupt file to the
disk checking system and the process must be started again.
[end of quote]

This relates to Mach1, but this is probably applicable to other
products.

--
Jean-Paul Iribarren (aka JPI)
Anti-spam: ma véritable adresse électronique ne comporte pas de
chiffres;donc...
Anti-spam: my real e-mail address has no digits; consequently...


Relevant Pages

  • Re: High frequency output on parallel port, how?
    ... "Mach2 takes over the scheduling. ... I'm not using the high perfomrance timer or any Windows functions ... > impossible due to unpredictable interrupt and timing systems. ... > The Mach1 driver is written as a form of virus. ...
    (microsoft.public.development.device.drivers)
  • Re: High frequency output on parallel port, how?
    ... I am not really a experienced devicedriver programmer, ... It uses the higest interrupt priority ... I'm not using the high perfomrance timer or any Windows functions ... >> The Mach1 driver is written as a form of virus. ...
    (microsoft.public.development.device.drivers)
  • Re: Assembling Visual Studio generated listing files
    ... card issues an interrupt each time it has a new position for any one ... An ISR is constrained to act in < 10us, and for most modern machines, 12.5us is a very ... Without MASM and in pure C or C++ and without any Windows API/MFC, ... This is a device driver. ...
    (microsoft.public.vc.mfc)
  • Re: High USB throughput requirement
    ... <2ms interrupt response from user space on a 100MHz Pentium. ... scheduling Windows NT was *hard* real time. ... but Windows has a 2-tiered priority system. ... Questionable considering that the cycle time of a 100MHz Pentium is ...
    (comp.arch.embedded)
  • Re: location of CEs vector table
    ... I understood that the standard windows CE kernel cann't be adapted easily to ... support a low-end interrupt processor. ... successfully manufactured the ARM processor which support windows CE ...
    (microsoft.public.windowsce.platbuilder)