User Tools

Site Tools


sdb:bastest

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

sdb:bastest [2026/04/14 06:09] – created appledogsdb:bastest [Unknown date] (current) – external edit (Unknown date) 127.0.0.1
Line 1: Line 1:
 += BASTEST
 +This is BASTEST.BAS, a test suite for Stellar BASIC V1.0. Written on Feb. 27th, 2026.
  
 +<codify BASIC>
 +10 PRINT "STELLAR DYNAMICS"
 +20 PRINT "EPSILON CONTAINMENT FACILITY"
 +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:", A$
 +
 +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 "PASSED: "; P
 +380 PRINT "FAILED: "; F
 +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 "  FAIL #"; T; ": GOT "; A; " EXPECTED "; B
 +525 LET F = F + 1
 +526 RETURN
 +530 PRINT "  OK #"; T
 +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$ = "HELLO"
 +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$ = "AB"
 +5130 LET B$ = "CD"
 +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$ = "ABCDE"
 +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("42")
 +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$, "WORLD")
 +6330 LET B = 7
 +6340 LET T = 7
 +6350 GOSUB 500
 +6360 LET A = INSTR(A$, "XYZ")
 +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) = "ZERO"
 +7270 LET W$(1) = "ONE"
 +7280 LET W$(2) = "TWO"
 +7290 LET W$(3) = "THREE"
 +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
 +</codify>

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki