It's an easy custom function. You just need to remember that a string is really just an array of individual characters, so you can iterate over it. I'll give you an example with text (TX$), a wait amount (WT), and even a sound (BP) as a parameter. DEF TYPE TX$,WT,BP FOR I=0 TO LEN(TX$)-1 ?TX$[I]; BEEP BP WAIT WT NEXT END You can then call it like this... TYPE "SMILEBASIC",10,9