OK, just to clear things up... actually I don't understand how you were even able to code this up without knowing much about the technical data of the Channel F.
Sprites??? Sadly, there are no "sprites" per se on the Channel F, only bitmap graphics. And the graphics memory is write-only, so you can't read it in order to determine if the snake has hit something. There's also no collision detection in hardware, which means the processor can't see what's actually in graphics memory at all, not even through small windows. As for colors, each scanline can have one of 4 possible 4-color (or 2-color) palletes, one of which is black and white and the other red/blue/green on grey, light blue or light green (if I remember right). Inside of that scanline, the dots can be freely set, that means you can have red, blue and green adjacent to each other.