I originally tried a GrabSprite routine, but the masking didn't appear to work properly - neither of the mask colours came through. Admittedly I didn't spend a lot of time playing with it - I've been busy with other routines and doing the level editor and getting the game working properly

What I actually meant (about LoadSpriteAnim) though is that it should be an automated and included command and not just a function.
[EDIT] Sorted

Here's my Bitmap Font function (for fonts 6x9)
GLOBAL width=6, height=9
LOADSPRITE "gfx/font.png",1000
DRAWRECT 0,0,640,480,RGB(255,0,128)
DRAWSPRITE 1000,0,0
n=1
x=0
y=0
WHILE n<97
GRABSPRITE n,x,y,width,height
n=n+1
x=x+width
IF x>186
x=0
y=y+9
ENDIF
WEND
WHILE TRUE
DRAWRECT 0,0,640,480,RGB(255,255,255)
txt(100,100,"Ian Price was here!")
SHOWSCREEN
WEND
// Display bitmap Text
FUNCTION txt: x, y, ss$
xpos=0
FOR i=0 TO LEN(ss$)-1
cr=(ASC(MID$(ss$,i,1))-31)
DRAWSPRITE cr,x+(xpos*width),y
// Kern text
IF cr=42 OR cr=74 THEN x=x-4
IF cr=9 OR cr=10 OR cr=77 THEN x=x-3
IF cr=1 OR cr=18 OR cr=75 THEN x=x-2
IF cr=85 THEN x=x-1
xpos=xpos+1
NEXT
ENDFUNCTION
Values relate to sprite image number of individual letters, with a full 96 character font (as seen below).

**** Incidently, this could be used for animated sprites too