Yeah for the rendering a smooth set of RGB shifting colors using SIN you could do it in a few lines of QBASIC.

The only thing is that since the SDL example uses a 640x480 resolution, which corresponds to SCREEN 12, and in QBASIC it only gives you access to 16 indexed colors at once.

So you have to "cheat" by redefining a single entry (like index 1) throughout the loop with calculated RGB using the PALETTE command. It's basically the equivalent of palette color cycling used in some older games.