This is the routine which does the actual printing of a string. The U register points to the start of the string, while $C82A contains the height of the character, cell, and $C82B contains the width of the character cell. The string is terminated with an 0x80.
The string is displayed by drawing 7 horizontal rows of dots. The first row is drawn for each character, then the second, etc. The character generation table is located at ($F9D4 + $20). Only characters 0x20-0x6F (upper case) are defined; the lower case characters a-o produce special icons.
DP = $D0
U-reg points to the start of the string
U-reg points to next byte after terminator
D-reg, X-reg trashed