- index.html: don't boastfully start the page with my name. The footer
will do well enough.
- index.html: the image format we can load is PPM (pixmap), not PNM
(anymap)
- Makefile, index.html: generate Web-friendly 1024x768 images and link
to these, instead of the full-sized monsters
- index.html: minor rewording
- index.html: corrected capitalization of "NanoNote"
"Experimental" means that it doesn't seem to work at the moment.
- regs4740.h (_LCD, LCDCTRL): added the LCD control register
- ubb-vga.c (old_lcdctrl, tame_lcd, restore_lcd): make the LCD controller
use short bursts, to reduce the bus access latency for other users
- ubb-vga.c (keep_lcd, setup_noirq, cleanup_noirq, usage, main): new
option -2 to keep on refreshing the LCD display
- ubb-vga.c (ben_setup, setup_noirq): moved calls to disable_lcd and
get_timer to setup_noirq
- ubb-vga.c (cleanup, cleanup_noirq): moved calls to release_timer
and enable_lcd to cleanup_noirq
- ubb-vga.c (cleanup, main): "cleanup" is now empty; removed it
- vga-ben.pro, vga-ben.sch, vga-ben.cmp, vga-ben.pro: similar to
ubb-vga.sch, but with R and Y swapped (for better grounding), the VGA
connector replaced by solder pads, and added pads for the shield
- Makefile (schp, brd): new targets for editing vga-ben
First, we extend all deadlines a litte to make sure we never have to
wait negative time. Second, we get the timer value at the end of the
wait and CPU-loop for the difference between the actual value and the
ideal (extended) value.
- ubb-vga.c (mode_db): added new mode "640x480/61"
- ubb-vga.c (setup, line): MSC_CLKRT is reset when the MSC resets. Moved
it from "setup" to "line".
- ubb-vga.c (clkrt, setup, line): pick the highest available MSC clock
and adjust the bus clock divider accordingly
- ubb-vga.c (main): added commented-out clock debugging output
- README: added XEN-1510T result for "640x480/61"
Two benefits:
1) We don't accumulate errors from the delay between the timer reset and
the deadline preceding it
2) In the future, we may use WAIT to wait for timer expiration, which
should cause less bus activity and is should also reduce jitter
- regs4740.h (TFR. TFSR, TFCR, TDHR): added more timer registers
- ubb-vga.c (until): renamed to "delay" and changed to measure relative
to the last deadline
- ubb-vga.c (line, hdelay, frame): replaced "until" with "delay"
- ubb-vga.c (hdelay, frame, session): reset the timer only once, at
the beginning of the session
- ubb-vga.c (frame): we didn't wait for the horizontal back porch of
the last image line
This caused 800x600 images to be cut off, because the line length is
not a multiple of 64 bytes.
- ubb-vga.c (session): make the allocation a multiple of the DMA
transfer size
- ubb-vga.c (line): round number of transfers up instead of down
- ubb-vga.c (mode_db): line duration of 800x600/54 was a bit to short
- ubb-vga.c (line): send a 0 word at the end of the line, to avoid
overscan (we use PIO to synchronize with CPU timing)
- ubb-vga.c (mode_db): updated line length of 640x480 resolutions for
correct termination
- ubb-vga.c (KEY_MASK): KEYINx lines on port D
- ubb-vga.c (session): run until keypress if the number of frames is
zero
- ubb-vga.c (main): set frames to zero if omitted
This is tricky: if we just make "mode" global, the whole timing may
fall apart, with the DMA locking up. So let's take small bisectable
steps to get there ...
- ubb-vga.c (struct mode), ubb-vga.h: moved mode entry declaration to
ubb-vga.h
- ubb-vga.c (mode_db): moved up