====== Table generator for square table based multiplications ====== By Graham. For the fast 8 bit multiplication routine you need a table containing 512 16-bit values of the function f(x)=int(x*x/4). Since this table needs to be generated quite often, here is a minimum size routine to calculate that table (36 bytes long): ldx #$00 txa .byte $c9 ; CMP #immediate - skip TYA and clear carry flag lb1: tya adc #$00 ml1: sta multabhi,x tay cmp #$40 txa ror ml9: adc #$00 sta ml9+1 inx ml0: sta multablo,x bne lb1 inc ml0+2 inc ml1+2 clc iny bne lb1 And for the [[Seriously fast multiplication]] by JackAsser you'll also need an extra table containing 512 16-bit values of the function f(x)=int((x-255)*(x-255)/4). This can easily be derived from the above table and generated by adding the following code to Graham's excellent routine: ldx #$00 ldy #$ff : lda multabhi+1,x sta multab2hi+$100,x lda multabhi,x sta multab2hi,y lda multablo+1,x sta multab2lo+$100,x lda multablo,x sta multab2lo,y dey inx bne :-