make ATARI video "modelines" more readable

This commit is contained in:
Markus Fröschle
2017-04-19 19:37:33 +00:00
parent 278fc99d1f
commit e7555d0032

View File

@@ -467,31 +467,64 @@ void BaS(void)
* ATARI video modes "modeline" * ATARI video modes "modeline"
* *
* horizontal: * horizontal:
* high word = h_total * high word: h_total
* low word = hsync_start * low word: hsync_start
* *
* vertical: * vertical:
* high word = v_total * high word v_total
* low word = vsync_start * low word vsync_start
* *
* can be calculated with umc ("universal modeline generator") * can be calculated with umc ("universal modeline generator")
* *
*/ */
#define ATARI_HH * (volatile uint32_t *) 0xf0000410 struct atari_video_timing
#define ATARI_VH * (volatile uint32_t *) 0xff000414 {
#define ATARI_HL * (volatile uint32_t *) 0xff000418 uint16_t total;
#define ATARI_VL * (volatile uint32_t *) 0xff00041c uint16_t sync_start;
};
static volatile struct atari_video_timing *hor_640x480 = (volatile struct atari_video_timing *) 0xf0000410;
static volatile struct atari_video_timing *ver_640x480 = (volatile struct atari_video_timing *) 0xf0000414;
static volatile struct atari_video_timing *hor_320x240 = (volatile struct atari_video_timing *) 0xf0000418;
static volatile struct atari_video_timing *ver_320x240 = (volatile struct atari_video_timing *) 0xf000041c;
#define VIDEO_25MHZ
#ifdef VIDEO_25MHZ #ifdef VIDEO_25MHZ
hor_640x480->total = 0x2ba;
hor_640x480->sync_start = 0x2ba;
ver_640x480->total = 0x20c;
ver_640x480->sync_start = 0x20a;
hor_320x240->total = 0x190;
hor_320x240->sync_start = 0x15d;
ver_320x240->total = 0x20c;
ver_320x240->sync_start = 0x20a;
#ifdef _NOT_USED_
ATARI_HH = 0x032002ba; /* horizontal timing 640 x 480 */ ATARI_HH = 0x032002ba; /* horizontal timing 640 x 480 */
ATARI_VH = 0x020c020a; /* vertical timing 640 x 480 */ ATARI_VH = 0x020c020a; /* vertical timing 640 x 480 */
ATARI_HL = 0x0190015d; /* horizontal timing 320 x 240 */ ATARI_HL = 0x0190015d; /* horizontal timing 320 x 240 */
ATARI_VL = 0x020c020a; /* vertical timing 320 x 240 */ ATARI_VL = 0x020c020a; /* vertical timing 320 x 240 */
*/
#endif /* _NOT_USED_ */
#else /* 32 MHz */ #else /* 32 MHz */
hor_640x480->total = 0x370;
hor_640x480->sync_start = 0x2ba;
ver_640x480->total = 0x20d;
ver_640x480->sync_start = 0x20a;
hor_320x240->total = 0x2a0;
hor_320x240->sync_start = 0x1e0;
ver_320x240->total = 0x5a0;
ver_320x240->sync_start = 0x168;
#ifdef _NOT_USED_
ATARI_HH = 0x037002ba; /* horizontal timing 640 x 480 */ ATARI_HH = 0x037002ba; /* horizontal timing 640 x 480 */
ATARI_VH = 0x020d020a; /* vertikal timing 640 x 480 */ ATARI_VH = 0x020d020a; /* vertikal timing 640 x 480 */
ATARI_HL = 0x02a001e0; /* horizontal timing 320 x 240 */ ATARI_HL = 0x02a001e0; /* horizontal timing 320 x 240 */
ATARI_VL = 0x05a00160; /* vertikal timing 320 x 240 */ ATARI_VL = 0x05a00160; /* vertikal timing 320 x 240 */
#endif /* _NOT_USED_ */
#endif #endif
/* fifo on, refresh on, ddrcs and cke on, video dac on */ /* fifo on, refresh on, ddrcs and cke on, video dac on */