I'd like to display a sprite in RAM using the standard kernel and let the user draw a pixel or erase a pixel when the fire button is pressed. The current pixel would slowly flash on and off, but the official off/on state of the pixel would be remembered when the user moves the joystick to select another pixel.
Holding down the fire button and moving left or right would change the NUSIZ width (normal/double/quad) like you can do here.
Could the score be adapted to show the 8 bits of the current row that the flashing pixel is on? If the score can't be used, can something else be used?
This is a cool concept RT and an awesome question because it is imo a limitation where you would need a kernel designed to read RAM sprites and not RAM pointers to ROM.
Flashback BASIC and SuperCharger BASIC allow what you described and the kernels are portable if anyone would like to implement them for bB.
You can manipulate each row of the sprites as RAM array variables or print binary strings on them using the print command:
print %11111111(player0,0):rem print binary on top row of player 1 sprite.
player0(0)=%11111111:player0(1)=255: rem or control the rows of the sprite via array assignment
The background playfield camera view is 20x10 and could be used to mirror what is going on in the sprite.
You can control the sprite rows RAM based colors the same way
player0colors(0)=$ff:player0colors(1)=100: color the first two rows of sprite 0
rowcolors(0)=$ff:rem color the top row of the playfield CAM
If you like these features and want to try these BASIC's you could enter the 10 line programming contest with a small BASIC game, maybe one that utilizes that kind of sprite manipulation: