home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 354.lha / SmartIcon_v2.0 / src / hooks.asm < prev    next >
Assembly Source File  |  1990-02-27  |  2KB  |  94 lines

  1.  
  2. * This code contains the routines that are called instead of the normal *
  3. * Rom routines.                             *
  4. * Special action is performed either before or after the normal Rom    *
  5. * code.                                 *
  6. *                                    *
  7. * This code is rather heavy but it works.                *
  8.  
  9.    include 'include:exec/types.i'
  10.  
  11. GADGETDOWN    EQU    $00000020
  12. GADGETUP    EQU    $00000040
  13.  
  14.    xref  _Hook
  15.    xdef  _OWentry_point
  16.    xdef  _CWentry_point
  17.    xdef  _MIentry_point
  18.    xdef  _PMentry_point
  19.  
  20.    STRUCTURE   HK,0
  21.    LONG   HK_BASE
  22.    LONG   HK_SYSFUNC
  23.    LONG   HK_MYFUNC
  24.    LONG   HK_ENTRY
  25.    LONG   HK_LVO
  26.  
  27. regboys   reg  d1/d2/d3/d5/a0/a1/a2/a3/a4/a5/a6
  28.  
  29. _OWentry_point:                ; entry point for OpenWindow()
  30.    movem.l  regboys,-(sp)
  31.    lea        _Hook,a3
  32.  
  33.    move.l   HK_SYSFUNC(a3),a5
  34.    jsr        (a5)
  35.  
  36.    move.l   d0,-(sp)
  37.    move.l   HK_MYFUNC(a3),a5
  38.    jsr        (a5)
  39.    move.l   (sp)+,d0
  40.  
  41.    movem.l  (sp)+,regboys
  42.    rts
  43.  
  44. _CWentry_point:                ; entry point for CloseWindow()
  45.    movem.l  regboys,-(sp)
  46.    lea        _Hook+20,a3
  47.  
  48.    move.l   a0,-(sp)
  49.    move.l   HK_MYFUNC(a3),a5
  50.    jsr        (a5)
  51.    move.l   (sp)+,a0
  52.  
  53.    move.l   HK_SYSFUNC(a3),a5
  54.    jsr        (a5)
  55.  
  56.    movem.l  (sp)+,regboys
  57.    rts
  58.  
  59. _MIentry_point:                ; entry point for ModifyIDCMP()
  60.    movem.l  regboys,-(sp)
  61.    lea        _Hook+40,a3
  62.  
  63.    ori.l    #GADGETDOWN,d0
  64.    ori.l    #GADGETUP,d0
  65.    move.l   HK_SYSFUNC(a3),a5
  66.    jsr        (a5)
  67.  
  68.    movem.l  (sp)+,regboys
  69.    rts
  70.  
  71. _PMentry_point:                ; entry point for PutMsg()
  72.    movem.l  regboys,-(sp)
  73.    lea        _Hook+60,a3
  74.  
  75.    movem.l  regboys,-(sp)
  76.    move.l   a1,-(sp)
  77.    move.l   a0,-(sp)
  78.    move.l   HK_MYFUNC(a3),a5
  79.    jsr        (a5)
  80.    adda.w   #8,sp
  81.    movem.l  (sp)+,regboys
  82.  
  83.    tst.l    d0
  84.    bne.b    done
  85.  
  86.    move.l   HK_SYSFUNC(a3),a5
  87.    jsr        (a5)
  88.  
  89. done:
  90.    movem.l  (sp)+,regboys
  91.    rts
  92.  
  93.    end
  94.