User Tools

Site Tools


base:short_8bit_multiplication_16bit_product

This is an old revision of the document!


Short 8bit * 8bit = 16bit multiply

A small multiplication routine using the ancient egyptian multiplication algorithm. Factors should be stored in the FAC1 and FAC2 variables, the product can be found in Akku (high byte) and the X-Register (low byte). FAC1 will be destroyed. FAC2 is modified to FAC2-1. No tables required. Mod by djmips to increase performance but increased by one byte in size. There is an unwound version of this posted separately. The original version of this routine is published in CALL APPLE, JUNE 1983, P45-48.

FAC1     = $58
FAC2     = $59

        ; A*256 + X = FAC1 * FAC2
MUL8
        lda #$00
        ldx #$08
        dec FAC2  ; FAC2-1
        clc
m0      bcc m1
        adc FAC2  ; this is just + FAC2 because FAC2-1 plus the set carry = FAC2
m1      ror
        ror FAC1
        dex
        bpl m0
        ldx FAC1
        rts
base/short_8bit_multiplication_16bit_product.1598744721.txt.gz · Last modified: 2020-08-30 01:45 by djmips