- README: added compatibility of double mode
- ubb-vga.c (usage, main): new option -d to double the number of set/clear
pairs (making lines longer and the apparent pixel clock slower)
- ubb-vga.c (grab, session, main): have a complete set/clear pair for each
pixel in double mode
- ubb-vga.c (line_pairs, line, frame, tricolor, grid, session): line
length is now kept in a variable, instead of hard-coding its value
and the values derived from it
- ubb-vga.c (line_cycles, line, hdelay): the total line duration is now
kept in a variable, instead of hard-coding it all over the place
- ubb-vga.c: added more section titles
- ubb-vga.c (pick, pattern): grouped pixel-generating functions with
image generation
- ubb-vga.c (usage, main): properly parse command-line options ("getopt"
is a bit of overkill at the moment but will be needed later)
The history of the split prefetch code:
Once up on a time, I thought that it was important to stay very close
to the "official" pixel clock. We could do this when copying 32 bit
words from cache to the GPIO set/clear registers, but not when
shifting 8 bit values as we do now.
One problem with 32 bit values is that transferring that amount of
data exceeds the time available in the hsync pulse. Hence the idea
to split the prefetch between hsync pulse and horizontal front porch.
Note that we also split prefetches between the two VGA lines of each
QVGA line. This commit does not change that mechanism.
- ubb-vga.c (line, frame): removed code fragments for prefetch split
between hsync pulse and front porch
- ubb-vga.c (line, frame): remove code fragments for measuring time
relative to the rising edge of hsync (and letting the prefetch time
control the hsync length), not the falling edge