Welcome back to this short series on creating a really impressive, yet regulated, "pattern" effect via machine code. Last issue I presented a generator which filled the whole screen in one go. This disc's article and utility combines the idea with the Fibonacci method of generating graphics.
2. AUTOFIB - Automaton-Fibonacci Backgrounds
The Fibonacci sequence evolves from adding previous numbers to obtain the next in a series, normally starting with 1 and 1:
1,1,2,3,5,8,13,21,34,55,89,144,...
Reducing each term to its digit sum gives a sequence which repeats itself after 24 terms:
and they can be used as a basis repeating for patterns.
The sequence in its reduced form is generated by GEN, filling a 24-byte table called TABLE. The digit summing is done by DIGSUM - those of you who have seen my previous articles on the subject can compare it with the Basic version.
ENCODE picks up a term, uses it as an index into RULES (which, like before, is filled with random values in Basic in line 90), and makes up a four-pixel byte to put into the screen Ram. There are 24 terms but 160 pixels across the screen, so once 24 pixels (or 6 bytes) have been plotted, the routine wraps around to the start of TABLE.
Of course, 160 isn't exactly divisible by 24, but that creates a staggered effect. The next row of pixels is slightly displaced from the row above. This produces interesting patterns that might give you ideas for bricks and other scenic sprites in a game.