home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2001 August - Disc 3
/
chip_20018103_hu.iso
/
amiga
/
chiputil
/
wipeout.lha
/
source
/
patches.asm
< prev
next >
Wrap
Assembly Source File
|
1998-04-12
|
1KB
|
64 lines
*
* $Id: patches.asm 1.4 1998/04/12 19:08:06 olsen Exp olsen $
*
* :ts=8
*
* Wipeout -- Traces and munges memory and detects memory trashing
*
* Written by Olaf `Olsen' Barthel <olsen@sourcery.han.de>
* Public Domain
*
include "exec/types.i"
include "exec/macros.i"
section text,code
*****************************************************************************
PATCH macro
xdef _New\1FrontEnd
xref _New\1
_New\1FrontEnd:
move.l (sp),-(sp) ; Save the caller return address
movem.l d0-d7/a0-a7,-(sp) ; Save all registers
move.l sp,a2 ; Save a pointer to the register dump
JSRLIB Forbid
bsr _New\1 ; Call the new routine
JSRLIB Permit
addq.l #4,sp ; Skip register D0 on the stack
movem.l (sp)+,d1-d7/a0-a6 ; Restore everything but D0 and A7
addq.l #4+4,sp ; Skip register A7 and SP on the stack
move.l #$D100DEAD,d1 ; As a side-effect, this patch would
move.l #$A000DEAD,a0 ; preserve the contents of the scratch
move.l #$A100DEAD,a1 ; registers, which is not what we would
; want to do; so we scratch them
rts
endm
*****************************************************************************
PATCH AllocMem
PATCH FreeMem
PATCH AllocVec
PATCH FreeVec
PATCH CreatePool
PATCH DeletePool
PATCH AllocPooled
PATCH FreePooled
*****************************************************************************
end