Files
gw-basic-2026/tests/dos_smoke.bas
T

52 lines
1.3 KiB
QBasic
Raw Normal View History

10 REM DOS smoke test for gwbasic16.exe -- exercises arithmetic, strings,
20 REM control flow, GOSUB, FOR/NEXT, DATA/READ, file I/O, MID$ assignment.
30 REM Output is captured via OPEN/PRINT# so the host can compare against
40 REM tests/expected/dos_smoke.expected.
50 OPEN "O",#1,"OUT.TXT"
60 REM --- 1. Arithmetic
70 PRINT #1, "ARITH"
80 PRINT #1, 2+2*3
90 PRINT #1, (2+2)*3
100 PRINT #1, 100\3, 100 MOD 3
110 PRINT #1, 2^10
120 REM --- 2. Strings
130 PRINT #1, "STRINGS"
140 A$ = "HELLO" + " " + "WORLD"
150 PRINT #1, A$
160 PRINT #1, LEN(A$); LEFT$(A$,5); RIGHT$(A$,5); MID$(A$,7,5)
170 MID$(A$,7,5) = "BASIC"
180 PRINT #1, A$
190 REM --- 3. Control flow
200 PRINT #1, "CONTROL"
210 FOR I = 1 TO 5
220 PRINT #1, "FOR"; I
230 NEXT I
240 J = 0
250 WHILE J < 3
260 J = J + 1
270 PRINT #1, "WHILE"; J
280 WEND
290 GOSUB 1000
300 REM --- 4. DATA/READ
310 PRINT #1, "DATA"
320 RESTORE 900
330 FOR K = 1 TO 4
340 READ X
350 PRINT #1, "X="; X
360 NEXT K
370 REM --- 5. DEF FN
380 PRINT #1, "DEFFN"
390 DEF FN SQUARE(N) = N*N
400 PRINT #1, FN SQUARE(7)
410 PRINT #1, FN SQUARE(13)
420 REM --- 6. Conditionals
430 PRINT #1, "IF"
440 IF 5 > 3 THEN PRINT #1, "T1"
450 IF 5 < 3 THEN PRINT #1, "F1" ELSE PRINT #1, "T2"
460 PRINT #1, "DONE"
470 CLOSE #1
480 END
900 DATA 10, 20, 30, 40
1000 PRINT #1, "GOSUB OK"
1010 RETURN