Files
gw-basic-2026/tests/programs/draw_commands.bas
T

44 lines
1.3 KiB
QBasic
Raw Normal View History

10 REM DRAW command comprehensive test
20 SCREEN 2
30 REM --- Bug 1: M command parsing (absolute) ---
40 DRAW "M100,50"
50 PRINT "M abs:"; POINT(100,50)
60 REM --- Bug 1: M command parsing (relative) ---
70 DRAW "BM10,10 M+20,+10"
80 PRINT "M rel:"; POINT(30,20)
90 REM --- Bug 2: S scale semantics ---
100 REM Default S4: U with no arg moves 1 pixel
110 DRAW "BM50,50 U"
120 PRINT "S4 U:"; POINT(50,49)
130 REM S8: U with no arg moves 2 pixels
140 DRAW "BM50,50 S8 U"
150 PRINT "S8 U:"; POINT(50,48)
160 REM S8: U5 moves 10 pixels (5*8/4=10)
170 DRAW "BM50,50 S8 U5"
180 PRINT "S8 U5:"; POINT(50,40)
190 REM --- Bug 3: A rotation ---
200 DRAW "BM80,80 A1 R10"
210 PRINT "A1 R:"; POINT(80,70)
220 DRAW "A2 BM80,80 R10"
230 PRINT "A2 R:"; POINT(70,80)
240 DRAW "A0"
250 REM --- TA arbitrary rotation ---
260 DRAW "BM60,60 TA90 R10"
270 PRINT "TA90 R:"; POINT(60,50)
280 DRAW "TA0"
290 REM --- =variable; substitution ---
300 D%=20
310 DRAW "BM10,150 R=D%;"
320 PRINT "=var:"; POINT(15,150)
330 REM --- X substring execution ---
340 A$="U10R10D10L10"
350 DRAW "BM120,120"
360 DRAW "XA$;"
370 PRINT "X sub:"; POINT(120,110)
380 PRINT "X sub:"; POINT(130,120)
390 REM --- Scale on relative M ---
400 DRAW "S8 BM50,100 M+10,+0"
410 PRINT "S M+:"; POINT(70,100)
420 DRAW "S4"
430 PRINT "DONE"