I think this is what the wiki code is trying to demonstrate:
'CLS
LINE (100, 100)-(500, 500), _RGB32(255, 255, 0), BF
b& = SaveBackground&
PRINT "This is just test junk" PRINT "Hit any key and the text should disappear, leaving us our pretty yellow box." RestoreBackground b&
At first glance, it appears as if the demo is doing as the original premise states -- it's making the new image opaque, but it's not true. A quick little change can highlight this fact, indisputably:
'CLS
LINE (100, 100)-(500, 500), _RGB32(255, 255, 0), BF
b& = SaveBackground&
PRINT "This is just test junk" PRINT "Hit any key and the text should disappear, leaving us our pretty yellow box." RestoreBackground b&
Notice where I have it print the hex value of point (0,0)? It's NOT FF000000; instead, it's just 0. No red, no blue, no green, no alpha... It's still completely transparent!
So why are we seeing the difference in results that we're getting??
Because we have _DONTBLEND set and that pure transparent color is simply overwriting the white of the text. With blend on, we blend transparent and white, get white, and the text remains...
_DONTBLEND didn't make the new screen opaque, or set it to have 255 alpha. It simply changed our main screen so we didn't blend the transparent color out with the existing color...
Here's a perfect example to prove that:
'CLS
LINE (100, 100)-(500, 500), _RGB32(255, 255, 0), BF
b& = SaveBackground&
PRINT "This is just test junk" PRINT "Hit any key and the text should disappear, leaving us our pretty yellow box."
_BLEND b&
'set the copied image attribute to blend _BLEND 0 'set the current page attribute to blend RestoreBackground b&
If _dontblend had actually changed the background to having 255 alpha, we couldn't just turn blending back on and have it perform with 0 alpha levels as we're seeing.
Unless someone knows something about this command that I don't, I'm inclined to say the wiki is completely off here with what it's documenting for us.
Or am I just missing something obvious here?