#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){ // 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 clear(){ for(char i=0;i