From 05d3d884b95eb57a60f32566178b2ef0c840e2dc Mon Sep 17 00:00:00 2001 From: Aaron Culliney Date: Sat, 17 Nov 2018 10:39:28 -0800 Subject: [PATCH] Fix testdisplay after video scanner upheaval --- disks/testdisplay1.dsk.gz | Bin 143360 -> 32202 bytes src/display.c | 13 +- src/test/testdisplay.c | 285 +++++++++++--------------------------- 3 files changed, 87 insertions(+), 211 deletions(-) diff --git a/disks/testdisplay1.dsk.gz b/disks/testdisplay1.dsk.gz index 37dafd1174ab0636fd2458bb101b6c517b5cee03..6fadc39c645dc179122b2cbead16bda4080978ed 100644 GIT binary patch literal 32202 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 Ef4rOHYybcN literal 143360 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 diff --git a/src/display.c b/src/display.c index f4bb97e3..a762c1ad 100644 --- a/src/display.c +++ b/src/display.c @@ -424,9 +424,6 @@ static void _plot_oldschool(color_mode_t mode, uint16_t bits14, unsigned int col static unsigned int last_col_shift[6] = { 0, 0, 0, 0, 0, 1 }; unsigned int count = 3 + (((shift >> 1) & 0x1) << last_col_shift[(col + 1) >> 3]); assert(count == 3 || count == 4 || count == 5); - if (count == 5) { - assert(true); - } for (unsigned int i=0; i> (4 * i)) & 0xFFF; @@ -446,7 +443,7 @@ static void _plot_oldschool(color_mode_t mode, uint16_t bits14, unsigned int col ntsc_signal_bits = ((bits14 >> shift) & mask); } -static void _plot_direct(color_mode_t mode, uint16_t bits14, unsigned int col, uint32_t *colors16, unsigned int fb_off) { +static void _plot_ntsc(color_mode_t mode, uint16_t bits14, unsigned int col, uint32_t *colors16, unsigned int fb_off) { (void)col; (void)colors16; PIXEL_TYPE *fb_ptr = (&fbFull[0]) + fb_off; @@ -1028,12 +1025,12 @@ static void _init_interface(void) { LOG("Initializing display subsystem"); _initialize_display(); - plot[COLOR_MODE_MONO] = _plot_direct; + plot[COLOR_MODE_MONO] = _plot_ntsc; plot[COLOR_MODE_COLOR] = _plot_oldschool; plot[COLOR_MODE_INTERP] = _plot_oldschool; - plot[COLOR_MODE_COLOR_MONITOR] = _plot_direct; - plot[COLOR_MODE_MONO_TV] = _plot_direct; - plot[COLOR_MODE_COLOR_TV] = _plot_direct; + plot[COLOR_MODE_COLOR_MONITOR] = _plot_ntsc; + plot[COLOR_MODE_MONO_TV] = _plot_ntsc; + plot[COLOR_MODE_COLOR_TV] = _plot_ntsc; // scanline filtering for (unsigned int i=0; i<5; i++) { diff --git a/src/test/testdisplay.c b/src/test/testdisplay.c index 4dbc37c6..30d9d067 100644 --- a/src/test/testdisplay.c +++ b/src/test/testdisplay.c @@ -12,7 +12,6 @@ #include "testcommon.h" static bool test_thread_running = false; -static color_mode_t test_color_mode = COLOR_MODE_COLOR; extern pthread_mutex_t interface_mutex; // TODO FIXME : raw access to CPU mutex because stepping debugger ... @@ -25,12 +24,9 @@ static void testdisplay_setup(void *arg) { if (test_do_reboot) { cpu65_interrupt(ResetSig); } - prefs_setLongValue(PREF_DOMAIN_VIDEO, PREF_COLOR_MODE, test_color_mode); - prefs_sync(PREF_DOMAIN_VIDEO); } static void testdisplay_teardown(void *arg) { - test_color_mode = COLOR_MODE_COLOR; test_do_reboot = true; } @@ -39,6 +35,7 @@ static void testdisplay_teardown(void *arg) { #if VIDEO_TRACING +#if 0 # define EXPECTED_BOOT_VIDEO_TRACE_FILE_SIZE 1484244660 # define EXPECTED_BOOT_VIDEO_TRACE_FILE_SHA "26b9e21914d4047e6b190fb4f6fcb6854a4eaa25" // NOTE that CONFORMANT_TRACKS codepaths will change the output of this tracing (just like cpu tracing) @@ -88,6 +85,7 @@ TEST test_boot_video_trace(void) { # endif # undef EXPECTED_BOOT_VIDEO_TRACE_FILE_SIZE # undef EXPECTED_BOOT_VIDEO_TRACE_FILE_SHA +#endif // 0 # define EXPECTED_TRACE_40COL_FILE_SIZ 698230 # define EXPECTED_TRACE_40COL_FILE_SHA "2B8C050F84776A78F73A7AE803A474820E11B3C1" @@ -221,7 +219,7 @@ TEST test_40col_normal() { c_debugger_go(); ASSERT(apple_ii_64k[0][WATCHPOINT_ADDR] == TEST_FINISHED); - ASSERT_SHA("51E5960115380C64351ED00A2ACAB0EB67970249"); + WAIT_FOR_FB_SHA("D676FAFEF4FE5B31832EF875285B7E3A87E47689"); PASS(); } @@ -234,7 +232,7 @@ TEST test_80col_normal() { c_debugger_go(); ASSERT(apple_ii_64k[0][WATCHPOINT_ADDR] == TEST_FINISHED); - ASSERT_SHA("ED9CE59F41A51A5ABB1617383A411455677A78E3"); + WAIT_FOR_FB_SHA("BB63B7206CD8741270791872CCD5B77C08169850"); PASS(); } @@ -247,7 +245,7 @@ TEST test_40col_inverse() { c_debugger_go(); ASSERT(apple_ii_64k[0][WATCHPOINT_ADDR] == TEST_FINISHED); - ASSERT_SHA("20957B960C3C0DE0ABEE0058A08C0DDA24AB31D8"); + WAIT_FOR_FB_SHA("137B1F840ACC1BD23F9636153AAD93CD0FB60E97"); PASS(); } @@ -260,7 +258,7 @@ TEST test_80col_inverse() { c_debugger_go(); ASSERT(apple_ii_64k[0][WATCHPOINT_ADDR] == TEST_FINISHED); - ASSERT_SHA("037798F4BCF740D0A7CBF7CDF5FC5D1B0B3C77A2"); + WAIT_FOR_FB_SHA("CDAB6BCA6DA883049AF1431EF408F8994615B24A"); PASS(); } @@ -279,14 +277,7 @@ TEST test_lores_with_80col() { ASSERT(apple_ii_64k[0][WATCHPOINT_ADDR] == TEST_FINISHED); - if (test_color_mode == COLOR_MODE_MONO) { - WAIT_FOR_FB_SHA("DED166782E9C529B6D7DB2EEBFF5877AD49C4C1F"); - } else { -#if !CONFORMANT_TRACKS - ASSERT_SHA("7B642FF04DE03142A2CE1062C28A4D92E492EDDC"); -#endif - WAIT_FOR_FB_SHA("09C732B37F9E482C8CBE38DA97C99EE640EB8913"); - } + WAIT_FOR_FB_SHA("22867871D3E9F26DAB99286724CD24114D185930"); PASS(); } @@ -301,13 +292,7 @@ TEST test_lores_with_40col() { ASSERT(apple_ii_64k[0][WATCHPOINT_ADDR] == TEST_FINISHED); - if (test_color_mode == COLOR_MODE_MONO) { - WAIT_FOR_FB_SHA("270B44B639E062B1DC7C2EB2E561051130F5F790"); - } else { - ASSERT_SHA_OLD("D7DC78F5718B4CF8716614E79ADABCAB919FCE5D"); - WAIT_FOR_FB_SHA("36287232F7FD4574AA5E05F1C6CACB598C9C2903"); - ASSERT_SHA ("36287232F7FD4574AA5E05F1C6CACB598C9C2903"); // stable through next frame - } + WAIT_FOR_FB_SHA("89CB9CAB3EAFC24CB3995B2B3846DF7E62C2106F"); PASS(); } @@ -322,11 +307,7 @@ TEST test_lores_with_40col_2() { ASSERT(apple_ii_64k[0][WATCHPOINT_ADDR] == TEST_FINISHED); - if (test_color_mode == COLOR_MODE_MONO) { - WAIT_FOR_FB_SHA("A3D5F5DF7A2DF15DDDF7E82F83B756827CD142D3"); - } else { - WAIT_FOR_FB_SHA("D7CC29D2030230258FAFF3772C8F9AD2B318D190"); - } + WAIT_FOR_FB_SHA("0CE19F2C173A7EBAC293198CF0E15A8BE495C9FA"); PASS(); } @@ -341,14 +322,7 @@ TEST test_lores_40colmix_normal() { ASSERT(apple_ii_64k[0][WATCHPOINT_ADDR] == TEST_FINISHED); - if (test_color_mode == COLOR_MODE_MONO) { - WAIT_FOR_FB_SHA("373799861AFCA845826C27571D2FFF7F1CB69BD6"); - } else { -#if !CONFORMANT_TRACKS - ASSERT_SHA("9097A6AE967E4501B40C7CD7EEE115B8C478B345"); -#endif - WAIT_FOR_FB_SHA("B460804F69A416D78462818493933BA2FFEB70C8"); - } + WAIT_FOR_FB_SHA("C0D1C54E3CD4D8D39B5174AFCB4E1815F3749614"); PASS(); } @@ -363,13 +337,7 @@ TEST test_lores_40colmix_inverse() { ASSERT(apple_ii_64k[0][WATCHPOINT_ADDR] == TEST_FINISHED); - if (test_color_mode == COLOR_MODE_MONO) { - WAIT_FOR_FB_SHA("F9F4757BB751AD47D975D45DC75B3C93C9F2C6C8"); - } else { - ASSERT_SHA_OLD("5256E8B96CB04F48324B587ECCCF8A435077B5DE"); - WAIT_FOR_FB_SHA("C2ADD78885B65F7D2FA84F999B06CB32D25EF8A0"); - ASSERT_SHA ("C2ADD78885B65F7D2FA84F999B06CB32D25EF8A0"); // stable through next frame - } + WAIT_FOR_FB_SHA("F2332A32E34F6CF61A69C0C278105F348870E5C6"); PASS(); } @@ -384,13 +352,7 @@ TEST test_lores_80colmix_normal() { ASSERT(apple_ii_64k[0][WATCHPOINT_ADDR] == TEST_FINISHED); - if (test_color_mode == COLOR_MODE_MONO) { - WAIT_FOR_FB_SHA("DD2A3A05EA38652A86D144FFB5BD98CB24A82FF6"); - } else { - ASSERT_SHA_OLD("9D5D5382B0A18A71DC135CAD51BEA2665ADB5FB2"); - WAIT_FOR_FB_SHA("610E61D466AAE88CF694B3E1029D3D4C28D1D820"); - ASSERT_SHA ("610E61D466AAE88CF694B3E1029D3D4C28D1D820"); // stable through next frame - } + WAIT_FOR_FB_SHA("EC819006C66EFE5CFF45BADC7B2ECA078268B1D3"); PASS(); } @@ -405,13 +367,7 @@ TEST test_lores_80colmix_inverse() { ASSERT(apple_ii_64k[0][WATCHPOINT_ADDR] == TEST_FINISHED); - if (test_color_mode == COLOR_MODE_MONO) { - WAIT_FOR_FB_SHA("0D51D6A375820FE36E4D95127F0E7A8F71495F4A"); - } else { - ASSERT_SHA_OLD("7936E87BE1F920AACD43268DB288746528E89959"); - WAIT_FOR_FB_SHA("CBAEE8961F20079BF45CD197878F1111A6E89E26"); - ASSERT_SHA ("CBAEE8961F20079BF45CD197878F1111A6E89E26"); // stable through next frame - } + WAIT_FOR_FB_SHA("8681289778AB74083712DFF225A2CADADAE9C6DA"); PASS(); } @@ -420,8 +376,7 @@ TEST test_lores_80colmix_inverse() { // HIRES // -#define MOIRE_SHA "1A5DD96B7E3538C2C3625A37653E013E3998F825" -#define MOIRE_SHA_BW "DCB2BADC290A9E0A1DF0DEC45D3A653A40AF8B6B" +#define MOIRE_SHA_BW "04C6F5968C56A07FE19B9AB010B052C6218C8E79" TEST test_hires_with_80col() { BOOT_TO_DOS(); @@ -433,11 +388,7 @@ TEST test_hires_with_80col() { ASSERT(apple_ii_64k[0][WATCHPOINT_ADDR] == TEST_FINISHED); - if (test_color_mode == COLOR_MODE_MONO) { - ASSERT_SHA(MOIRE_SHA_BW); - } else { - ASSERT_SHA(MOIRE_SHA); - } + WAIT_FOR_FB_SHA(MOIRE_SHA_BW); PASS(); } @@ -451,11 +402,7 @@ TEST test_hires_with_40col() { ASSERT(apple_ii_64k[0][WATCHPOINT_ADDR] == TEST_FINISHED); - if (test_color_mode == COLOR_MODE_MONO) { - ASSERT_SHA(MOIRE_SHA_BW); - } else { - ASSERT_SHA(MOIRE_SHA); - } + WAIT_FOR_FB_SHA(MOIRE_SHA_BW); PASS(); } @@ -469,11 +416,7 @@ TEST test_hires_with_40col_page2() { ASSERT(apple_ii_64k[0][WATCHPOINT_ADDR] == TEST_FINISHED); - if (test_color_mode == COLOR_MODE_MONO) { - WAIT_FOR_FB_SHA(MOIRE_SHA_BW); - } else { - WAIT_FOR_FB_SHA(MOIRE_SHA); - } + WAIT_FOR_FB_SHA(MOIRE_SHA_BW); PASS(); } @@ -487,11 +430,7 @@ TEST test_hires_40colmix_normal() { ASSERT(apple_ii_64k[0][WATCHPOINT_ADDR] == TEST_FINISHED); - if (test_color_mode == COLOR_MODE_MONO) { - ASSERT_SHA("9611721C0F70C5F1FE0172534EC15B977CB099D4"); - } else { - ASSERT_SHA("37F41F74EB23F8812498F732E6DA34A0EBC4D68A"); - } + WAIT_FOR_FB_SHA("EEA7E0FBE38543CEAC0C9B599977C414D32F453C"); PASS(); } @@ -505,11 +444,7 @@ TEST test_hires_40colmix_inverse() { ASSERT(apple_ii_64k[0][WATCHPOINT_ADDR] == TEST_FINISHED); - if (test_color_mode == COLOR_MODE_MONO) { - ASSERT_SHA("5CFA5789735AD09FAB8CC7B6EE44CE22CF64A70D"); - } else { - ASSERT_SHA("253D1823F5DAC0300B46B3D49C04CD59CC70076F"); - } + WAIT_FOR_FB_SHA("29EE37FF777100486AE0706E1ACAE233F74A8C26"); PASS(); } @@ -523,11 +458,7 @@ TEST test_hires_80colmix_normal() { ASSERT(apple_ii_64k[0][WATCHPOINT_ADDR] == TEST_FINISHED); - if (test_color_mode == COLOR_MODE_MONO) { - WAIT_FOR_FB_SHA("4069102016E4E6AA860A32C6BAC5E4A6C6A45B72"); - } else { - WAIT_FOR_FB_SHA("8D02F9A7CFC7A7E6D836B01862389F55E877E4E6"); - } + WAIT_FOR_FB_SHA("BE548CA56A0194580637B488D7376D8DBCBC71C8"); PASS(); } @@ -541,14 +472,7 @@ TEST test_hires_80colmix_inverse() { ASSERT(apple_ii_64k[0][WATCHPOINT_ADDR] == TEST_FINISHED); - if (test_color_mode == COLOR_MODE_MONO) { - WAIT_FOR_FB_SHA("C3C19FB3258E7A58F81BC3DC51C2AEDFFC836285"); - } else { -#if !CONFORMANT_TRACKS - ASSERT_SHA("FAFBB65013DA3D5173487C3F434C36A7C04DE92E"); -#endif - WAIT_FOR_FB_SHA("30C0329061781FD1BFE214940F9D5EDFA5FA5F08"); - } + WAIT_FOR_FB_SHA("7B1F9B4BDDE9E0AAA8895B5D9CC9D9126A612244"); PASS(); } @@ -566,11 +490,7 @@ TEST test_80col_lores() { ASSERT(apple_ii_64k[0][WATCHPOINT_ADDR] == TEST_FINISHED); - if (test_color_mode == COLOR_MODE_MONO) { - ASSERT_SHA("D8238DC3ACC1A0E191CEC06F505A159993C2EBFA"); - } else { - ASSERT_SHA("5BFF6721FB90B3A6AF88D9021A013C007C4AF23A"); - } + WAIT_FOR_FB_SHA("4565AB42DDDEB0FC49A5E868BDE4513BD407F84B"); PASS(); } @@ -584,11 +504,7 @@ TEST test_80col_lores_2() { ASSERT(apple_ii_64k[0][WATCHPOINT_ADDR] == TEST_FINISHED); - if (test_color_mode == COLOR_MODE_MONO) { - ASSERT_SHA("5B99DE77F81AD8718FCFB735215A37F7B5ED5DE7"); - } else { - ASSERT_SHA("98BB7C04854594D9E709302EF29905D2A89F1D34"); - } + WAIT_FOR_FB_SHA("55ECD4261611E1209915AB4052FFA3203C075EF1"); PASS(); } @@ -602,11 +518,7 @@ TEST test_80col_hires() { ASSERT(apple_ii_64k[0][WATCHPOINT_ADDR] == TEST_FINISHED); - if (test_color_mode == COLOR_MODE_MONO) { - ASSERT_SHA("647F3A377513486121C7609E3F53E97DC6FC456D"); - } else { - ASSERT_SHA("919EBCBABEA57E932F84E9864B2C35F57F8909B4"); - } + WAIT_FOR_FB_SHA("0BBBDB9EB3D68C54E4791F78CA9865214B879118"); PASS(); } @@ -619,18 +531,6 @@ GREATEST_SUITE(test_suite_display) { test_thread_running = true; - typedef struct parms_t { - color_mode_t mode; - bool doReboot; - } parms_t; - static parms_t parmsArray[] = { - { COLOR_MODE_COLOR, true }, - { COLOR_MODE_COLOR, false }, - { COLOR_MODE_MONO, true }, - { COLOR_MODE_MONO, false }, - }; - unsigned int count = sizeof(parmsArray)/sizeof(parmsArray[0]); - GREATEST_SET_SETUP_CB(testdisplay_setup, NULL); GREATEST_SET_TEARDOWN_CB(testdisplay_teardown, NULL); GREATEST_SET_BREAKPOINT_CB(test_breakpoint, NULL); @@ -638,11 +538,10 @@ GREATEST_SUITE(test_suite_display) { // TESTS -------------------------- #if VIDEO_TRACING && CONFORMANT_TRACKS - RUN_TESTp(test_boot_video_trace); - RUN_TESTp(test_video_trace_40col); + //RUN_TESTp(test_boot_video_trace); -- Not valid presently + //RUN_TESTp(test_video_trace_40col); -- Need more stable test : disk is settled and cursor flashing ... RUN_TESTp(test_video_trace_liltexwin); #endif - // text modes RUN_TESTp(test_40col_normal); test_do_reboot = false; @@ -666,104 +565,84 @@ GREATEST_SUITE(test_suite_display) { // lores - for (unsigned int i=0; i