home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 5 / DATAFILE_PDCD5.iso / utilities / f / forthmac / !Forthmacs / lib / arm / log2 < prev    next >
Encoding:
Text File  |  1997-05-01  |  891 b   |  38 lines

  1. \ primitives to get 2log
  2. \ Hanno Schwalm
  3. only forth also definitions
  4. code log2    \ ( u -- 2log(n)
  5.         r0    d# 31 #        mov
  6.    begin    top    top    1 #lsl    s mov
  7.    cc while     r0    1        s decr
  8.    ge repeat    top    r0        mov c;
  9.  
  10. code 16log2    \ ( u -- xlog(2) calculates log2 plus 5 bits for precision
  11.         \ xlog2(x) / 32 = log2(x)
  12.         r0    d# 31 16 * #    mov
  13.    begin    top    top    1 #lsl    s mov
  14.    cc while     r0    d# 16        s decr
  15.    ge repeat    top    top    1 #lsl    s mov
  16.         r0    d# 8        cs incr
  17.         top    top    1 #lsl    s mov
  18.         r0    4        cs incr
  19.         top    top    1 #lsl    s mov
  20.         r0    2        cs incr
  21.         top    top    1 #lsl    s mov
  22.         r0    1        cs incr
  23.         top    r0        mov c;
  24.  
  25. code dBU    \ ( u -- dBU ) converts to dbU
  26.         r0    d# 31 8 * #    mov
  27.    begin    top    top    1 #lsl    s mov
  28.    cc while     r0    8        s decr
  29.    ge repeat    top    top    1 #lsl    s mov
  30.         r0    4        cs incr
  31.         top    top    1 #lsl    s mov
  32.         r0    2        cs incr
  33.         top    top    1 #lsl    s mov
  34.         r0    1        cs incr
  35.         top    r0    1 #asl    mov
  36.         top    top top 1 #asl    add
  37.         top    top    3 #asr    mov c;
  38.