***********************************************************
*                     RESET 3                             *
* Resetroutine über den ColdCapture & CoolCapture-Vektor  *
* von ExecBase. Programm wird in die Memorylist           *
* eingetragen.                                            *
* Frank Schäfer & Kickstart in 88/89                      *
* Für den DevPac-Assembler                                *
***********************************************************

        opt  d+                 * Debugger möglich machen

        incdir "DevPac:Include/"   * Wo sind die Includes
        INCLUDE exec/execbase.i * ExecBase wird benötigt
        INCLUDE exec/exec_lib.i * SysBase von hier
        INCLUDE RESETMACROS     * Die eigenen Macros

* Das eigentliche Programm zum Eintragen der Restroutine

        move.l  _SysBase,a6     * ExecBase nach a6
        move.l  #memory,CoolCapture(a6) * Memory belegen
        move.l  #reset,ColdCapture(a6)  * ResetRoutine
        PRUEFSUMME              * Prüfsumme errechnen
        rts                     * Ins CLI zurück

* Die Memory-Routine wird vom CoolCapture-Pointer
* aufgerufen

memory: move.l   #resetEnd-memory,d0 * Speicherbereichgröße
        lea.l    memory,a1       * Adresse des Breiches
        CALLEXEC AllocAbs        * Speicher belegen
        rts                      * Nach Exec zurück


* Die folgende Routine wird beim Reset, ColdCapture-Vektor,
* angesprungen

reset:  move.l  a5,Zurück       * Hierhin zurück Springen
        move.l  _SysBase,a6     * ExecBase nach a6
        move.l  #reset,ColdCapture(a6)  * Resetroutine

        DoSomethink             * Eigenes Programm

        move.l  Zurück,a5       * Rücksprungadresse
        jmp     (a5)            * In Exec-Reset-Routine

Zurück  dc.l    0               * Rücksprungadresse

resetEnd:                       * Speicher bis hier belegen

        END
