1 rem rosetta code 5 rem commodore basic variable demonstration 10 print chr$(147);chr$(14);:ti$="000000":rem see lines 420-460 15 rem numeric variables default to 0; strings default to empty 20 print a:print b%:print c$:print 25 : 30 rem no symbol after variable defaults to float. 35 let a=1.7 40 rem "let" is not required and rarely used. 45 b=2.42 50 print a:print b 55 rem % means integer type; digits after decimal are truncated 60 b%=1.7 65 print b% 70 rem $ means string type 75 c$="Commodore" 80 print c$:print 85 : 90 rem each type is unique, even when name is "same" 95 a=5.0 100 a%=9 105 a$="twenty-five" 110 print a:print a%:print a$:print 115 : 120 rem names unique only to two characters; extra ignored 125 li=10:lives=8:lights=64 130 print li:print lives:print lights:print 135 rem second character can be alphanumeric, but is not array 140 s1=100 : s2=200 : s3=300 145 print s1:print s2:print s3:print 150 gosub 5000 155 : 160 rem strings preserve all literal characters 165 rem numerics drop leading zeros and trailing zeros after decimal 170 n$="01276":print n$:rem 01276 175 o%=01276:print n%: rem 1276 180 p=4.900:print p: print: rem 4.9 185 : 190 rem string-numeric conversion functions 195 c$="05034" 200 c%=val(c$) : rem converts to the numeric value of 5034 (first zero dropped) 205 d=123.45600 : rem define a float 210 d$=str$(d) : rem converts above into a string 215 print c$:print c%:print d:print d$:print 218 : 220 rem strings can be ordered/compared > or < like numbers 225 input "Enter a string";x$:print 230 input "Enter another string";y$:print 235 if x$>y$ then print x$;" comes after ";y$ 240 if x$"9" then 5210 5215 t$=t$+k$:print k$;:next 5220 return 5230 : 5500 rem display live clock 5505 print chr$(147):print:print "Press a key to continue." 5510 print chr$(19);"Time: "left$(ti$,2)":"mid$(ti$,3,2)":"right$(ti$,2); 5515 get k$:if k$="" then 5510 5520 print chr$(147);:return