Files
gw-basic-2026/tests/programs/view_window.bas
Eremey Valetov 000116b2a2 Fix POINT coordinate mapping, remove orphaned palette array, expand tests
Apply coordinate mapping (VIEW/WINDOW) to POINT(x,y) function so it
returns correct pixel values when WINDOW is active. Remove unused
palette[] array from graphics.c (Sixel encoder uses palette_map[]
directly). Expand view_window.bas test to cover WINDOW SCREEN mode,
VIEW+WINDOW combination, and PMAP inverse mapping. Fix CI test count
in docs.
2026-03-10 22:38:42 -04:00

41 lines
1.3 KiB
QBasic

10 REM VIEW / WINDOW / PALETTE test
20 SCREEN 2
30 REM === Test WINDOW (Cartesian, Y-up) ===
40 WINDOW (0,0)-(100,100)
50 REM PMAP: logical to physical
60 PRINT "PMAP(0,0)="; PMAP(0,0)
70 PRINT "PMAP(0,1)="; PMAP(0,1)
80 PRINT "PMAP(100,0)="; PMAP(100,0)
90 PRINT "PMAP(100,1)="; PMAP(100,1)
100 REM PMAP: physical to logical
110 PRINT "PMAP(0,2)="; PMAP(0,2)
120 PRINT "PMAP(199,3)="; PMAP(199,3)
130 REM === Test WINDOW SCREEN (Y-down) ===
140 WINDOW SCREEN (0,0)-(100,100)
150 REM In SCREEN mode, Y=0 maps to top (0), Y=100 maps to bottom (199)
160 PRINT "SCR PMAP(0,1)="; PMAP(0,1)
170 PRINT "SCR PMAP(100,1)="; PMAP(100,1)
180 PRINT "SCR PMAP(50,0)="; PMAP(50,0)
190 REM Inverse: physical to logical
200 PRINT "SCR PMAP(0,3)="; PMAP(0,3)
210 PRINT "SCR PMAP(199,3)="; PMAP(199,3)
220 WINDOW
230 REM === Test VIEW ===
240 VIEW (10,10)-(100,50)
250 REM After VIEW, reset to check state
260 VIEW
270 REM === Test WINDOW + VIEW together ===
280 VIEW (100,50)-(300,150)
290 WINDOW (0,0)-(10,10)
300 REM PMAP should map relative to viewport (100..300, 50..150)
310 PRINT "VP PMAP(0,0)="; PMAP(0,0)
320 PRINT "VP PMAP(10,0)="; PMAP(10,0)
330 PRINT "VP PMAP(0,1)="; PMAP(0,1)
340 PRINT "VP PMAP(10,1)="; PMAP(10,1)
350 WINDOW
360 VIEW
370 REM === Test PALETTE (just reset, no visual check) ===
380 PALETTE
390 SCREEN 0
400 PRINT "VIEW/WINDOW/PALETTE OK"