Hi,
You could use ArrayWrite and a pointer into that array, something like
Code:
Msg VAR BYTE[32]      '32 byte array for displayed message, zero-indexed
MsgPointer VAR BYTE

ArrayWrite Message, ["Honor",13]   'You can use 13 (or something else) as the end of message character to avoid having to count characters.
GOSUB DisplayMsg
ArrayWrite Message, ["This is the second message",13]
GOSUB DisplayMsg

END

DisplayMsg:
  MsgPointer = 0 : Char = 0

  While Char <> 13
     Char = Msg[MsgPointer]
     'Do your display magic here or GOSUB it.
     MsgPointer = MsgPointer + 1
  Wend 

RETURN
This caught my eye:
Code:
lookup r, [1,2,4,16,16,32,64,128], row   'creates walking "1" for row scanning
Well, that's one idea...