I read chaOs's posting as a GO for me to post my code, so, I will. Mind, my solution only provides for upper-case letters, a comma, a period (dot), and a space, at this time. And, in all fairness, I think that using the DRAW statement might be much more code-size efficient. Anyway, here is my code:
Code:
'LETTERS, Ralph A. Esquivel, 03-Mar-2006, draws letters
CLS
SCREEN 13
'5x5 letters A-H sprites, with space to the right and to the bottom
DIM LA((5 * 5 + 1) / 2 + 2)
DIM LB((5 * 5 + 1) / 2 + 2)
DIM LC((5 * 5 + 1) / 2 + 2)
DIM LD((5 * 5 + 1) / 2 + 2)
DIM LE((5 * 5 + 1) / 2 + 2)
DIM LF((5 * 5 + 1) / 2 + 2)
DIM LG((5 * 5 + 1) / 2 + 2)
DIM LH((5 * 5 + 1) / 2 + 2)
DIM LI((5 * 5 + 1) / 2 + 2)
DIM LJ((5 * 5 + 1) / 2 + 2)
DIM LK((5 * 5 + 1) / 2 + 2)
DIM LL((5 * 5 + 1) / 2 + 2)
DIM LM((5 * 5 + 1) / 2 + 2)
DIM LN((5 * 5 + 1) / 2 + 2)
DIM LO((5 * 5 + 1) / 2 + 2)
DIM LP((5 * 5 + 1) / 2 + 2)
DIM LQ((5 * 5 + 1) / 2 + 2)
DIM LR((5 * 5 + 1) / 2 + 2)
DIM LS((5 * 5 + 1) / 2 + 2)
DIM LT((5 * 5 + 1) / 2 + 2)
DIM LU((5 * 5 + 1) / 2 + 2)
DIM LV((5 * 5 + 1) / 2 + 2)
DIM LW((5 * 5 + 1) / 2 + 2)
DIM LX((5 * 5 + 1) / 2 + 2)
DIM LY((5 * 5 + 1) / 2 + 2)
DIM LZ((5 * 5 + 1) / 2 + 2)
DIM LSpace((5 * 5 + 1) / 2 + 2) 'space
DIM LDot((5 * 5 + 1) / 2 + 2) 'period
DIM LComma((5 * 5 + 1) / 2 + 2) 'comma
'capture a piece of the background for cleaning a section later on
DIM CL((5 * 5 + 1) / 2 + 2) 'CL is the CLeaning sprite
GET (1, 1)-(5, 5), CL
'DRAW and GET letters A-Z & Space, Dot, Comma
GOSUB DrawLetters
'enter word to print, and print it
'''following is a sample string:
WordIs$ = "ABCDEFGHIJKLMNOPQRSTUVWXYZ ,."
'location desired for string
X = 1: Y = 0
GOSUB PrintWord:
LOCATE 4
PRINT WordIs$
WHILE INKEY$ = "": WEND
END
'=================
'Subroutines:
DrawLetters:
RESTORE A:
GOSUB LETT:
GET (1, 1)-(5, 5), LA
PUT (1, 1), CL, PSET
RESTORE B:
GOSUB LETT:
GET (1, 1)-(5, 5), LB
PUT (1, 1), CL, PSET
RESTORE C:
GOSUB LETT:
GET (1, 1)-(5, 5), LC
PUT (1, 1), CL, PSET
RESTORE D:
GOSUB LETT:
GET (1, 1)-(5, 5), LD
PUT (1, 1), CL, PSET
RESTORE E:
GOSUB LETT:
GET (1, 1)-(5, 5), LE
PUT (1, 1), CL, PSET
RESTORE F:
GOSUB LETT:
GET (1, 1)-(5, 5), LF
PUT (1, 1), CL, PSET
RESTORE G:
GOSUB LETT:
GET (1, 1)-(5, 5), LG
PUT (1, 1), CL, PSET
RESTORE H:
GOSUB LETT:
GET (1, 1)-(5, 5), LH
PUT (1, 1), CL, PSET
RESTORE I:
GOSUB LETT:
GET (1, 1)-(5, 5), LI
PUT (1, 1), CL, PSET
RESTORE J:
GOSUB LETT:
GET (1, 1)-(5, 5), LJ
PUT (1, 1), CL, PSET
RESTORE K:
GOSUB LETT:
GET (1, 1)-(5, 5), LK
PUT (1, 1), CL, PSET
RESTORE L:
GOSUB LETT:
GET (1, 1)-(5, 5), LL
PUT (1, 1), CL, PSET
RESTORE M:
GOSUB LETT:
GET (1, 1)-(5, 5), LM
PUT (1, 1), CL, PSET
RESTORE N:
GOSUB LETT:
GET (1, 1)-(5, 5), LN
PUT (1, 1), CL, PSET
RESTORE O:
GOSUB LETT:
GET (1, 1)-(5, 5), LO
PUT (1, 1), CL, PSET
RESTORE P:
GOSUB LETT:
GET (1, 1)-(5, 5), LP
PUT (1, 1), CL, PSET
RESTORE Q:
GOSUB LETT:
GET (1, 1)-(5, 5), LQ
PUT (1, 1), CL, PSET
RESTORE R:
GOSUB LETT:
GET (1, 1)-(5, 5), LR
PUT (1, 1), CL, PSET
RESTORE S:
GOSUB LETT:
GET (1, 1)-(5, 5), LS
PUT (1, 1), CL, PSET
RESTORE T:
GOSUB LETT:
GET (1, 1)-(5, 5), LT
PUT (1, 1), CL, PSET
RESTORE U:
GOSUB LETT:
GET (1, 1)-(5, 5), LU
PUT (1, 1), CL, PSET
RESTORE V:
GOSUB LETT:
GET (1, 1)-(5, 5), LV
PUT (1, 1), CL, PSET
RESTORE W:
GOSUB LETT:
GET (1, 1)-(5, 5), LW
PUT (1, 1), CL, PSET
RESTORE X:
GOSUB LETT:
GET (1, 1)-(5, 5), LX
PUT (1, 1), CL, PSET
RESTORE Y:
GOSUB LETT:
GET (1, 1)-(5, 5), LY
PUT (1, 1), CL, PSET
RESTORE Z:
GOSUB LETT:
GET (1, 1)-(5, 5), LZ
PUT (1, 1), CL, PSET
RESTORE Space:
GOSUB LETT:
GET (1, 1)-(5, 5), LSpace
PUT (1, 1), CL, PSET
RESTORE Dot:
GOSUB LETT:
GET (1, 1)-(5, 5), LDot
PUT (1, 1), CL, PSET
RESTORE Comma:
GOSUB LETT:
GET (1, 1)-(5, 5), LComma
PUT (1, 1), CL, PSET
RETURN
LETT:
LOCATE 5
FOR Y = 1 TO 5
FOR X = 1 TO 5
READ C
PSET (X, Y), C
NEXT X
NEXT Y
RETURN
PrintWord:
AA = 6
FOR I = 0 TO LEN(WordIs$) - 1
A$ = MID$(WordIs$, I + 1, 1)
IF A$ = "A" THEN
PUT (X + I * AA - 1, Y), LA, PSET
ELSEIF A$ = "B" THEN
PUT (X + I * AA - 1, Y), LB, PSET
ELSEIF A$ = "C" THEN
PUT (X + I * AA - 1, Y), LC, PSET
ELSEIF A$ = "D" THEN
PUT (X + I * AA - 1, Y), LD, PSET
ELSEIF A$ = "E" THEN
PUT (X + I * AA - 1, Y), LE, PSET
ELSEIF A$ = "F" THEN
PUT (X + I * AA - 1, Y), LF, PSET
ELSEIF A$ = "G" THEN
PUT (X + I * AA - 1, Y), LG, PSET
ELSEIF A$ = "H" THEN
PUT (X + I * AA - 1, Y), LH, PSET
ELSEIF A$ = "I" THEN
PUT (X + I * AA - 1, Y), LI, PSET
ELSEIF A$ = "J" THEN
PUT (X + I * AA - 1, Y), LJ, PSET
ELSEIF A$ = "K" THEN
PUT (X + I * AA - 1, Y), LK, PSET
ELSEIF A$ = "L" THEN
PUT (X + I * AA - 1, Y), LL, PSET
ELSEIF A$ = "M" THEN
PUT (X + I * AA - 1, Y), LM, PSET
ELSEIF A$ = "N" THEN
PUT (X + I * AA - 1, Y), LN, PSET
ELSEIF A$ = "O" THEN
PUT (X + I * AA - 1, Y), LO, PSET
ELSEIF A$ = "P" THEN
PUT (X + I * AA - 1, Y), LP, PSET
ELSEIF A$ = "Q" THEN
PUT (X + I * AA - 1, Y), LQ, PSET
ELSEIF A$ = "R" THEN
PUT (X + I * AA - 1, Y), LR, PSET
ELSEIF A$ = "S" THEN
PUT (X + I * AA - 1, Y), LS, PSET
ELSEIF A$ = "T" THEN
PUT (X + I * AA - 1, Y), LT, PSET
ELSEIF A$ = "U" THEN
PUT (X + I * AA - 1, Y), LU, PSET
ELSEIF A$ = "V" THEN
PUT (X + I * AA - 1, Y), LV, PSET
ELSEIF A$ = "W" THEN
PUT (X + I * AA - 1, Y), LW, PSET
ELSEIF A$ = "X" THEN
PUT (X + I * AA - 1, Y), LX, PSET
ELSEIF A$ = "Y" THEN
PUT (X + I * AA - 1, Y), LY, PSET
ELSEIF A$ = "Z" THEN
PUT (X + I * AA - 1, Y), LZ, PSET
ELSEIF A$ = " " THEN
PUT (X + I * AA - 1, Y), LSpace, PSET
ELSEIF A$ = "." THEN
PUT (X + I * AA - 1, Y), LDot, PSET
ELSEIF A$ = "," THEN
PUT (X + I * AA - 1, Y), LComma, PSET
END IF
PUT (X + I * AA - 1 + 5, Y), LSpace, PSET
NEXT I
RETURN
'====================
'size 5X5 letters A-H, Space, Dot, Comma
A:
DATA 15,15,15,15,15
DATA 15,00,00,00,15
DATA 15,15,15,15,15
DATA 15,00,00,00,15
DATA 15,00,00,00,15
B:
DATA 15,15,15,15,00
DATA 15,00,00,00,15
DATA 15,15,15,15,00
DATA 15,00,00,00,15
DATA 15,15,15,15,00
C:
DATA 15,15,15,15,00
DATA 15,00,00,00,00
DATA 15,00,00,00,00
DATA 15,00,00,00,00
DATA 15,15,15,15,00
D:
DATA 15,15,15,15,00
DATA 15,00,00,00,15
DATA 15,00,00,00,15
DATA 15,00,00,00,15
DATA 15,15,15,15,00
E:
DATA 15,15,15,15,15
DATA 15,00,00,00,00
DATA 15,15,15,15,00
DATA 15,00,00,00,00
DATA 15,15,15,15,15
F:
DATA 15,15,15,15,15
DATA 15,00,00,00,00
DATA 15,15,15,15,00
DATA 15,00,00,00,00
DATA 15,00,00,00,00
G:
DATA 15,15,15,15,15
DATA 15,00,00,00,00
DATA 15,00,00,15,15
DATA 15,00,00,00,15
DATA 15,15,15,15,15
H:
DATA 15,00,00,00,15
DATA 15,00,00,00,15
DATA 15,15,15,15,15
DATA 15,00,00,00,15
DATA 15,00,00,00,15
I:
DATA 00,15,15,15,00
DATA 00,00,15,00,00
DATA 00,00,15,00,00
DATA 00,00,15,00,00
DATA 00,15,15,15,00
J:
DATA 00,00,00,00,15
DATA 00,00,00,00,15
DATA 15,15,00,00,15
DATA 15,00,00,00,15
DATA 15,15,15,15,15
K:
DATA 15,00,00,00,15
DATA 15,00,15,15,00
DATA 15,15,00,00,00
DATA 15,00,15,15,00
DATA 15,00,00,00,15
L:
DATA 15,00,00,00,00
DATA 15,00,00,00,00
DATA 15,00,00,00,00
DATA 15,00,00,00,00
DATA 15,15,15,15,15
M:
DATA 15,00,00,00,15
DATA 15,15,00,15,15
DATA 15,00,15,00,15
DATA 15,00,00,00,15
DATA 15,00,00,00,15
N:
DATA 15,00,00,00,15
DATA 15,15,00,00,15
DATA 15,00,15,00,15
DATA 15,00,00,15,15
DATA 15,00,00,00,15
O:
DATA 15,15,15,15,15
DATA 15,00,00,00,15
DATA 15,00,00,00,15
DATA 15,00,00,00,15
DATA 15,15,15,15,15
P:
DATA 15,15,15,15,15
DATA 15,00,00,00,15
DATA 15,15,15,15,15
DATA 15,00,00,00,00
DATA 15,00,00,00,00
Q:
DATA 15,15,15,15,15
DATA 15,00,00,00,15
DATA 15,00,00,00,15
DATA 15,00,00,15,15
DATA 15,15,15,15,15
R:
DATA 15,15,15,15,15
DATA 15,00,00,00,15
DATA 15,15,15,15,15
DATA 15,00,15,15,00
DATA 15,00,00,00,15
S:
DATA 15,15,15,15,15
DATA 15,00,00,00,00
DATA 15,15,15,15,15
DATA 00,00,00,00,15
DATA 15,15,15,15,15
T:
DATA 15,15,15,15,15
DATA 00,00,15,00,00
DATA 00,00,15,00,00
DATA 00,00,15,00,00
DATA 00,00,15,00,00
U:
DATA 15,00,00,00,15
DATA 15,00,00,00,15
DATA 15,00,00,00,15
DATA 15,00,00,00,15
DATA 15,15,15,15,15
V:
DATA 15,00,00,00,15
DATA 15,00,00,00,15
DATA 00,15,00,15,15
DATA 00,15,00,15,00
DATA 00,00,15,00,00
W:
DATA 15,00,00,00,15
DATA 15,00,00,00,15
DATA 15,00,15,00,15
DATA 15,15,00,15,15
DATA 15,00,00,00,15
X:
DATA 15,00,00,00,15
DATA 00,15,00,15,00
DATA 00,00,15,00,00
DATA 00,15,00,15,00
DATA 15,00,00,00,15
Y:
DATA 15,00,00,00,15
DATA 00,15,00,15,00
DATA 00,00,15,00,00
DATA 00,00,15,00,00
DATA 00,00,15,00,00
Z:
DATA 15,15,15,15,15
DATA 00,00,00,15,00
DATA 00,00,15,00,00
DATA 00,15,00,00,00
DATA 15,15,15,15,15
Space:
DATA 00,00,00,00,00
DATA 00,00,00,00,00
DATA 00,00,00,00,00
DATA 00,00,00,00,00
DATA 00,00,00,00,00
Dot:
DATA 00,00,00,00,00
DATA 00,00,00,00,00
DATA 00,00,00,00,00
DATA 00,00,00,00,00
DATA 00,00,15,00,00
Comma:
DATA 00,00,00,00,00
DATA 00,00,00,00,00
DATA 00,00,15,00,00
DATA 00,00,15,00,00
DATA 00,15,00,00,00
RETURN