🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: de.comp.sys.amiga.tech
3 messages
3 total messages Started by Buerke Wed, 06 May 1998 00:00
TRAP
#4878
Author: Buerke
Date: Wed, 06 May 1998 00:00
7 lines
1281 bytes
Suche ne Beschreibung was der TRAP #0 - Befehl macht.

Also: in welche Register und Adressen muss etwas eingetragen werden, damit
er zu einer bestimmten Adresse springt, und dort den Code abarbeitet.

Ausserdem suche ich noch ne genaue Erklaerung was er macht usw. !
Re: TRAP
#4879
Author: Andre' Breiler
Date: Wed, 06 May 1998 00:00
44 lines
2206 bytes
Buerke wrote:
> 
> Suche ne Beschreibung was der TRAP #0 - Befehl macht.
> 
> Also: in welche Register und Adressen muss etwas eingetragen werden, damit
> er zu einer bestimmten Adresse springt, und dort den Code abarbeitet.
> 
> Ausserdem suche ich noch ne genaue Erklaerung was er macht usw. !

Hallo,

also Du musst in keine Register etwas eintragen.
Du musst in Bezug auf die Register nur Sorge tragen, dass der 
Stackpointer gerade ist (was selbstverstaendlich sein sollte).

Was Du aber auf ejden Fall vorher setzen musst ist der Trap-Vektor.
Dieser befindet sich an $80(VBR) (mir war zu mindest so leider hab
gerade mein "Kochbuch" nicht da).
Das VBR Register gibts glaube ich ab 68020 und wird meines wissens
auch vom OS genutzt. Achso VBR = VectorBaseRegister (also das Register
wo die Basisadresse der Vektortabelle drin steht).
Beim 68000 ist die Basisadresse $0

Was macht der Befehl ?:
Also er sichert den PC + Flags (auf dem Stack) laedt die Adresse, die an
der
Stelle $80+VektorBasisAdresse in den PC und schaltet in den
SupervisorMode.
(also aehnlich wie ein Interrupt).
Beendet wird das dann mit RTE (Return Exception -> schau mal ins Manual
des m68k).
So wenn Du es jetzt noch genau wissen willst, dann kann ich Dir die
Literatur
von Motorola.

In der OS Umgebung sollte aber ein _LVOSupervisor den gleichen Zweck
erfuellen.
(einfach um ins Supervisor Level zu kommen).


Tschau Andre'
-- 
eMail: A.Breiler@gmx.net
Re: TRAP-Befehl
#4867
Author: Stefan Derrick
Date: Thu, 18 Jun 1998 00:00
22 lines
2004 bytes


Buerke wrote:

> Suche ne Beschreibung was der TRAP #0 - Befehl macht.
>
> Also: in welche Register und Adressen muss etwas eingetragen werden, damit
> er zu einer bestimmten Adresse springt, und dort den Code abarbeitet.
>
> Ausserdem suche ich noch ne genaue Erklaerung was er macht usw. !

Soweit mir bekannt ist l�st der TRAP-Befehl eine Trap-Ausnhame (aka Exception)
aus. Der Parameter gibt eine Zahl an, die zwischen 0 und 15 liegt, welche -
nat�rlich - f�r die jeweilige Trap steht. F�r jede Trap kann an den
entsprechenden Vektor ein Zeiger auf ein St�ck Code zugewiesen werden, welcher
beim Auftreten des Befehls ausgef�hrt wird. Ich glaube das VBR
(Vektorbasisregister aka Vector Base Register, ab 68010(?)/20) zeigt auf die
entsprechende Tabelle. Du kannst nat�rlich die Eintr�ge 'von Hand'
modifizieren, aber das ist ja nicht sch�n; ich meine da g�be es zwei
Funktionen namens AllocTrap/FreeTrap. Solltest Du dann vielleicht nochmal in
den AutoDocs (exec.doc) nachschlagen.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads