ref: e43c89bc80bb1bb7ff2fc93bb5288f2c0211ea0b
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