It's been awhile since I touched on this subject and that's because, as time allowed, I've tried serial communication using the Win32 functions w/ and w/o 'Timeouts' and 'WaitCommEvent' to no avail.

To test the port and machine comm., I don't need Timeouts or WaitCommEvent. I send a test byte (after CreateFile) using WriteFile and then call ReadFile. The machine beeps indicating the sent signal was rec'd by the PIC MCU and the pgm dialog box disappears indicating the return signal was rec'd by the computer.

The problem is when the machine is in operation. An interrupt is generated in the PIC when the machine's optic ckt output goes from logic 1 to logic 0 indicating a count. The interrupt transmits a specific byte of info to the pgm and the counter displayed on the computer screen should increment. All this worked perfectly using the IN/OUT instructions prior to upgrading to WinXP. Now the counters just stay at '000'.

I've seen and worked with AsmIo and WinIo with no luck due to COFF and OMF problems and also looked at Callgates on the Internet and Barry Kauler's callgate (requires separate files or be a Syst. Admin.)

My question is, is there not a simpler way to get to Ring 0 on the fly and go back to Ring 3 when finished AND not have to write a separate .asm file for the Ring 0 code you want to execute?

I know this is lengthy, but any advice would be most appreciated.
Posted on 2002-01-22 10:57:19 by DaveTX47