/* 16 bit multiply and divide routines. Three 16 bit (two-byte) locations ACC, AUX and EXT must be set up, preferably on zero page. MULTIPLY ROUTINE ACC*AUX -> [ACC,EXT] (low,hi) 32 bit result http://www.ffd2.com/fridge/math/mult-div.s */ ;--- org $2000 mwa #317 mul16.acc mwa #13 mul16.aux jsr mul16 loop jmp loop .proc mul16 acc equ $80 aux equ acc+2 ext equ aux+2 LDA #0 STA EXT+1 LDY #$11 CLC LOOP ROR EXT+1 ROR @ ROR ACC+1 ROR ACC BCC MUL2 CLC ADC AUX PHA LDA AUX+1 ADC EXT+1 STA EXT+1 PLA MUL2 DEY BNE LOOP STA EXT RTS .endp icl '..\xasm_macro.asm'