the colours are not set honrizontal "on the fly" but for each scanline ones...
so...you have a table of precalculated ofsets for hscrol and the scanline offsets (remember each scanline is 256 bytes long)
so now assume that you have in a prerendered checkboard... now you simply change the colours of the checkboards one scanline earlier... what is happening? you "move" the checkboard...
i guess as well that the 256 scanlines (which is 1024 pixel in antic e) are used because the whole playfield in ballblazer is 1024x1024 pixel?
and when i started to code trackball (which later become Boinxx) it was a 3d type of game like ballblazer or trailblazer... unfortunatly i lost all source codes when i lost my usb stick on a business tripp... the basic was the same... a prerendered "checkboard" with 3d perspective, a precalculated lookup table for the perspective correct moving of the DLIs and voila...you had a nice moving 3d checkboard done by a simple DLI with less cpu usage...