10 REM > FuncSpeed
   20 L%=100 :REM Loop, increase for faster CPUs
   30 N%=-100:REM Negative int
   40 N=-1E2 :REM Negative float
   50 P%=100 :REM Positive int
   60 P=1E2  :REM Positive float
   70 A1$="abcde"
   80 A2$="abcdefghij"
   90 A3$="abcdefghijklmno"
  100 A4$="abcdefghijklmnopqrst"
  110 N$=""
  120 :
  130 REM Conversion
  140 PRINT"Cast float to int:    ";
  150 A%=L%:T%=TIME:REPEATB%=PI:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs";SPC4;
  160 PRINT"Cast int to float:    ";
  170 A%=L%:T%=TIME:REPEATB=B%+PI:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs"
  180 PRINT
  190 :
  200 REM Functions
  210 PRINT"num = NEG +int:       ";
  220 A%=L%:T%=TIME:REPEATB%=-P%:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs";SPC4;
  230 PRINT"num = NEG -int:       ";
  240 A%=L%:T%=TIME:REPEATB%=-N%:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs"
  250 PRINT"num = NEG +float:     ";
  260 A%=L%:T%=TIME:REPEATB=-P:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs";SPC4;
  270 PRINT"num = NEG -float:     ";
  280 A%=L%:T%=TIME:REPEATB=-N:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs"
  290 :
  300 PRINT"num = ABS +int:       ";
  310 A%=L%:T%=TIME:REPEATB%=ABSP%:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs";SPC4;
  320 PRINT"num = ABS -int:       ";
  330 A%=L%:T%=TIME:REPEATB%=ABSN%:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs"
  340 PRINT"num = ABS +float:     ";
  350 A%=L%:T%=TIME:REPEATB=ABSP:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs";SPC4;
  360 PRINT"num = ABS -float:     ";
  370 A%=L%:T%=TIME:REPEATB=ABSN:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs"
  380 :
  390 PRINT"num = INT +int:       ";
  400 A%=L%:T%=TIME:REPEATB%=INTP%:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs";SPC4;
  410 PRINT"num = INT -int:       ";
  420 A%=L%:T%=TIME:REPEATB%=INTN%:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs"
  430 PRINT"num = INT +float:     ";
  440 A%=L%:T%=TIME:REPEATB%=INTP:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs";SPC4;
  450 PRINT"num = INT -float:     ";
  460 A%=L%:T%=TIME:REPEATB%=INTN:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs"
  470 :
  480 PRINT"int = NOT +int:       ";
  490 A%=L%:T%=TIME:REPEATB%=NOTP%:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs";SPC4;
  500 PRINT"int = NOT -int:       ";
  510 A%=L%:T%=TIME:REPEATB%=NOTN%:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs"
  520 PRINT"int = NOT +float:     ";
  530 A%=L%:T%=TIME:REPEATB%=NOTP:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs";SPC4;
  540 PRINT"int = NOT -float:     ";
  550 A%=L%:T%=TIME:REPEATB%=NOTN:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs"
  560 :
  570 PRINT"num = SGN +int:       ";
  580 A%=L%:T%=TIME:REPEATB%=SGNP%:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs";SPC4;
  590 PRINT"num = SGN -int:       ";
  600 A%=L%:T%=TIME:REPEATB%=SGNN%:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs"
  610 PRINT"num = SGN +float:     ";
  620 A%=L%:T%=TIME:REPEATB%=SGNP:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs";SPC4;
  630 PRINT"num = SGN -float:     ";
  640 A%=L%:T%=TIME:REPEATB%=SGNN:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs"
  650 :
  660 PRINT"num = VAL ""12345"":    ";
  670 A%=L%:T%=TIME:REPEATB%=VAL"12345":A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs";SPC4;
  680 PRINT"num = VAL ""-12345""    ";
  690 A%=L%:T%=TIME:REPEATB%=VAL"-12345":A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs"
  700 PRINT"num = EVAL ""PI"":      ";
  710 A%=L%:T%=TIME:REPEATB=EVAL"PI":A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs";SPC4;
  720 PRINT"num = EVAL ""PI"":      ";
  730 A%=L%:T%=TIME:REPEATB=EVAL"PI":A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs"
  740 PRINT
  750 :
  760 REM Fetch info
  770 PRINT"read PAGE:            ";
  780 A%=L%:T%=TIME:REPEATB%=PAGE:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs";SPC4;
  790 PRINT"scan for TOP:         ";
  800 A%=L%:T%=TIME:REPEATB%=TOP:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs"
  810 PRINT"read LOMEM:           ";
  820 A%=L%:T%=TIME:REPEATB%=LOMEM:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs";SPC4;
  830 PRINT"read HIMEM:           ";
  840 A%=L%:T%=TIME:REPEATB%=HIMEM:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs"
  850 PRINT"read ERL:             ";
  860 A%=L%:T%=TIME:REPEATB%=ERL:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs";SPC4;
  870 PRINT"read ERR:             ";
  880 A%=L%:T%=TIME:REPEATB%=ERR:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs"
  890 PRINT"read TRUE:            ";
  900 A%=L%:T%=TIME:REPEATB%=TRUE:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs";SPC4;
  910 PRINT"read FALSE:           ";
  920 A%=L%:T%=TIME:REPEATB%=FALSE:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs"
  930 PRINT"read COUNT:           ";
  940 A%=L%:T%=TIME:REPEATB%=COUNT:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs";SPC4;
  950 PRINT"read PI:              ";
  960 A%=L%:T%=TIME:REPEATB=PI:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs"
  970 PRINT
  980 :
  990 REM String functions
 1000 PRINT"num = ASC string:     ";
 1010 A%=L%:T%=TIME:REPEATB%=ASCA1$:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs";SPC4;
 1020 PRINT"string = CHR$ num:    ";
 1030 A%=L%:T%=TIME:REPEATA$=CHR$P%:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs"
 1040 PRINT"num = LEN string5:    ";
 1050 A%=L%:T%=TIME:REPEATB%=LENA1$:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs";SPC4;
 1060 PRINT"num = LEN string20:   ";
 1070 A%=L%:T%=TIME:REPEATB%=LENA4$:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs"
 1080 PRINT"num = INSTR(s,m):     ";
 1090 A%=L%:T%=TIME:REPEATB%=INSTR(A4$,"k"):A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs";SPC4;
 1100 PRINT"num = INSTR(s,m,o):   ";
 1110 A%=L%:T%=TIME:REPEATB%=INSTR(A4$,"k",6):A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs"
 1120 PRINT"str = STRING$(5x20):  ";
 1130 A%=L%:T%=TIME:REPEATA$=STRING$(5,A4$):A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs";SPC4;
 1140 PRINT"str = STR$ num:       ";
 1150 A%=L%:T%=TIME:REPEATA$=STR$P%:A%=A%-1:UNTILA%=0:PRINT;TIME-T%;"cs"
 1160 :
 1170 REM LEFT$
 1180 REM MID$
 1190 REM RIGHT$
 1200 :
 1210 REM Trig
 1220 REM ACS
 1230 REM ASN
 1240 REM ATN
 1250 REM COS
 1260 REM DEG
 1270 REM EXP
 1280 REM LN
 1290 REM LOG
 1300 REM RAD
 1310 REM SIN
 1320 REM SQR
 1330 REM TAN
 1340 :
 1350 REM I/O - time bound by API call, so timing not meaningful
 1360 REM OPENIN
 1370 REM OPENUP
 1380 REM OPENOUT
 1390 REM BGET
 1400 REM PTR
 1410 REM EXT
 1420 REM EOF
 1430 :
 1440 REM ADVAL
 1450 REM GET
 1460 REM INKEY
 1470 REM POUNT
 1480 REM POS
 1490 REM VPOS
 1500 REM GET$
 1510 REM INKEY$
 1520 REM TIME
 1530 REM TIME$
 1540 :
 1550 REM Func/Prov lookup
 1560 REM FN
 1570 REM PROC