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 >
Assembly Source File  |  1998-04-12  |  1KB  |  64 lines

  1. *
  2. * $Id: patches.asm 1.4 1998/04/12 19:08:06 olsen Exp olsen $
  3. *
  4. * :ts=8
  5. *
  6. * Wipeout -- Traces and munges memory and detects memory trashing
  7. *
  8. * Written by Olaf `Olsen' Barthel <olsen@sourcery.han.de>
  9. * Public Domain
  10. *
  11.  
  12.     include "exec/types.i"
  13.     include "exec/macros.i"
  14.  
  15.     section    text,code
  16.  
  17. *****************************************************************************
  18.  
  19. PATCH    macro
  20.  
  21.     xdef    _New\1FrontEnd
  22.     xref    _New\1
  23.  
  24. _New\1FrontEnd:
  25.     move.l    (sp),-(sp)        ; Save the caller return address
  26.  
  27.     movem.l    d0-d7/a0-a7,-(sp)    ; Save all registers
  28.  
  29.     move.l    sp,a2            ; Save a pointer to the register dump
  30.  
  31.     JSRLIB    Forbid
  32.     bsr    _New\1            ; Call the new routine
  33.     JSRLIB    Permit
  34.  
  35.     addq.l    #4,sp            ; Skip register D0 on the stack
  36.     movem.l    (sp)+,d1-d7/a0-a6    ; Restore everything but D0 and A7
  37.     addq.l    #4+4,sp            ; Skip register A7 and SP on the stack
  38.  
  39.     move.l    #$D100DEAD,d1        ; As a side-effect, this patch would
  40.     move.l    #$A000DEAD,a0        ; preserve the contents of the scratch
  41.     move.l    #$A100DEAD,a1        ; registers, which is not what we would
  42.                     ; want to do; so we scratch them
  43.     rts
  44.  
  45.     endm
  46.  
  47. *****************************************************************************
  48.  
  49.     PATCH    AllocMem
  50.     PATCH    FreeMem
  51.  
  52.     PATCH    AllocVec
  53.     PATCH    FreeVec
  54.  
  55.     PATCH    CreatePool
  56.     PATCH    DeletePool
  57.  
  58.     PATCH    AllocPooled
  59.     PATCH    FreePooled
  60.  
  61. *****************************************************************************
  62.  
  63.     end
  64.