home *** CD-ROM | disk | FTP | other *** search
- \ primitives to get 2log
- \ Hanno Schwalm
- only forth also definitions
- code log2 \ ( u -- 2log(n)
- r0 d# 31 # mov
- begin top top 1 #lsl s mov
- cc while r0 1 s decr
- ge repeat top r0 mov c;
-
- code 16log2 \ ( u -- xlog(2) calculates log2 plus 5 bits for precision
- \ xlog2(x) / 32 = log2(x)
- r0 d# 31 16 * # mov
- begin top top 1 #lsl s mov
- cc while r0 d# 16 s decr
- ge repeat top top 1 #lsl s mov
- r0 d# 8 cs incr
- top top 1 #lsl s mov
- r0 4 cs incr
- top top 1 #lsl s mov
- r0 2 cs incr
- top top 1 #lsl s mov
- r0 1 cs incr
- top r0 mov c;
-
- code dBU \ ( u -- dBU ) converts to dbU
- r0 d# 31 8 * # mov
- begin top top 1 #lsl s mov
- cc while r0 8 s decr
- ge repeat top top 1 #lsl s mov
- r0 4 cs incr
- top top 1 #lsl s mov
- r0 2 cs incr
- top top 1 #lsl s mov
- r0 1 cs incr
- top r0 1 #asl mov
- top top top 1 #asl add
- top top 3 #asr mov c;
-