Hi there!
Here's my submission for a working programme in 20 lines or less. Just made the 20.
wait 1000:hide mouse
center text 320,40,"A programme to write text to the screen one letter at a time":center text 320,57,"*********************************"
center text 320,74,"Author gearce - December 2006":center text 320,91,"*********************************":wait 3000:th=17
partone$="In this particular example the message has 13 lines,|including blanks, and is positioned in the middle of|the screen, both horizontally "
partone$=partone$+"and vertically, but can|of course be positioned anywhere according to the"
message$=partone$:tw=text width("In this particular example the message has 13 lines,")/2:across=320-tw:down=136:gosub writemessage
parttwo$="|values allocated to the variables across and down. *||The speed at which the letters are written to the|screen is determined by the "
parttwo$=parttwo$+"delay value in the|write message subroutine.":message$=parttwo$:gosub writemessage
partthree$="*||Experiment with different font typefaces and sizes,*|across and down values,*different number of|message lines,*different delay "
partthree$=partthree$+"values etc.":message$=partthree$:gosub writemessage:suspend for key:end
writemessage:
for character=1 to len(message$)
if mid$(message$,character)="|" then across=320-tw-text width(mid$(message$,character)):inc down,(th*1)
if mid$(message$,character)="*" then across=across+text width(mid$(message$,character-1)):wait 1000
if mid$(message$,character)="|" or mid$(message$,character)="*"
writetext$="off"
else
writetext$="on"
across=across+text width(mid$(message$,character-1))
text across,down,mid$(message$,character):wait 30:endif:next character:return
gearce
(GRC)
LANG MEY YER LUM REEK