85 lines
1.4 KiB
C
85 lines
1.4 KiB
C
#include "liblog.h"
|
|
|
|
#define FX9860G
|
|
#include <gint/display.h>
|
|
// Console avec autoscrolling
|
|
// equivalent des "Hello" de basic
|
|
static int debut=1; // ligne du haut
|
|
static int current=7;
|
|
static int cursor=0;
|
|
static char console [8][22]=
|
|
{
|
|
" ",
|
|
" ",
|
|
" ",
|
|
" ",
|
|
" ",
|
|
" ",
|
|
" ",
|
|
" "
|
|
};
|
|
|
|
static void next_line()
|
|
{
|
|
current ++;
|
|
debut ++;
|
|
if (debut==24)
|
|
debut-=8;
|
|
current %= 8;
|
|
cursor=0;
|
|
}
|
|
|
|
static void show_line(int l)
|
|
{
|
|
dtext(1,1+8*l, &console[(current+l)%8][0], C_BLACK, C_NONE);
|
|
}
|
|
|
|
static void set_character(char c)
|
|
{
|
|
|
|
if (c=='\0' || c=='\n')
|
|
{
|
|
console [current] [cursor] = '\0';
|
|
next_line();
|
|
}
|
|
else
|
|
{
|
|
console [current] [cursor] = c;
|
|
cursor++;
|
|
}
|
|
if (cursor==21)
|
|
next_line();
|
|
}
|
|
|
|
// log something
|
|
void ll_log(const char * txt)
|
|
{
|
|
// securite
|
|
debut %= 8;
|
|
current %= 8;
|
|
// fin securite
|
|
|
|
int i=0;
|
|
while (1)
|
|
{
|
|
char c=txt[i];
|
|
set_character(c);
|
|
i++;
|
|
if (c=='\0')
|
|
break;
|
|
}
|
|
|
|
// securite
|
|
for (int t=0; t<8; t++)
|
|
console[t][21]='\0';
|
|
// fin securite
|
|
}
|
|
|
|
void ll_display_log()
|
|
{
|
|
dclear(C_WHITE);
|
|
for (int i=0; i<8; i++)
|
|
show_line(i);
|
|
dupdate();
|
|
}
|