home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 4 / AACD04.ISO / AACD / Programming / lsEstuff / mymem.e < prev    next >
Encoding:
Text File  |  1999-07-19  |  1.3 KB  |  75 lines

  1. OPT MODULE  -> mymem.e emodules:mymisc/mymem
  2.  
  3. OPT EXPORT
  4.  
  5. PROC findString(_mem, _memlen, _string, _stringlen)
  6.    DEF end:REG, mem:REG PTR TO CHAR,
  7.        str:REG PTR TO CHAR,
  8.        sl:REG, sp:REG
  9.  
  10.    mem := _mem
  11.    str := _string
  12.    sl := _stringlen - 1
  13.    sp := 0
  14.  
  15.    end := mem + _memlen - _stringlen - 1
  16.  
  17.    WHILE mem <> end
  18.       WHILE mem[sp] = str[sp]
  19.          IF sp = sl THEN RETURN mem
  20.          sp++
  21.       ENDWHILE
  22.          sp := 0
  23.          mem++
  24.    ENDWHILE
  25. ENDPROC NIL
  26.  
  27. EXPORT PROC lwedsize(size)
  28.    WHILE (size AND %11) DO size++
  29. ENDPROC size
  30.  
  31. EXPORT PROC copyMemQuick(to:PTR TO LONG, from:PTR TO LONG, len)
  32.    len--
  33.    MOVE.L len, D0
  34.    LSR.L #2, D0 -> /4
  35.    MOVE.L to, A0
  36.    MOVE.L from, A1
  37. cpy:
  38.    MOVE.L (A1)+, (A0)+
  39.    DBRA D0, cpy
  40.  
  41.    ->len:=len/4
  42.    ->len++
  43.    ->WHILE (len--) DO to[]++ := from[]++
  44. ENDPROC
  45.  
  46. /* longwordfill */
  47. PROC fillMemL(_mem, _value32, _llen)
  48.    DEF m:REG PTR TO LONG, v:REG, l:REG
  49.    m:=_mem
  50.    v:=_value32
  51.    l:=_llen + 1
  52.    WHILE (l--) DO m[]++ := v
  53. ENDPROC
  54.  
  55. /* wordfill */
  56. PROC fillMemW(_mem, _value16, _wlen)
  57.    DEF m:REG PTR TO INT, v:REG, l:REG
  58.    m:=_mem
  59.    v:=_value16
  60.    l:=_wlen + 1
  61.    WHILE (l--) DO m[]++ := v
  62. ENDPROC
  63.  
  64. /* bytefill */
  65. PROC fillMemB(_mem, _value8, _blen)
  66.    DEF m:REG PTR TO CHAR, v:REG, l:REG
  67.    m:=_mem
  68.    v:=_value8
  69.    l:=_blen + 1
  70.    WHILE (l--) DO m[]++ := v
  71. ENDPROC
  72.  
  73.  
  74.  
  75.