📄 print.c
字号:
#include"../include/os.h"
#define base ((char *)(0xc0000000))
static int thread_id=-1;
void set_print_thread_id(int new_thread_id)
{
thread_id=new_thread_id;
return;
}
void kernel_print_string(char *p)
{
static int i=100,j=200;
int place;
if(thread_id>0)
if(thread_id!=(current.t->semaphore))
return;
for(;;p++){
if(j>=80)
{i++;j=0;};
if(i>=25){
char *d,*s;
for(i=0;i<24;i++)
for(j=0;j<80;j++){
d=(0xb8000+2*(80*i+j))+base;
s=d+160;*d=(*s);*s=' ';
}
i=24;j=0;
}
switch(*p){
case '\0':
return;
case '\n':
for(;j<80;j++){
place=0xb8000+2*(80*i+j);
*(place+base)=' ';
}
i++;j=0;
break;
default:
place=0xb8000+2*(80*i+j);
*(place+base)=(*p);
j++;
break;
};
};
return;
}
void kernel_print_number(int number)
{
int i,x;
char p[9];
for(i=7;i>=0;i--){
x=number&0xf;
number=((number>>4)&(0x0fffffff));
if((x>=0)&&(x<=9))
p[i]=(char)(x+(int)'0');
else
p[i]=(char)(x-10+(int)'A');
};
p[8]='\0';
kernel_print_string(p);
return;
}
void kernel_print(char *p,int number)
{
kernel_print_string(p);
kernel_print_number(number);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -