www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/01/24/20:29:09

From: Fabrice Frances <frances AT ensica DOT fr>
Newsgroups: comp.os.msdos.djgpp
Subject: Losing interrupts under NT or what ?
Date: Fri, 24 Jan 1997 12:14:10 +0100
Organization: Ecole Nationale Superieure d'Ingenieurs des Constructions Aeronautiques
Lines: 24
Message-ID: <32E89982.5C11EFE7@ensica.fr>
NNTP-Posting-Host: linuxfly.ensica.fr
Mime-Version: 1.0
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

I have a program reprogramming the timer's interrupt interval to 50 Hz and I
catch the Timer's interrupt in order to synchronize my program's behavior.
It works fine with DPMI hosts like CWSDPMI, or Win3.1, Win95, OS/2 Warp but
not under NT 4.0. I think I don't lose interrupts (the program is always in
protected mode, but I have even written a real mode wrapper to be sure), though
I'm getting a 1.4 time factor... where does it come from ?
Does NT virtualize the timer IO ports (40h to 43h) and my 50 Hz is not taken
into account ? Or does the problem come from the multitasking ? (ie I don't
receive the interrupts which occur while another task is running, and my
program is running in "virtual time"... under linux I can chose between
SIGVTALRM and SIGALRM, is there any equivalent for djgpp ?).

Also, I have followed all the rules to make the code strong (locking data/code
regions, interrupt handlers written in assembly with Gas, etc) but the program
still doesn't start at the first time (it gets a SIGSEGV), and runs ok if I
launch it a second time... is there any known tricky thing with NT beyond
djgpp's FAQ ?

Thanks in advance for any help,
-- 
                       main(){int i,j,k,l,m,n,p;char
*s="@_DO AT AJQ@AQQ AT OQO@A_Q AT AQQ@AQO@@@@ONN_QDQAQDAAODAOEDAAIDQAQNN_@@@@";for(j=0
;j<16;j++)for(l=0;p=j%8,m=l-7+p,i=m/6,n=j*4+i,k=1<<m%6,l<32-p;l++)putchar(l<7-
p?' ':l==31-p?'\n':s[n]&k?(j==6||!(s[n+4]&k)?'_':' '):k/2&&s[n]&k/2?'/':' ');}

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019