ref: 476f9ba40d5b59fd724ac1234b34448df372d52c
dir: /home/math.asm/
AddNTimes:: ; Add bc * a to hl. and a ret z .loop add hl, bc dec a jr nz, .loop ret SimpleMultiply:: ; Return a * c. and a ret z push bc ld b, a xor a .loop add c dec b jr nz, .loop pop bc ret SimpleDivide:: ; Divide a by c. Return quotient b and remainder a. ld b, 0 .loop inc b sub c jr nc, .loop dec b add c ret Multiply:: ; Multiply hMultiplicand (3 bytes) by hMultiplier. Result in hProduct. ; All values are big endian. push hl push bc callfar _Multiply pop bc pop hl ret Divide:: ; Divide hDividend length b (max 4 bytes) by hDivisor. Result in hQuotient. ; All values are big endian. push hl push de push bc homecall _Divide pop bc pop de pop hl ret SubtractSigned:: ; Return a - b, sign in carry. sub b ret nc cpl add 1 scf ret