aduncan@rhea.trl.oz (Allan Duncan) (10/03/90)
This is a second posting on this topic. If you have any knowledge or examples on the use of interrupts with the parallel port, please mail me - I have run into the guru in a big way when I try this. The examples given in the RKM do not quite cover the area in question, since the parallel port must share the interrupt with the keyboard.device in a server chain. My code will run through the obtaining of resources, adding interrupts, abling the ICR etc without a hitch, but if it gets an interrupt it will guru with an illegal instruction near to, but not in, my code space. Allan Duncan ACSnet a.duncan@trl.oz (03) 541 6708 ARPA a.duncan%trl.oz.au@uunet.uu.net UUCP {uunet,hplabs,ukc}!munnari!trl.oz!a.duncan Telecom Research Labs, PO Box 249, Clayton, Victoria, 3168, Australia.
peter@dbaccess.com (Peter A. Castro) (10/05/90)
in article <2307@trlluna.trl.oz>, aduncan@rhea.trl.oz (Allan Duncan) says: > > This is a second posting on this topic. If you have any knowledge or > examples on the use of interrupts with the parallel port, please mail me > - I have run into the guru in a big way when I try this. > > The examples given in the RKM do not quite cover the area in question, > since the parallel port must share the interrupt with the > keyboard.device in a server chain. My code will run through the > obtaining of resources, adding interrupts, abling the ICR etc without a > hitch, but if it gets an interrupt it will guru with an illegal > instruction near to, but not in, my code space. ^^^^^^^^^^^^^^^^^^^ That should be a good indicator that somewhere a bad branch is occuring. First, do you intentially set or clear the Zero flag before returning? For that matter, do you know that you *are* returning? You might want to take a minimalists approach: reduce your Interrupt server to just clearing the Zero flag and returning, thus letting the chaining process continue. That way you can isolate at least one part of your problem. Also, are you using C or Assembler? Remember that when your Server is called that you don't have a heck of a lot in the way of data address ability. Also, are you making any Library calls in the Server routine? Also, remember that you are in Supervisor mode at this time and have a limited Stack to play with. One other thing is Traps. Don't use them inside your code, they will summon the Guru very quickly. For more information you might check out the following Source: "Guru's Guide to the Commodore Amiga, Meditation #1 - Interrupts" By Carl Sassenrath Sassenrath Research P.O. Box 1510, Ukiah, CA 95482 USA It's a slim book (105 pages), white with a strip of maroon on the top. Hope this helps. Good Luck. > Allan Duncan ACSnet a.duncan@trl.oz > (03) 541 6708 ARPA a.duncan%trl.oz.au@uunet.uu.net > UUCP {uunet,hplabs,ukc}!munnari!trl.oz!a.duncan > Telecom Research Labs, PO Box 249, Clayton, Victoria, 3168, Australia. -- Peter A. Castro INTERNET: peter@dbaccess.com // //| c/o DB/Access Inc. UUCP: {uunet,mips}!troi!peter // //|| 2900 Gordon Avenue, Suite 101 FAX: (408) 735-0328 \\ // //-||- Santa Clara, CA 95051-0718 TEL: (408) 735-7545 \// // ||
p554mve@mpirbn.mpifr-bonn.mpg.de (Michael van Elst) (10/07/90)
In article <2307@trlluna.trl.oz> aduncan@rhea.trl.oz (Allan Duncan) writes: >The examples given in the RKM do not quite cover the area in question, >since the parallel port must share the interrupt with the >keyboard.device in a server chain. No, the interrupts of the CIA are dispatched by the cia[ab].resource. You add an interrupt service routine via AddICRVector(). Hope this helps, -- Michael van Elst UUCP: universe!local-cluster!milky-way!sol!earth!uunet!unido!mpirbn!p554mve Internet: p554mve@mpirbn.mpifr-bonn.mpg.de "A potential Snark may lurk in every tree."