Ok, cool. Well, in the source I gave you earlier is everything you need probably but it's not too well commented at the moment. So what I'll do is I'll explain the technique here.
The simplest part of the technique (and the most important) is to get the colours done. the best way of doing this is to have an array, you can afford to have quite a big one so you can have a really nice even spread of colours with some interesting variations.
Define say an array of 2000 elements.
Make a sub to fill your array,never mind interpolating colour values, this creates a linear and ugly palette, you need to ditch that. It's more effective to do something like this;
SUB MAKE_PALETTE()
DIM AS INTEGER L
DIM AS DOUBLE R,G,B
R=0
G=0
B=0
FOR L=0 TO 999
R=R+.3
G=G+.02
B=B+.01
IF L>50 THEN
R=R+1.3
G=G+.8
B=B+.3
END IF
IF L>500 THEN
R=R+2.3
G=G+1.02
B=B+1.01
END IF
PALETTE(L) = RGB (R,G,B)
NEXT
END SUB
Now that code is mighty bastardised and may contain mistakes, but you get the idea, you can tweak this palette very easily and can make some nice realistic flame looking colours, the best advantage to it is the overhead it will save you later.
You need a screen buffer for your tinyptc screen, as well as this you need two other buffers, one for a cool map and one for a flame buffer.
The system works by having fire particles that scroll upwards, and on top of that you have a cooling map that also does the same, cooling each part of the flame buffer it is covering progressivley each frame.
So...
Lets forget the cool map for a moment, and we just have our flame buffer.
You will know how to write a number between 0 and 999 into any part of that buffer? That's how this will work.
You could say;
X=200
Y=100
HEAT=999
FLAME_BUFFER (X + (Y * XRES)) = HEAT
Which would set that point of the screen on fire at the hottest temperature. This will be how you write flames into your flame buffer.
We need to scroll the buffer...
Decide a speed for your fire particles to scroll upwards, say 2 or 3 pixels is good.
DO NOT PHYSICALLY SCROLL IT!! This is slow.
All you need to do is have an offset variable.
SCROLLSTART = (SCROLLOFFSET*XRES)
And when you copy the colours into your screen buffer;
FOR A=0 TO (XRES*(YRES-3))
screen_buffer(SCROLLSTART) = FLAME_BUFFER(SCROLLSTART)
SCROLLSTART=SCROLLSTART+1
IF SCROLLSTART>(XRES*YRES) THEN SCROLLSTART=0
NEXT
SCROLLOFFSET=SCROLLOFFSET+3
IF SCROLLOFFSET>YRES THEN SCROLLOFFSET=0
Probably bugged but you get the idea..
The cool map should be a blurry map you can create by plotting a few thousand dots with a value of 999 and then anti aliasing it about 20 - 50 times.
You can use the same offset method as I described above to scroll your cool map.
The anti alias to be as fast as possible should be the addition of the four pixels surrounding the one you are on (NOT INCLUDING IT!) and then perform a shr 2 on the result.
I will comment the earlier source I gave you fully to explain this all better tomorrow