10 print chr$(147);chr$(14) 20 dim s$(11),ts$(11),t$(11),o$(11):co=39 30 for i=0 to 11:read s$(i),ts$(i),t$(i),o$(i):next 40 print "Enter a number";:input n$ 45 ou$="" 50 if len(n$)>36 then print:print "Too long.":print:goto 40 51 print 55 rem check for negative 56 if left$(n$,1)="-" then n$=right$(n$,len(n$)-1):ou$="negative ":gosub 500 60 no=int((len(n$)-1)/3) 70 rem pad left side 71 p=(no+1)*3-len(n$) 75 if p>0 then n$="0"+n$:p=p-1:goto 75 77 if val(n$)=0 then ou$=s$(0):gosub 500:goto 125 80 rem calculate left to right 81 for i=no to 0 step -1:oi=no-i 85 ch$=mid$(n$,1+(oi*3),3) 90 h=val(mid$(ch$,1,1)):t=val(mid$(ch$,2,1)):s=val(mid$(ch$,3,1)) 93 if h=0 and t=0 and s=0 then goto 120 95 if h>0 then ou$=s$(h)+" hundred ":gosub 500 100 if t>1 then ou$=t$(t)+mid$("- ",abs(s=0)+1,1):gosub 500 105 if t=1 then ou$=ts$(s)+" ":gosub 500 110 if t<>1 and s>0 then ou$=s$(s)+" ":gosub 500 115 ou$=o$(i)+" ":gosub 500 120 next i 125 print:print 130 print "Another? (y/n) "; 140 get k$:ifk$<>"y" and k$<>"n" then 140 145 print k$ 150 if k$="y" then print:goto 40 200 end 500 rem print with word wrapping 505 cp=pos(0):nl=len(ou$) 510 if cp>co-nl then print 520 print ou$; 599 return 1000 data zero,ten,"","" 1001 data one,eleven,ten,thousand 1002 data two,twelve,twenty,million 1003 data three,thirteen,thirty,billion 1004 data four,fourteen,forty,trillion 1005 data five,fifteen,fifty,quadrillion 1006 data six,sixteen,sixty,quintillion 1007 data seven,seventeen,seventy,sextillion 1008 data eight,eighteen,eighty,septillion 1009 data nine,nineteen,ninety,octillion 1010 data "","","",nonillion 1011 data "","","",decillion