Thread View: de.comp.sys.amiga.tech
3 messages
3 total messages
Started by Buerke
Wed, 06 May 1998 00:00
TRAP
Author: Buerke
Date: Wed, 06 May 1998 00:00
Date: Wed, 06 May 1998 00:00
7 lines
1281 bytes
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
Author: Andre' Breiler
Date: Wed, 06 May 1998 00:00
Date: Wed, 06 May 1998 00:00
44 lines
2206 bytes
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
Author: Stefan Derrick
Date: Thu, 18 Jun 1998 00:00
Date: Thu, 18 Jun 1998 00:00
22 lines
2004 bytes
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