Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site heurikon.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!genrad!panda!talcott!harvard!uwvax!heurikon!dave From: dave@heurikon.UUCP (Dave Scidmore) Newsgroups: net.micro.amiga Subject: Re: Setting up an interrupt server Message-ID: <155@heurikon.UUCP> Date: Tue, 11-Mar-86 19:03:14 EST Article-I.D.: heurikon.155 Posted: Tue Mar 11 19:03:14 1986 Date-Received: Fri, 14-Mar-86 04:52:25 EST References: <1446@caip.RUTGERS.EDU> Organization: Heurikon Corp., Madison WI Lines: 25 > From: "LYNNE C MOORE" > > > In the ROM Kernel manual, the description of setting up an interrupt > server seems to imply that you should set up an Interrupt structure and call > AddIntServer to put it into the preexisting server chain that the system sets > up. Given that we were adding a server to an existing chain, I assumed that > the > AddIntServer routine would set the pointers to the is_Node.ln_Pred and > is_Node.ln_Succ, and I set up all the remaining fields; however, when I call > the routine to add the server, it never returns. I wrote a little routine to add an interrupt server to the 60Hz VBLANK interrupt chain. The routine used a software interrupt to signal the main routine every 60th interrupt. It worked just fine. It sounds like you are doing everything correctly if you do indeed set up all fields except the linked list pointers. I have only two suggestions. First make sure that the interrupt service routine returns the a zero if it returns anything else the system will not service later routines in the interrupt chain. Since these later routines may belong to the system things may come to a screetching halt. Second make sure that if a lot of stuff is done in the routine it send a software interrupt to do it. On last note, the program I wrote worked OK when compiled under Lattice but not under Manx. Hope this helps. Dave Scidmore