Well, i made my own that was more of what i needed. If anyone else is interested, here it is. Oh, and if you see a way to optomize it, tell me. ; de = d * e UMul8: push bc ld b,8 xor a UMul8Loop: bit 0,e jr z,UMul8Skip add a,d UMul8Skip: rra rr e or a djnz UMul8Loop ld d,a pop bc ret -mike pearce