10 REM INT
20 A=INT(0):IF A<>0 THEN STOP
30 A=INT(-1):IF A<>-1 THEN STOP
40 A=INT(1):IF A<>1 THEN STOP
50 A=INT(0.6):IF A<>0 THEN STOP
60 A=INT(1.6):IF A<>1 THEN STOP
70 A=INT(-0.4):IF A<>-1 THEN STOP
80 A=INT(-100000.6):IF A<>-100001 THEN STOP
90 A=INT(100001.6):IF A<>100001 THEN STOP
100 REM ABS
110 A=ABS(0):IF A<>0 THEN STOP
120 A=ABS(1):IF A<>1 THEN STOP
130 A=ABS(-1):IF A<>1 THEN STOP
200 REM SQR
210 A=SQR(0):IF A<>0 THEN STOP
220 A=SQR(1):IF A<>1 THEN STOP
230 TRAP 240:A=SQR(-1):STOP
240 REM
300 REM LOG
310 TRAP 320:A=LOG(-1):STOP
320 A=LOG(1):IF ABS(A)>1E-5 THEN STOP
330 A=LOG(2.7182818):IF ABS(A-1)>1E-5 THEN STOP
340 A=LOG(1/2.7182818):IF ABS(A-(-1))>1E-5 THEN STOP
400 REM CLOG
410 TRAP 420:A=CLOG(-1):STOP
420 A=CLOG(1):IF ABS(A)>1E-5 THEN STOP
430 A=CLOG(10):IF ABS(A-1)>1E-5 THEN STOP
440 A=CLOG(0.1):IF ABS(A-(-1))>1E-5 THEN STOP
500 REM EXP
510 A=EXP(0):IF ABS(A-1)>1E-5 THEN STOP
520 A=EXP(1):IF ABS(A-2.7182818)>1E-5 THEN STOP
530 A=EXP(-1):IF ABS(A-1/2.7182818)>1E-5 THEN STOP
600 REM RND
610 FOR I=1 TO 10
620 A=RND(0):IF A<0 OR A>1 THEN STOP
630 NEXT I
700 REM SIN
710 DEG
720 A=SIN(0):IF ABS(A-0)>1E-5 THEN STOP
721 A=SIN(60):IF ABS(A-0.8660254)>1E-5 THEN STOP
722 A=SIN(120):IF ABS(A-0.8660254)>1E-5 THEN STOP
723 A=SIN(180):IF ABS(A-0)>1E-5 THEN STOP
724 A=SIN(240):IF ABS(A+0.8660254)>1E-5 THEN STOP
725 A=SIN(-60):IF ABS(A+0.8660254)>1E-5 THEN STOP
726 A=SIN(-120):IF ABS(A+0.8660254)>1E-5 THEN STOP
727 A=SIN(-180):IF ABS(A+0)>1E-5 THEN STOP
728 A=SIN(-240):IF ABS(A-0.8660254)>1E-5 THEN STOP
730 RAD
740 A=SIN(0):IF ABS(A-0)>1E-5 THEN STOP
741 A=SIN(1):IF ABS(A-0.8414710)>1E-5 THEN STOP
742 A=SIN(2):IF ABS(A-0.9092974)>1E-5 THEN STOP
743 A=SIN(3):IF ABS(A-0.1411200)>1E-5 THEN STOP
744 A=SIN(4):IF ABS(A+0.7568025)>1E-5 THEN STOP
745 A=SIN(-1):IF ABS(A+0.8414710)>1E-5 THEN STOP
746 A=SIN(-2):IF ABS(A+0.9092974)>1E-5 THEN STOP
747 A=SIN(-3):IF ABS(A+0.1411200)>1E-5 THEN STOP
748 A=SIN(-4):IF ABS(A-0.7568025)>1E-5 THEN STOP

800 REM COS
810 DEG
820 A=COS(0):IF ABS(A-1)>1E-5 THEN STOP
821 A=COS(60):IF ABS(A-0.5)>1E-5 THEN STOP
822 A=COS(120):IF ABS(A+0.5)>1E-5 THEN STOP
823 A=COS(180):IF ABS(A+1)>1E-5 THEN STOP
824 A=COS(240):IF ABS(A+0.5)>1E-5 THEN STOP
825 A=COS(-60):IF ABS(A-0.5)>1E-5 THEN STOP
826 A=COS(-120):IF ABS(A+0.5)>1E-5 THEN STOP
827 A=COS(-180):IF ABS(A+1)>1E-5 THEN STOP
828 A=COS(-240):IF ABS(A+0.5)>1E-5 THEN STOP
830 RAD
840 A=COS(0):IF ABS(A-1)>1E-5 THEN STOP
841 A=COS(1):IF ABS(A-0.5403023)>1E-5 THEN STOP
842 A=COS(2):IF ABS(A+0.4161468)>1E-5 THEN STOP
843 A=COS(3):IF ABS(A+0.9899925)>1E-5 THEN STOP
844 A=COS(4):IF ABS(A+0.6536436)>1E-5 THEN STOP
845 A=COS(-1):IF ABS(A-0.5403023)>1E-5 THEN STOP
846 A=COS(-2):IF ABS(A+0.4161468)>1E-5 THEN STOP
847 A=COS(-3):IF ABS(A+0.9899925)>1E-5 THEN STOP
848 A=COS(-4):IF ABS(A+0.6536436)>1E-5 THEN STOP

