If you try assigning more colors in a mode that doesn't support it, you get an ILLEGAL FUNCTION CALL. Go ahead and give it a try; do a SCREEN 12 and then do something like PALETTE 19, 2 and tell me what you get. You would have to write new code to take advantage of new features anyways, which means that the core functionality of SCREEN would have to change by either taking on additional parameters or adopting new screen modes. SCREEN 12 *can never support more than 16 colors* when implemented 100% accurately to QBASIC's limitations. It's a hard fact. Using a 640x480 graphics mode in more than 16 colors is no longer SCREEN 12.