// Calculate Pixel Error - Steep slopes // Y = DeltaY // X = DeltaX lda FractionTableLo,y sta !SMC1++1 sta !SMC3++1 eor #$ff sta !SMC2++1 sta !SMC4++1 lda FractionTableHi,y sta !SMC5++1 eor #$ff sta !SMC6++1 !SMC1: lda Square1Lo,x sec !SMC2: sbc Square2Lo,x !SMC3: lda Square1Hi,x !SMC4: sbc Square2Hi,x clc !SMC5: adc Square1Lo,x sec !SMC6: sbc Square2Lo,x // A = Pixel Error
.align $100 .pc = * "Math Tables" FractionTableHi: .fill 256, >round(65536 / i) + 0.5 FractionTableLo: .fill 256, <round(65536 / i) + 0.5 Square1Lo: .fill 512, [i*i/4] & $ff Square1Hi: .fill 512, [i*i/4] >> 8 Square2Lo: .fill 512, [[[i-255]*[i-255]]/4] & $ff Square2Hi: .fill 512, [[[i-255]*[i-255]]/4] >> 8