900 REM ATN
910 DEG
920 A=ATN(0):IF ABS(A-0)>1E-5 THEN STOP
921 A=ATN(1):IF ABS(A-45)>1E-5 THEN STOP
922 A=ATN(2):IF ABS(A-63.434949)>1E-5 THEN STOP
923 A=ATN(100):IF ABS(A-89.427061)>1E-5 THEN STOP
924 A=ATN(1E+50):IF ABS(A-90)>1E-5 THEN STOP
925 A=ATN(-1):IF ABS(A+45)>1E-5 THEN STOP
926 A=ATN(-2):IF ABS(A+63.434949)>1E-5 THEN STOP
927 A=ATN(-100):IF ABS(A+89.427061)>1E-5 THEN STOP
928 A=ATN(-1E+50):IF ABS(A+90)>1E-5 THEN STOP
930 RAD
940 A=ATN(0):IF ABS(A-0)>1E-5 THEN STOP
941 A=ATN(1):IF ABS(A-0.7853982)>1E-5 THEN STOP
942 A=ATN(2):IF ABS(A-1.1071487)>1E-5 THEN STOP
943 A=ATN(100):IF ABS(A-1.5607967)>1E-5 THEN STOP
944 A=ATN(1E+50):IF ABS(A-1.5707963)>1E-5 THEN STOP
945 A=ATN(-1):IF ABS(A+0.7853982)>1E-5 THEN STOP
946 A=ATN(-2):IF ABS(A+1.1071487)>1E-5 THEN STOP
947 A=ATN(-100):IF ABS(A+1.5607967)>1E-5 THEN STOP
948 A=ATN(-1E+50):IF ABS(A+1.5707963)>1E-5 THEN STOP

1000 REM ADR
1010 TRAP 1020:A=ADR(A$)
1020 DIM A$(10),B$(10)
1030 A=ADR(A$):B=ADR(B$):IF ABS(A-B)>256 THEN STOP

1100 REM LEN
1110 CLR
1120 TRAP 1130:A=LEN(A$)
1130 DIM A$(10):A=LEN(A$):IF A<>0 THEN STOP
1140 IF LEN("ABC")<>3 THEN STOP
1150 A$="ABC":IF LEN(A$)<>3 THEN STOP

1200 REM VAL
1201 TRAP 1202:A=VAL("")
1202 TRAP 1203:A=VAL(" ")
1203 A=VAL("1"):IF A<>1 THEN STOP
1204 A=VAL(" 1"):IF A<>1 THEN STOP
1205 A=VAL(" 1 "):IF A<>1 THEN STOP
1206 A=VAL("1 2"):IF A<>1 THEN STOP
1207 A=VAL("1E+06"):IF A<>1E+06 THEN STOP
1208 A=VAL("-1E+06"):IF A<>-1E+06 THEN STOP
1209 A$="12345":A=VAL(A$(2,3)):IF A<>23 THEN STOP

1300 REM PEEK
1310 A=PEEK(ADR("0")):IF A<>48 THEN STOP

1400 REM ASC
1410 A$="1":A=ASC(A$):IF A<>49 THEN STOP
1420 A=ASC("")

1500 REM USR
1510 RESTORE 1520:FOR I=0 TO 9:READ A:POKE 1536+I,A:NEXT I
1520 DATA 104,169,165,133,212,169,0,133,213,96
1530 A=USR(1536):IF A<>165 THEN STOP
1540 RESTORE 1550:FOR I=0 TO 16:READ A:POKE 1536+I,A:NEXT I
1550 DATA 104,104,104,133,212,104,104,24,101,212,133,212,169,0,133,213,96
1560 A=USR(1536,10,23):IF A<>33 THEN STOP

1600 REM CHR$
1610 A$=CHR$(48):IF A$<>"0" THEN STOP

1700 REM STR$
1710 A$=STR$(1):IF A$<>"1" THEN STOP

2000 PRINT "PASS":END
