This seems to be something to do with the project settings.
I suspect my usual settings must have got changed after testing someone else's project in the last couple of days. Projects compiled a few days ago on my PC run fine on either machine - but not those compiled yesterday or today.
It turns out that the text wasn't missing after all. Somehow - and I'm not sure how - the screen resolution has been changed to something greater than the laptop supports. Here's the simplified dba code:
set display mode desktop width(), desktop height(), 32
sync on: sync rate 60: sync
autocam off
position camera 0, 50, -300
point camera 0, 0, 0
` load images
load image "oldwood.jpg", 1 ` base image for ground plain
load image "stone wall texture.jpg", 2 ` 1st base image for boxes
load image "lead.jpg", 3 ` 2nd base image for boxes
load image "blue.png", 9 ` sky texture
` make the ground
make object plain 1, 1500, 1500
xrotate object 1, 270
texture object 1, 0, 1
` place objects around the scene
randomize 140549
for i = 2 to 20
width# = rnd(30) + 30
depth# = width#
height# = rnd(50) + 50
make object box i, width#, height#, depth#
position object i, rnd(1000) - 500, height#/2.0, rnd(1000) - 500
texture = rnd(1)
texture object i, 0, 2 + texture
next i
` make the sky
make object cube 21, 1500
texture object 21, 0, 9
set object cull 21, 0
global cx#
global cy#
cx# = camera angle x()
cy# = camera angle y()
repeat
text 20, 20, "FPS = " + str$(screen fps())
text 20, 40, "Cam Y pos = " + str$(camera position y(),2)
center text screen width()/2, screen height()/2, str$(desktop width())+ " " + str$(desktop height())
positionCamera()
sync
until spacekey()
end
function positionCamera()
control camera using arrowkeys 0, 1, 0
` make sure camera stays above plain
camPosX# = camera position x()
camPosY# = camera position y()
camPosZ# = camera position z()
camPosY# = max(5.0, camPosY#)
position camera camPosX#, camPosY#, camPosZ#
cx# = cx# + mousemovey(): cy# = cy# + mousemovex()
rotate camera cx#, cy#, 0
endfunction
I expected that to be sufficient for the code to run correctly on both machines. But it wasn't.
The project with the missing text reports a resolution of 1792x1344 whereas a new project, using my usual settings, works correctly and reports a resolution of 1200x800. In fact the text in question really wasn't missing at all - it was merely displayed off-screen since the resolution was too large! But the screenshot grabbed all of it even the stuff off-screen. Confusing.
No wonder newcomers have trouble getting their programs running consistently on different machines.