Alive
News Team Current issue History Online Support Download Forum @Pouet

01 - 02 - SE - 03 - 04 - 05 - 06 - 07 - 08 - 09 - 10 - 11 - 12 - 13 - 14

Alive 11
Overscan Techniques
Part II
        Shifts of the Useable Screen

        In the usual non-overscan scenario, DE is activated and
        disactivated 16 pixels before and after each line of the useable
        screen. The SHIFTER will only display the four IR values once it
        has received all of them. But if some of the IR registers were
        already filled, it won't need to wait to load all of them before
        loading the RR registers. Since the RR registers are loaded
        earlier, the useable screen will be shifted left. This shift
        will correspond directly to the number of words less that it did
        not need to wait for. As we saw, the MMU sends a new word to the
        SHIFTER every 500ns. Thus if only IR1 were filled, the image
        would be shifted 500ns left (corresponding to 4 pixels in low
        resolution). IR1 and IR2 correspond to 8 pixels, and so on.

        Note that this effect is perpetuated from VBL to VBL: if at the
        end of a VBL, the IR registers are not all empty, the next
        useable screen will be shifted left. If one changes resolution
        during the useable screen, depending on the location of the
        change, it is possible to affect the normal functioning of the
        IR registers. Such changes of resolution can result in the
        bitplanes being shifted. Finally this description is incomplete,
        because it does not account for screens where one observes
        alternating bands of useable screen and border.

        Consider now a line with the left border removed: it contains
        186 bytes, or 92+1 words. 92 is a multiple of 4, so there is a
        word too many per line. As we know, the beginning of the right
        border is due to DE being disactivated, so its position will not
        vary: if there is one word too many per line it will be loaded
        on the left of the screen. As the SHIFTER displays border unless
        all IR registers have been loaded, the first line displayed will
        stop 500ns before a normal line would, i.e. 4 pixels left in low
        resolution. At the end of the first line IR1 is already loaded,
        so the second line should start 0.5us earlier. Similarly at the
        end of the second line both IR1 and IR2 are already loaded, so
        the third line should start 1us earlier. Thus in low resolution
        one would expect the following sequence of left shifts: 4-8-12-0
        pixels. This actually occurs rarely (one time out of 20),
        depending on power up conditions causing the the GLUE, MMU and
        SHIFTER to be slightly out of synch. Instead one usually obtains
        the truncation of line four pixels early corresponding to the
        disactivation of DE. Is IR1 ignored? Indeed at the beginning of
        each left overscan line there is a transition to high resolution
        for a few cycles to activate DE. The change to high resolution
        occurs before DE is activated. Then there are 500ns before the
        Load/Dcyc signal of the MMU is activated (because there are 94
        positions between the switch to monochrome and the switch to
        60Hz to remove the right border: that is to say when DE is
        usually disactivated, for 93 (92+1) words read by the MMU). The
        fact that DE is activated, but Load/Dcyc isn't has as effect to
        clear the last IR register loaded, and to decrement the
        Number_of_read_bitplanes register. Thus if the MMU responds
        earlier, which can happen if it is out of synch with the
        SHIFTER, one will obtain the expected sequence of 4-8-12-0 pixel
        shifts in low resolution. To conclude, left overscan alone is
        potentially unstable and it is unadvisable to use it alone.

        So why is right overscan stable? Each line is two words too
        long! In fact, right overscan is only relatively stable in 50Hz
        low resolution: in medium resolution, two words too many
        correspond to 16 pixels. As all the IR registers must be loaded
        before their contents is transfered to the RR register, every
        second line is shifted left 16 pixels. Similarly, at 60Hz in low
        resolution the same thing occurs with an 8 pixel left shift
        every second line: only IR3 and IR4 need to be loaded. The fact
        this does not occur at 50Hz means that Number_of_read_bitplanes
        must be reset to zero. The same effect occurs for 158 byte
        lines: they should be shifted by 12-8-4-0 pixels every 4 lines
        in low resolution, since they have 3 words too many. These
        anomalies are due to rare combinations of the DE and Load/Dcyc
        signals as in the case of the left border: Load/Dcyc is active
        when DE is disactivated, or DE is active while Load/Dcyc have
        not been activated in the last 500ns.


Alive 11