Ehhh... may I ask something? (forgive me my stupid questions) I don't quite
understand it: in the software guide I read that 5 byte DLs are for
"indirect", aka "character" mode, and 'width' here means how many characters
should be displayed. And here you say something different. Where lies the
5 byte DL headers are for selecting if you want direct or indirect (character) mode. Also they are for selecting the video mode. This is done through two bits in the mode byte. So you need to have at least one 5-byte DL header in your display lists to select the video mode and the character mode. If you don't want ot change either setting for the rest of your display you can use 4-byte DL headers for everything else.
But the nice thing about 5-byte headers is, that you can change between character and direct mode or between certain video modes during a display zone. So for example you can use character mode for your background tiles and direct mode for your foreground sprites. Or you could display low-res multicolour sprites over high-res monochrome backgrounds or texts, if you wanted to. All you have to do is to use another 5-byte DL header and change the selction in the mode byte.
You could also use 5-byte DL headers for all your objects, but if you don't want to change the modes, you would be wasting DMA time, since 5-byte headers take longer to process than 4-byte headers.
Ciao, Eckhard Stolberg