home *** CD-ROM | disk | FTP | other *** search
- ;
- ; $Id: noisesaver.asm,v 2.1 1994/10/30 00:23:29 mh Exp $
- ;
-
- ; BeginIO() patch for NoiseSaver
-
- ; offsets
-
- FindTask EQU -294
-
- ; export
-
- XDEF MyProc;
- XDEF CallBack;
- XDEF OrigProc;
- XDEF MyTask;
- XDEF ExecBase;
-
- section "bss_NoiseSaver",bss
-
- ; Read-Only vars (set by Oberon-process)
- OrigProc: dc.l 0
- CallBack: dc.l 0
- MyTask: dc.l 0
- ExecBase: dc.l 0
-
- section "asm_NoiseSaver",code
-
- MyProc:
- movem.l a1/a6,-(sp)
- move.l ExecBase,a6
- suba.l a1,a1
- jsr FindTask(a6)
- cmp.l MyTask,d0
- beq cont ; own task? -> do nothing
-
- movea.l (a7),a1
- movea.l CallBack,a0
- jsr (a0)
-
- cont: movem.l (sp)+,a1/a6
- movea.l OrigProc,a0
- jmp (a0)
-
- END
-