8bit 16 step Averageing filter by
Andrew Warren
; Written by Andrew Warren [fastfwd at ix.netcom.com].
A couple days ago, I wrote that an averaging filter of the form:
(WIDTH-1)*AVE + NEW
AVE = -------------------
WIDTH
was "absurdly simple" if WIDTH = 256. A couple of people have asked
in private email for the code; here it is:
AVEHI equ [ANY FILE REGISTER] ;Holds the average [0-255].
AVELO equ [ANY FILE REGISTER] ;Holds the fractional part
;of the average.
NEW equ [ANY FILE REGISTER] ;Holds the new sample.
FILTER256:
mov W, AVEHI
mov W, NEW-w
sb C
dec AVEHI
add AVELO, W
snb C
inc AVEHI
7 words, 7 instruction cycles, "NEW" is unchanged.