JayJay, Thanks for responding. The computer needs to service a medical device that monitors external/real-time events as the highest priority interrupt. The events are in real-time as well as random, and the event triggers a response which must also happen in real-time, and immediately after the causal event, and so the causal event must be serviced immediately and without delay. It cannot wait for the cpu to do house-keeping, or worse, mask its interrupts while so-doing. You might think of these real-time events as "in-coming" rounds being fired at a space-ship, and those rounds require a "shield" be immediately mobilized at the point of impact to protect the crew of the ship. This device is part of a proprietary project and I would need a non-disclosure agreement to say any more about it. Thanks again, Will John Jenkins wrote:
Will No problem - just drop me note on what you are looking for. I know how I did it - but nowadays I may do it differently (depends on what you want to achieve). Regards JayJay -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of will Sent: 22 July 2006 20:35 To: [email protected] Subject: Re: [U2] [UV] time() John, I have an interest, completely outside of U2, in what you did with NMI and would like to ask some questions off-list if you would care to respond. Kind regards, Patrick "Will" Williams 919 567-0042 [EMAIL PROTECTED] John Jenkins wrote: Errm... You can write interrupt handlers *for* (not in) UniVerse. I've done that in a comms. package and it worked just fine. You have to dive into C a lot and use GCI (or CALLC on UniData). I recall having to some work with NMI[ Non-Maskable Interrupts] and interrupt recursion -that was challenging but that's all pretty standard for that sort of processing. You *could* drive UniVerse from an interrupt-driven server process using any of the standard data interchange handles - interrupt driven (yes) but with a lag as the interrupt-driven process "drives" a Universe polled event. Regards JayJay -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Barry Brevik Sent: 21 July 2006 23:41 To: U2-users (E-mail) Subject: [U2] [UV] time() The TIME() function is supposed to return the number of seconds since midnight, in whole seconds on unix, but on Windows machines it returns a real number implying it is accurate to the nearest .001 second. Of course, it doesn't, but I noticed on my server that it rather reliably returns a number rounded to the nearest .015 or .016, giving about 64 divisions per second. Back in the old days, the PC's time chip had a periodicity of .054 seconds. Does anyone know how Universe manages to tic every 16 milliseconds? It seems somewhat dependant on machine load. With my head buried in programming, I suppose I might have missed common hardware improvements <g>. My main concern is how reliable is it? In other words, under heavy load can you miss a tic? On the old fashioned hardware driven interrupt model, you would never miss a tic no matter what the load. If it is reliable, it's too bad we can't write interrupt handlers in Universe. That would be cool. Barry Brevik ------- u2-users mailing list [email protected] To unsubscribe please visit http://listserver.u2ug.org/ ------- u2-users mailing list [email protected] To unsubscribe please visit http://listserver.u2ug.org/ ------- u2-users mailing list [email protected] To unsubscribe please visit http://listserver.u2ug.org/ ------- u2-users mailing list [email protected] To unsubscribe please visit http://listserver.u2ug.org/ ------- u2-users mailing list [email protected] To unsubscribe please visit http://listserver.u2ug.org/
