diff options
| author | Loic Guegan <manzerbredes@mailbox.org> | 2021-04-09 10:29:23 +0200 |
|---|---|---|
| committer | Loic Guegan <manzerbredes@mailbox.org> | 2021-04-09 10:29:23 +0200 |
| commit | f6323421e22c3585c58b54658a11e1e4706cc8fa (patch) | |
| tree | f317b7129dc4350fd088b59a43c1b6e80cd5c39b /src/utils/print.c | |
| parent | 8fee35522dee033863f68c1d2b45f5fe988de9eb (diff) | |
Cleaning code and provide minimal libc
Diffstat (limited to 'src/utils/print.c')
| -rw-r--r-- | src/utils/print.c | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/src/utils/print.c b/src/utils/print.c deleted file mode 100644 index c2cdaf1..0000000 --- a/src/utils/print.c +++ /dev/null @@ -1,81 +0,0 @@ -#include "print.h" - -#define MAX_COL 80 -#define MAX_LINE 25 - -struct VIDEO_STATE { - u8 *mem; - u8 col; - u8 line; - u8 bg; - u8 fg; -}; - -VIDEO_STATE VS={ - (u8 *)0xB8000, - 0, - 0, - BLACK, - GRAY, -}; - -void putchar(char c){ - // Handle newline here - if(c=='\n'){ - VS.col=0; - VS.line+=1; - if(VS.line>=MAX_LINE){ - VS.line=MAX_LINE-1; - scrollup(); - } - return; - } - - // Print char - VS.mem[VS.col*2+MAX_COL*VS.line*2]=c; - VS.mem[VS.col*2+MAX_COL*VS.line*2+1]=VS.fg|VS.bg<<4; - - // Refresh location - VS.col+=1; - if(VS.col>= MAX_COL){ - VS.col=0; - VS.line+=1; - if(VS.line>=MAX_LINE){ - VS.line=MAX_LINE-1; - scrollup(); - } - } -} - -void print(char *str){ - int i=0; - while(str[i]!='\0'){ - putchar(str[i]); - i++; - } -} - -void printc(char* str,VIDEO_COLORS c){ - VIDEO_COLORS backup=VS.fg; - VS.fg=c; - print(str); - VS.fg=backup; -} - -void clear(){ - for(char i=0;i<MAX_LINE;i++){ - scrollup(); - } -} - -void scrollup(){ - // Move VS.line up - for(char i=1;i<=MAX_LINE;i++){ - for(char j=0;j<=MAX_COL;j++) - VS.mem[j*2+MAX_COL*(i-1)*2]=VS.mem[j*2+MAX_COL*i*2]; - } - // Clear last VS.line - for(char i=0;i<=MAX_COL;i++){ - VS.mem[i*2+MAX_COL*(MAX_LINE-1)*2]='\0'; - } -} |
