I'm not sure about how to do a square root, but as for multiplication, it's a good thing you're in Usgard. There's a special function called MUL_HL. It takes the value in HL, and multiplies H by L. Example: ld hl, $0308 ;loads 8 and 3 into h and l, respectively (I think it does it backwards anyway...) call MUL_HL ;Multiplies them together, storing the product in HL