home *** CD-ROM | disk | FTP | other *** search
/ Amiga GigaPD 3 / Amiga_GigaPD_v3_3of3.iso / fred_fish / fish_601-700_lha / fish_648.lha / ADDASSIGN / addiglue.asm < prev    next >
Assembly Source File  |  1993-06-02  |  2KB  |  98 lines

  1. ; stub routines for the fastdir routines
  2.  
  3.     XDEF    _xLock
  4.     XDEF    _xOpen
  5.     XDEF    _xLoadSeg
  6.  
  7.     XDEF    _dosLock
  8.     XDEF    _dosOpen
  9.     XDEF    _dosLoadSeg
  10.     
  11.     XREF    _NewLock
  12.     XREF    _oldLock
  13.     XREF    _oldLockd0
  14.  
  15.     XREF    _NewOpen
  16.     XREF    _oldOpen
  17.     XREF    _oldOpend0
  18.  
  19.     XREF    _NewLoadSeg
  20.     XREF    _oldLoadSeg
  21.     XREF    _oldLoadSegd0
  22.  
  23.     XREF    _DosBase
  24.     XREF    _geta4
  25.  
  26.  
  27. ;    vectoroffset->stub->NewRoutines->stub->routines
  28.  
  29. ;    Lock->jmp _xLock->jmp _NewLock->rts(Lock)
  30.     
  31. ;    NewLock->_dosLock->jmp (a5)->rts(NewLock)
  32.  
  33. ;    arp believes that the return from a dos function is not only in d0,
  34. ;    but also in d1
  35.  
  36. _xLock:
  37.     movem.l    d2-d7/a0-a6,-(sp)
  38.     move.l    a7,a5
  39.     jsr    _geta4
  40.     jsr    _NewLock
  41.     move.l    d0,d1
  42.     movem.l    (sp)+,d2-d7/a0-a6
  43.     rts
  44.  
  45. _dosLock:
  46.     move.l    4(sp),d1
  47.     move.l    8(sp),d2
  48.     movem.l    d1-d7/a0-a6,-(sp)
  49.     move.l    _oldLock,a5
  50.     move.l    _oldLockd0,d0
  51.     move.l    _DosBase,a6
  52.     jsr    (a5)
  53.     movem.l    (sp)+,d1-d7/a0-a6
  54.     rts
  55.  
  56. ;****************************;
  57.  
  58. _xOpen:
  59.     movem.l    d2-d7/a0-a6,-(sp)
  60.     move.l    a7,a5
  61.     jsr    _geta4
  62.     jsr    _NewOpen
  63.     move.l    d0,d1
  64.     movem.l    (sp)+,d2-d7/a0-a6
  65.     rts
  66.  
  67. _dosOpen:
  68.     move.l    4(sp),d1
  69.     move.l    8(sp),d2
  70.     movem.l    d1-d7/a0-a6,-(sp)
  71.     move.l    _oldOpen,a5
  72.     move.l    _oldOpend0,d0
  73.     move.l    _DosBase,a6
  74.     jsr    (a5)
  75.     movem.l    (sp)+,d1-d7/a0-a6
  76.     rts
  77.  
  78. ;****************************;
  79.  
  80. _xLoadSeg:
  81.     movem.l    d2-d7/a0-a6,-(sp)
  82.     move.l    a7,a5
  83.     jsr    _geta4
  84.     jsr    _NewLoadSeg
  85.     move.l    d0,d1
  86.     movem.l    (sp)+,d2-d7/a0-a6
  87.     rts
  88.  
  89. _dosLoadSeg:
  90.     move.l    4(sp),d1
  91.     movem.l    d1-d7/a0-a6,-(sp)
  92.     move.l    _oldLoadSeg,a5
  93.     move.l    _oldLoadSegd0,d0
  94.     move.l    _DosBase,a6
  95.     jsr    (a5)
  96.     movem.l    (sp)+,d1-d7/a0-a6
  97.     rts
  98.