Article View: de.comp.sys.amiga.tech
Article #261Re: ?:VectorInterrupts im Amiga
From: Joerg-Cyril Hoehle
Date: Fri, 18 Aug 1995 13:47
Date: Fri, 18 Aug 1995 13:47
34 lines
2436 bytes
2436 bytes
In article <93298406@mhystic.hall.sub.org> "Bernhard Moellemann" <zza@mhystic.hall.sub.org> writes: > Wenn Du einen Interrupt per externer Hardware auf INT2 oder INT6 > auslöst, mußt Du einfach > > AddIntServer(INTB_EXTER, intStruct) oder > AddIntServer(INTB_PORTS, intStruct) > > aufrufen. Näheres, insbesondere die Registerkonventionen stehen in den > AutoDocs. Da die Server eine Kette bilden, wird jedes Glied der Kette > aufgerufen, bis das Zero-Flag des Prozessors "Nicht 0" signalisiert > (also gelöscht ist). Dein Server muß also Deine und _nur_ Deine > Hardware abfragen und wenn sie den Interrupt verursacht hat, eine > weitere Aktion auslösen (vermutlich einem Task Signal()isieren oder > einen SoftInt auslösen), und dann mit Z=0 zurückkehren (RTS). War Deine > Hardware nicht die auslösende, kommt die Routine sofort mit Z=1 zurück. > > Löst Du den Interrupt per Flag-Eingang auf einem der CIAs aus, mußt Du > den Interrupt per cia.resource/AddICRVector() installieren und darfst > gar nicht auf die zuständigen CIA-Register zugreifen. Gut, daß dieses Thema mal angesprochen wird? Wüßte jemand einen Player, der obiges sauber macht? D.h. mit AddICRVector() einen Timerinterrupt belegen, sich in den Interrupt einhängen, aber im Interrupt auch _sicherstellen_, daß der Interrupt vom CIA und nicht von der Hardware kam. Seitdem blödsinnigerweise/fälschliverweise (IMHO) seit OS 2.0 die Leute der Meinung sind, sie müßten unbedingt den hoch priorisierten CIAx (a oder b, welcher war's noch?), lassen alle nicht VBI-Player die Festplatte in meinem alten Amiga stehen. Tolle Programmierung :-( Auf den meisten Amigas gibt's halt auf auf diesem Interrupt nur den Player ... -- Joerg Hoehle. hoehle@inf-wiss.uni-konstanz.de
Technical Details
Message-ID:
<HOEHLE.95Aug18154732@stetten.inf-wiss.ivp.uni-konstanz.de>Path:
arc1-ca.pugleaf.net!news.uni-konstanz.de!newsReferences:
<wKqwSMD42Daez3@point70.people-s.people.sub.org> <wLBQKMD42DatzA@j-plewka.amtrash.comlink.de> <93298406@mhystic.hall.sub.org>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!news.uni-konstanz.de!news From: hoehle@inf-wiss.uni-konstanz.de (Joerg-Cyril Hoehle) Newsgroups: de.comp.sys.amiga.tech Subject: Re: ?:VectorInterrupts im Amiga Date: 18 Aug 1995 13:47:32 GMT Organization: Information Science, Univ. of Konstanz. D-78434 Konstanz, Germany Distribution: world Message-ID: <HOEHLE.95Aug18154732@stetten.inf-wiss.ivp.uni-konstanz.de> References: <wKqwSMD42Daez3@point70.people-s.people.sub.org> <wLBQKMD42DatzA@j-plewka.amtrash.comlink.de> <93298406@mhystic.hall.sub.org> NNTP-Posting-Host: stetten.inf-wiss.uni-konstanz.de In-reply-to: "Bernhard Moellemann"'s message of Wed, 16 Aug 1995 10:37:53 +0100