; SUBROUTINE TO MULTIPLY 16-BIT NUMBER BY 8-BIT NUMBER. ; ENTRY: (DE) = MULTIPLICAND, UNSIGNED. ; (B) = MULTIPLIER, UNSIGNED. ; CALL MUL16. ; EXIT: (HL) = PRODUCT. ; (DE) = DESTROYED. ; (B) = 0. ; .ORG 0000h LD DE, 0101h ; ADDED FOR TESTING PURPOSES. LD B, 07h ; ADDED FOR TESTING PURPOSES. MUL16: LD HL, 0 ; CLEAR PARTIAL PRODUCT. LOOP: SRL B ; SHIFT OUT MULTIPLIER BIT. JP NC, CONT ; GO IF NO CARRY (1 BIT). ADD HL, DE ; ADD MULTIPLICAND. CONT: RET Z ; GO IF MULTIPLIER. EX DE, HL ; MULTIPLICAND TO HL. ADD HL, HL ; SHIFT MULTIPLICAND. EX DE, HL ; SWAP BACK. JP LOOP ; CONTINUE .END