X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f From: RayeR Newsgroups: comp.os.msdos.djgpp Subject: Re: PM interrupt handling - how to call old old ISR with slower rate than my new ISR Date: Fri, 02 Nov 2007 06:09:32 -0700 Organization: http://groups.google.com Lines: 29 Message-ID: <1194008972.850005.77660@k79g2000hse.googlegroups.com> References: <1193997973 DOT 429569 DOT 16180 AT y42g2000hsy DOT googlegroups DOT com> <20071102105257 DOT 6AE83570272 AT panel DOT abserver DOT es> NNTP-Posting-Host: 195.70.144.29 Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" X-Trace: posting.google.com 1194008973 29254 127.0.0.1 (2 Nov 2007 13:09:33 GMT) X-Complaints-To: groups-abuse AT google DOT com NNTP-Posting-Date: Fri, 2 Nov 2007 13:09:33 +0000 (UTC) In-Reply-To: <20071102105257.6AE83570272@panel.abserver.es> User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070802 SeaMonkey/1.1.4,gzip(gfe),gzip(gfe) Complaints-To: groups-abuse AT google DOT com Injection-Info: k79g2000hse.googlegroups.com; posting-host=195.70.144.29; posting-account=ps2QrAMAAAA6_jCuRt2JEIpn5Otqf_w0 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk On Nov 2, 11:52 am, "JM Rams" wrote: > Well, I don't simulate real time clock, I chain my new interrupt, then real > time interrupt is called more than 18,3 times per second. The thing I do is > discount real time counters to make the increment only 18,3 times per > second. > > All works, hour, callendar, floppy disk. "uclock" don`t works because it > uses registers of timer. I do my own uclock. Aha, understand. but it will not prevent if something else is hooked at timer. and another thing. It's suggested to use lock functions to prevent code/data swapping off. but how do i get size of code of my PM_ISR? Somewhere I saw a trick: void ISR() {...} void ISR_END {} and then calc size=(long)ISR_END-(long)ISR; But GCC seems to not keep the order because I got negative size - mean that in real ISR_END() is placed at lower address than ISR() so this completly fails. Better idea? Maybe that if it's only small program I could disable paging at all via crt0 flag but will not mess up when running under windows?