]> git.sur5r.net Git - cc65/commitdiff
fix conio test to work on vic20 screen
authormrdudz <mrdudz@users.noreply.github.com>
Mon, 28 Sep 2015 13:29:14 +0000 (15:29 +0200)
committermrdudz <mrdudz@users.noreply.github.com>
Mon, 28 Sep 2015 13:29:14 +0000 (15:29 +0200)
testcode/lib/conio.c

index 752687f34a65fc89b5330e893b87904e0e63e3a1..f1b21e7a5d1f17fc2c39d29d195142786c790705 100644 (file)
@@ -3,6 +3,15 @@
 #include <string.h>
 #include <stdlib.h>
 
+
+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' : ' ');