test timing and input handling
[ansitris] / src / ansi.c
index c0af0c4..07ae749 100644 (file)
@@ -63,6 +63,12 @@ void ansi_setcursor(int row, int col)
        printf("\033[%d;%dH", row + 1, col + 1);
 }
 
+void ansi_cursor(int show)
+{
+       printf("\033[?25%c", show ? 'h' : 'l');
+       fflush(stdout);
+}
+
 void ansi_ibmchar(unsigned char c, unsigned char attr)
 {
        char cmd[32];
@@ -85,8 +91,8 @@ void ansi_ibmchar(unsigned char c, unsigned char attr)
        }
 
        if(attr != cur_attr) {
-               unsigned char fg = cmap[attr & 7];
-               unsigned char bg = cmap[(attr >> 4) & 7];
+               unsigned char bg = cmap[attr & 7];
+               unsigned char fg = cmap[(attr >> 4) & 7];
 
                ptr += sprintf(ptr, "\033[;%d;%dm", fg + 30, bg + 40);
                cur_attr = attr;