🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.sys.amiga.tech
Article #261

Re: ?:VectorInterrupts im Amiga

#261
From: Joerg-Cyril Hoehle
Date: Fri, 18 Aug 1995 13:47
34 lines
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!news
References: <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