From d211eeaa4136dce489c036556d4bc43614cfb728 Mon Sep 17 00:00:00 2001 From: mrdudz Date: Mon, 28 Sep 2015 15:29:14 +0200 Subject: [PATCH] fix conio test to work on vic20 screen --- testcode/lib/conio.c | 48 +++++++++++++++++++++++++++++++------------- 1 file changed, 34 insertions(+), 14 deletions(-) diff --git a/testcode/lib/conio.c b/testcode/lib/conio.c index 752687f34..f1b21e7a5 100644 --- a/testcode/lib/conio.c +++ b/testcode/lib/conio.c @@ -3,6 +3,15 @@ #include #include + +static char grid[5][5] = { + { CH_ULCORNER, CH_HLINE, CH_TTEE, CH_HLINE, CH_URCORNER }, + { CH_VLINE, ' ', CH_VLINE, ' ', CH_VLINE }, + { CH_LTEE, CH_HLINE, CH_CROSS, CH_HLINE, CH_RTEE }, + { CH_VLINE, ' ', CH_VLINE, ' ', CH_VLINE }, + { CH_LLCORNER, CH_HLINE, CH_BTEE, CH_HLINE, CH_LRCORNER }, +}; + void main(void) { int i, j, n; @@ -12,10 +21,10 @@ void main(void) screensize(&xsize, &ysize); cputs("cc65 conio test"); - tcol = textcolor(1); - cputsxy(0, 2, "colors:" ); - for (i = 3; i < 6; ++i) { - gotoxy(i,i); + cputsxy(0, 2, "Colors:" ); + tcol = textcolor(0); /* remember original textcolor */ + for (i = 0; i < 3; ++i) { + gotoxy(i,3 + i); for (j = 0; j < 16; ++j) { textcolor(j); cputc('X'); @@ -23,21 +32,30 @@ void main(void) } textcolor(tcol); - cprintf("\n\n\rscreensize is: %dx%d", xsize, ysize ); + cprintf("\n\n\r Screensize is: %dx%d", xsize, ysize ); + + chlinexy(0,6,xsize); + cvlinexy(0,6,3); + chlinexy(0,8,xsize); + cvlinexy(xsize-1,6,3); + cputcxy(0,6,CH_ULCORNER); + cputcxy(xsize-1,6,CH_URCORNER); + cputcxy(0,8,CH_LLCORNER); + cputcxy(xsize-1,8,CH_LRCORNER); - chlinexy(0,10,xsize); - cvlinexy(0,10,3); - chlinexy(0,12,xsize); - cvlinexy(xsize-1,10,3); - cputcxy(0,10,CH_ULCORNER); - cputcxy(xsize-1,10,CH_URCORNER); - cputcxy(0,12,CH_LLCORNER); - cputcxy(xsize-1,12,CH_LRCORNER); + for (i = 0; i < 5; ++i) { + gotoxy(xsize - 5,i); + for (j = 0; j < 5; ++j) { + cputc(grid[i][j]); + } + } gotoxy(0,ysize - 2 - ((256 + xsize) / xsize)); + revers(1); for (i = 0; i < xsize; ++i) { cputc('0' + i % 10); } + revers(0); for (i = 0; i < 256; ++i) { if ((i != '\n') && (i != '\r')) { cputc(i); @@ -46,13 +64,15 @@ void main(void) while(wherex() > 0) { cputc('#'); } + revers(1); for (i = 0; i < xsize; ++i) { cputc('0' + i % 10); } + revers(0); for(;;) { - gotoxy(xsize - 10, 3); + gotoxy(8, 2); j = (n >> 5) & 1; revers(j); cputc(j ? 'R' : ' '); -- 2.39.5