www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1995/01/07/20:55:07

Date: Sat, 7 Jan 1995 20:21:23 -0500 (EST)
From: Kimberley Burchett <OKRA AT max DOT tiac DOT net>
Subject: timer int
To: DJGPP Mailing List <djgpp AT sun DOT soe DOT clarkson DOT edu>

  I've got a program that speeds the timer up to 75x/sec and then latches
the interrupt, using it to switch graphics pages on the screen every
vertical retrace.  Everytime the interrupt is called, it waits for a
retrace and then re-sets the timer to 75x/sec to start it over again from
the beginning.  I do this because 75x/sec is too fast - I have it go too
fast so it'll be sure to catch the retrace and then it resynchs itself
afterwards.
  Anyway, the timer handler routines I have should take care of calling 
the old timer every 18.2 times a second or thereabouts - and they do as 
long as I'm not doing anything too fancy, but apparently resynching the 
timer is just too much for it and somehow even though my handler is 
getting called 70x/sec, the old timer is never getting called at all.  
This leads to the strange phenomenon that when my program is running, 
time stands still.  It also prevents me from using the disk :/
  The program does occassionally SIGSEGV with a EIP that doesn't make
sense to symify or gdb.  I have tried replacing the call to the old
handler with a function that would quit the program and print an error
message and it simply never gets called.  I am sure that my handler isn't
taking too much time - it crashes in a different way when that happens. 
  I don't feel like spamming the group with my code unless someone asks 
for it, so I'll leave it at this and hope it might be enough to ring a 
bell with someone.
							Kim

- Raw text -


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