sdb:bastest
Differences
This shows you the differences between two versions of the page.
| sdb:bastest [2026/04/14 06:09] – created appledog | sdb:bastest [Unknown date] (current) – external edit (Unknown date) 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | = BASTEST | ||
| + | This is BASTEST.BAS, | ||
| + | <codify BASIC> | ||
| + | 10 PRINT " | ||
| + | 20 PRINT " | ||
| + | 30 PRINT "BASIC TEST PROGRAM v0.7" | ||
| + | 40 PRINT "FEB 27, 2026" | ||
| + | 50 PRINT "*** CONTAINS CODE FROM SAMPLE SD-0064:" | ||
| + | 60 PRINT "*** DO NOT DISTRIBUTE OUTSIDE OF LAB" | ||
| + | 70 PRINT"" | ||
| + | 80 LET P = 0 | ||
| + | 90 LET F = 0 | ||
| + | |||
| + | 100 INPUT "PRESS ENTER TO CONTINUE:", | ||
| + | |||
| + | 200 GOSUB 1000 | ||
| + | 210 GOSUB 2000 | ||
| + | 220 GOSUB 3000 | ||
| + | 230 GOSUB 4000 | ||
| + | 240 GOSUB 5000 | ||
| + | 250 GOSUB 6000 | ||
| + | 260 GOSUB 7000 | ||
| + | 270 GOSUB 8000 | ||
| + | 280 GOSUB 9000 | ||
| + | |||
| + | 350 PRINT "" | ||
| + | 360 PRINT "=== RESULTS ===" | ||
| + | 370 PRINT " | ||
| + | 380 PRINT " | ||
| + | 390 END | ||
| + | |||
| + | 500 REM -- HELPER: CHECK NUMERIC -- | ||
| + | 501 REM EXPECTS: T = TEST#, A = GOT, B = EXPECTED | ||
| + | 510 IF A = B THEN GOTO 530 | ||
| + | 520 PRINT " | ||
| + | 525 LET F = F + 1 | ||
| + | 526 RETURN | ||
| + | 530 PRINT " | ||
| + | 535 LET P = P + 1 | ||
| + | 540 RETURN | ||
| + | |||
| + | 1000 REM ============================== | ||
| + | 1001 REM TEST GROUP 1: VARIABLES & LET | ||
| + | 1002 REM ============================== | ||
| + | 1003 PRINT "" | ||
| + | 1010 PRINT "--- TEST 1: VARIABLES & LET ---" | ||
| + | 1020 LET A = 5 | ||
| + | 1030 LET B = 10 | ||
| + | 1040 LET T = 1 | ||
| + | 1050 LET B = A | ||
| + | 1055 REM B SHOULD NOW BE 5 | ||
| + | 1060 GOSUB 500 | ||
| + | 1070 LET A = 100 | ||
| + | 1080 LET B = 100 | ||
| + | 1090 LET T = 2 | ||
| + | 1100 GOSUB 500 | ||
| + | 1110 LET A = 0 | ||
| + | 1120 LET B = 0 | ||
| + | 1130 LET T = 3 | ||
| + | 1140 GOSUB 500 | ||
| + | 1150 RETURN | ||
| + | |||
| + | 2000 REM ============================== | ||
| + | 2001 REM TEST GROUP 2: ARITHMETIC | ||
| + | 2002 REM ============================== | ||
| + | 2003 PRINT "" | ||
| + | 2010 PRINT "--- TEST 2: ARITHMETIC ---" | ||
| + | 2020 LET A = 3 + 4 | ||
| + | 2030 LET B = 7 | ||
| + | 2040 LET T = 1 | ||
| + | 2050 GOSUB 500 | ||
| + | 2060 LET A = 10 - 3 | ||
| + | 2070 LET B = 7 | ||
| + | 2080 LET T = 2 | ||
| + | 2090 GOSUB 500 | ||
| + | 2100 LET A = 6 * 7 | ||
| + | 2110 LET B = 42 | ||
| + | 2120 LET T = 3 | ||
| + | 2130 GOSUB 500 | ||
| + | 2140 LET A = 20 / 4 | ||
| + | 2150 LET B = 5 | ||
| + | 2160 LET T = 4 | ||
| + | 2170 GOSUB 500 | ||
| + | 2180 LET A = 10 % 3 | ||
| + | 2190 LET B = 1 | ||
| + | 2200 LET T = 5 | ||
| + | 2210 GOSUB 500 | ||
| + | 2220 LET A = 2 + 3 * 4 | ||
| + | 2230 LET B = 14 | ||
| + | 2240 LET T = 6 | ||
| + | 2250 GOSUB 500 | ||
| + | 2260 RETURN | ||
| + | |||
| + | 3000 REM ============================== | ||
| + | 3001 REM TEST GROUP 3: IF/THEN & GOTO | ||
| + | 3002 REM ============================== | ||
| + | 3003 PRINT "" | ||
| + | 3010 PRINT "--- TEST 3: IF/THEN & GOTO ---" | ||
| + | 3020 LET A = 1 | ||
| + | 3030 IF 5 > 3 THEN LET A = 99 | ||
| + | 3040 LET B = 99 | ||
| + | 3050 LET T = 1 | ||
| + | 3060 GOSUB 500 | ||
| + | 3070 LET A = 1 | ||
| + | 3080 IF 3 > 5 THEN LET A = 99 | ||
| + | 3090 LET B = 1 | ||
| + | 3100 LET T = 2 | ||
| + | 3110 GOSUB 500 | ||
| + | 3120 LET A = 1 | ||
| + | 3130 IF 5 = 5 THEN LET A = 99 | ||
| + | 3140 LET B = 99 | ||
| + | 3150 LET T = 3 | ||
| + | 3160 GOSUB 500 | ||
| + | 3170 LET A = 1 | ||
| + | 3180 IF 5 < 3 THEN LET A = 99 | ||
| + | 3190 LET B = 1 | ||
| + | 3200 LET T = 4 | ||
| + | 3210 GOSUB 500 | ||
| + | 3220 RETURN | ||
| + | |||
| + | 4000 REM ============================== | ||
| + | 4001 REM TEST GROUP 4: FOR/NEXT | ||
| + | 4002 REM ============================== | ||
| + | 4003 PRINT "" | ||
| + | 4010 PRINT "--- TEST 4: FOR/NEXT ---" | ||
| + | 4020 LET S = 0 | ||
| + | 4030 FOR I = 1 TO 5 | ||
| + | 4040 LET S = S + I | ||
| + | 4050 NEXT I | ||
| + | 4060 LET A = S | ||
| + | 4070 LET B = 15 | ||
| + | 4080 LET T = 1 | ||
| + | 4090 GOSUB 500 | ||
| + | 4100 LET S = 0 | ||
| + | 4110 FOR I = 1 TO 3 | ||
| + | 4120 FOR J = 1 TO 2 | ||
| + | 4130 LET S = S + 1 | ||
| + | 4140 NEXT J | ||
| + | 4150 NEXT I | ||
| + | 4160 LET A = S | ||
| + | 4170 LET B = 6 | ||
| + | 4180 LET T = 2 | ||
| + | 4190 GOSUB 500 | ||
| + | 4200 RETURN | ||
| + | |||
| + | 5000 REM ============================== | ||
| + | 5001 REM TEST GROUP 5: STRING VARIABLES | ||
| + | 5002 REM ============================== | ||
| + | 5003 PRINT "" | ||
| + | 5010 PRINT "--- TEST 5: STRING VARIABLES ---" | ||
| + | 5020 LET A$ = " | ||
| + | 5030 LET A = LEN(A$) | ||
| + | 5040 LET B = 5 | ||
| + | 5050 LET T = 1 | ||
| + | 5060 GOSUB 500 | ||
| + | 5070 LET A$ = "" | ||
| + | 5080 LET A = LEN(A$) | ||
| + | 5090 LET B = 0 | ||
| + | 5100 LET T = 2 | ||
| + | 5110 GOSUB 500 | ||
| + | 5120 LET A$ = " | ||
| + | 5130 LET B$ = " | ||
| + | 5140 LET C$ = A$ + B$ | ||
| + | 5150 LET A = LEN(C$) | ||
| + | 5160 LET B = 4 | ||
| + | 5170 LET T = 3 | ||
| + | 5180 GOSUB 500 | ||
| + | 5190 RETURN | ||
| + | |||
| + | 6000 REM ============================== | ||
| + | 6001 REM TEST GROUP 6: STRING FUNCTIONS | ||
| + | 6002 REM ============================== | ||
| + | 6003 PRINT "" | ||
| + | 6010 PRINT "--- TEST 6: STRING FUNCTIONS ---" | ||
| + | 6020 LET A$ = " | ||
| + | 6030 LET A = ASC(A$) | ||
| + | 6040 LET B = 65 | ||
| + | 6050 LET T = 1 | ||
| + | 6060 GOSUB 500 | ||
| + | 6070 LET C$ = CHR$(66) | ||
| + | 6080 LET A = ASC(C$) | ||
| + | 6090 LET B = 66 | ||
| + | 6100 LET T = 2 | ||
| + | 6110 GOSUB 500 | ||
| + | 6120 LET A = VAL(" | ||
| + | 6130 LET B = 42 | ||
| + | 6140 LET T = 3 | ||
| + | 6150 GOSUB 500 | ||
| + | 6160 LET A$ = "HELLO WORLD" | ||
| + | 6170 LET B$ = LEFT$(A$, 5) | ||
| + | 6180 LET A = LEN(B$) | ||
| + | 6190 LET B = 5 | ||
| + | 6200 LET T = 4 | ||
| + | 6210 GOSUB 500 | ||
| + | 6220 LET B$ = RIGHT$(A$, 5) | ||
| + | 6230 LET A = LEN(B$) | ||
| + | 6240 LET B = 5 | ||
| + | 6250 LET T = 5 | ||
| + | 6260 GOSUB 500 | ||
| + | 6270 LET B$ = MID$(A$, 7, 5) | ||
| + | 6280 LET A = LEN(B$) | ||
| + | 6290 LET B = 5 | ||
| + | 6300 LET T = 6 | ||
| + | 6310 GOSUB 500 | ||
| + | 6320 LET A = INSTR(A$, " | ||
| + | 6330 LET B = 7 | ||
| + | 6340 LET T = 7 | ||
| + | 6350 GOSUB 500 | ||
| + | 6360 LET A = INSTR(A$, " | ||
| + | 6370 LET B = 0 | ||
| + | 6380 LET T = 8 | ||
| + | 6390 GOSUB 500 | ||
| + | 6400 RETURN | ||
| + | |||
| + | 7000 REM ============================== | ||
| + | 7001 REM TEST GROUP 7: DIM / ARRAYS | ||
| + | 7002 REM ============================== | ||
| + | 7003 PRINT "" | ||
| + | 7010 PRINT "--- TEST 7: DIM / ARRAYS ---" | ||
| + | 7020 DIM N(5) | ||
| + | 7030 LET N(0) = 10 | ||
| + | 7040 LET N(1) = 20 | ||
| + | 7050 LET N(2) = 30 | ||
| + | 7060 LET N(3) = 40 | ||
| + | 7070 LET N(4) = 50 | ||
| + | 7080 LET N(5) = 60 | ||
| + | 7090 LET A = N(0) | ||
| + | 7100 LET B = 10 | ||
| + | 7110 LET T = 1 | ||
| + | 7120 GOSUB 500 | ||
| + | 7130 LET A = N(5) | ||
| + | 7140 LET B = 60 | ||
| + | 7150 LET T = 2 | ||
| + | 7160 GOSUB 500 | ||
| + | 7170 LET S = 0 | ||
| + | 7180 FOR I = 0 TO 5 | ||
| + | 7190 LET S = S + N(I) | ||
| + | 7200 NEXT I | ||
| + | 7210 LET A = S | ||
| + | 7220 LET B = 210 | ||
| + | 7230 LET T = 3 | ||
| + | 7240 GOSUB 500 | ||
| + | 7250 DIM W$(3) | ||
| + | 7260 LET W$(0) = " | ||
| + | 7270 LET W$(1) = " | ||
| + | 7280 LET W$(2) = " | ||
| + | 7290 LET W$(3) = " | ||
| + | 7300 LET A = LEN(W$(0)) | ||
| + | 7310 LET B = 4 | ||
| + | 7320 LET T = 4 | ||
| + | 7330 GOSUB 500 | ||
| + | 7340 LET A = LEN(W$(3)) | ||
| + | 7350 LET B = 5 | ||
| + | 7360 LET T = 5 | ||
| + | 7370 GOSUB 500 | ||
| + | 7380 RETURN | ||
| + | |||
| + | 8000 REM ============================== | ||
| + | 8001 REM TEST GROUP 8: READ / DATA | ||
| + | 8002 REM ============================== | ||
| + | 8003 PRINT "" | ||
| + | 8010 PRINT "--- TEST 8: READ / DATA ---" | ||
| + | 8020 DATA 10, 20, 30 | ||
| + | 8030 READ A | ||
| + | 8040 LET B = 10 | ||
| + | 8050 LET T = 1 | ||
| + | 8060 GOSUB 500 | ||
| + | 8070 READ A | ||
| + | 8080 LET B = 20 | ||
| + | 8090 LET T = 2 | ||
| + | 8100 GOSUB 500 | ||
| + | 8110 READ A | ||
| + | 8120 LET B = 30 | ||
| + | 8130 LET T = 3 | ||
| + | 8140 GOSUB 500 | ||
| + | 8150 RESTORE | ||
| + | 8160 READ A | ||
| + | 8170 LET B = 10 | ||
| + | 8180 LET T = 4 | ||
| + | 8190 GOSUB 500 | ||
| + | 8200 RETURN | ||
| + | |||
| + | 9000 REM ============================== | ||
| + | 9001 REM TEST GROUP 9: PEEK / POKE | ||
| + | 9002 REM ============================== | ||
| + | 9003 PRINT "" | ||
| + | 9010 PRINT "--- TEST 9: PEEK / POKE ---" | ||
| + | 9020 BANK 0 | ||
| + | 9030 POKE 49152, 42 | ||
| + | 9040 LET A = PEEK(49152) | ||
| + | 9050 LET B = 42 | ||
| + | 9060 LET T = 1 | ||
| + | 9070 GOSUB 500 | ||
| + | 9080 POKE 49153, 99 | ||
| + | 9090 LET A = PEEK(49153) | ||
| + | 9100 LET B = 99 | ||
| + | 9110 LET T = 2 | ||
| + | 9120 GOSUB 500 | ||
| + | 9130 LET A = PEEK(49152) | ||
| + | 9140 LET B = 42 | ||
| + | 9150 LET T = 3 | ||
| + | 9160 GOSUB 500 | ||
| + | 9170 RETURN | ||
| + | </ | ||
