home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 6 / Sonderheft_6-96.iso / pd / libraries / fileid / fileid_library / src / fileident / fileidentasm.asm < prev    next >
Assembly Source File  |  1996-11-03  |  1KB  |  84 lines

  1. ;
  2. ;     $VER: FileIdent ASM-Source 1.14
  3. ;
  4. ;       (C) Copyright 1993,1994,1995
  5. ;
  6. ;              BLOODROCK/SDC
  7. ;
  8. ;           All Rights Reserved
  9. ;
  10. ; Desc.:
  11. ; Example of using the FileID.library
  12. ;
  13. ; Do what U want with the source.
  14. ;
  15. ; ----------------------------------------
  16. ; Name    : FileIdentAsm
  17. ; Filename: FileIdentAsm.asm
  18. ; Version : 1.14
  19. ; Part    : FileIdentAsm (2)
  20. ; Parts   : 2
  21. ; Begin   : 25-Jul-95 16:13:43
  22. ; Date    : 25-Jul-95 16:34:24
  23.  
  24. ;--------------------------------------------------------------------------
  25.  
  26.     include    "exec/types.i"
  27.     include    "exec/tasks.i"
  28.     include    "exec/execbase.i"
  29.  
  30.     SECTION    "TestCode",Code
  31.  
  32. ;--------------------------------------------------------------------------
  33.  
  34.     xdef    _StrMid
  35.  
  36. ;--------------------------------------------------------------------------
  37.  
  38. _StrMid:
  39.     ;    a0=src, a1=dest,d0=len,d1=pos
  40.  
  41.     tst.l    d0
  42.     beq.s    _StrMd_StringEnde
  43.     subq.l    #1,d1
  44.  
  45.     movem.l    d0/a0,-(sp)
  46.  
  47.     moveq    #-1,d0
  48. StrLenLoop
  49.     addq.l    #1,d0
  50.     tst.b    (a0)+
  51.     bne.s    StrLenLoop
  52.     cmp.l    d0,d1
  53.     blo.s    StrMid_PosOK
  54.     movem.l    (sp)+,d0/a0
  55.     clr.b    (a1)
  56.     moveq    #-1,d0        ; Pos. bad
  57.     rts
  58.  
  59. StrMid_PosOK
  60.     movem.l    (sp)+,d0/a0
  61.  
  62.     lea    0(a0,d1.l),a0
  63.     subq.l    #1,d0
  64.  
  65. _StrMidLoop
  66.     move.b    (a0)+,(a1)+
  67.     beq.s    _StrMd_StringEnde
  68.     dbra    d0,_StrMidLoop
  69.  
  70. _StrMd_StringEnde
  71.     clr.b    (a1)
  72.     moveq    #0,d0
  73.     rts
  74.  
  75. ;--------------------------------------------------------------------------
  76.  
  77. ;    csect    __MERGED
  78.  
  79.     xref    _DOSBase
  80.     xref    _SysBase
  81.  
  82.  
  83.     end
  84.