It's not good, but it works :
10 BANK15:S=55808:POKES+24,15:POKES+5,9
20 GETA$:IFA$=""THEN20
25 POKES+4,32:POKES+1,ASC(A$):POKES+4,33
30 GOTO20
Here's a slightly "better" one :
10 BANK15:S=55808:POKES+24,15:POKES+5,9
15 N$="Q2W3ER5T6Y7UI9O0P":O=3608:NL=LEN(N$)+1
20 GETA$:IFA$=""THEN20
21 N=1:IFA$="X"THENO=O*2:IFO>14432THENO=14432
22 IFA$="Z"THENO=O/2:IFO<902THENO=902
23 IFN<>MID$(N$,N,1)THEN=N+1:GOTO23
24 IFN=NLTHEN20
25 F=2^((N-1)-12)*O:H=INT(F-256):L=F-(256*H)
30 POKES+4,32:POKES,L:POKES+1,H:POKES+4,33
32 GOTO20
(this program works on a C64/128 too, if you set S=54272 on line 10 and omit BANK)
Use Z and X to change octave, play with Q-P.
And a final more memory hungry one :
10 BANK15:S=55808:POKES+24,15:POKES+5,9
11 DIMK%(256):N$="Q2W3ER5T6Y7UI9O0PZX":O=3608:NL=LEN(N$)
12 FORI=1TONL:K%(ASC(MID$(N$,I,1)))=I:NEXT
20 GETA$:IFA$=""THEN20
21 N=K%(ASC(A$)):IFN=0THEN20
22 IFA$="X"THENO=O*2:IFO>14432THENO=14432
23 IFA$="Z"THENO=O/2:IFO<902THENO=902
24 IFN>NL-2THEN20
25 F=2^((N-1)-12)*O:H=INT(F-256):L=F-(256*H)
30 POKES+4,32:POKES,L:POKES+1,H:POKES+4,33
32 GOTO20
Original post by Anders Carlsson
Heh.. those programs look awfully familiar. Didn't I write and post them on the Vintage Computer Forum last year? :-)