#TIL The variable "screencolors" wasn't in #Commodore #GEOS v1.0 (& that geoAssembler crashes in v1.0). There's nothing like trying to use your test program on a black-on-black screen. I don't have a v1.1 d64, but v1.2 works as documented.
The lesson I'm taking from this is, if I use colors, check if I'm in v1.2 or later, & grab the byte at COLOR_MATRIX on startup instead.
This lesson brought to you by geoAssembler & geoLinker resetting colors to default, & deskTop 2.0 repairing colors only for the disk directory pad area.
deskTop 2.0 doesn't repair screen colors after an application quits, but it does after a desk accessory quits.
Oh, wait, that's why. DAs don't have to preserve the color matrix if the main app tells them they don't have to.
I finally wrote a program that produced an obvious assembler error. geoAssembler saves errors to geoWrite documents and runs geoWrite directly. geoWrite also didn't repair colors until after a DA ran.