⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c.cpp

📁 操作系统引导程序
💻 CPP
字号:
//////  Copyright 2002.9.15  //vga_init 初始化时清屏使用#define ushort  unsigned short#define uchar   char#define INIT_BK  (uchar)0#define INIT_COLOR (uchar)0x0a; //global varint  g_x=0, g_y=0;                 char g_color=0;                //fuc declaritionvoid kputc(uchar c,uchar color,int x,int y); void setcolor(uchar );              void newline();                    void show(uchar *);                 void clear();                      void delay();                      void vga_init();//class a{         public:          a(){           	  /*g_y = 15;*/ //show("class A Init");          	  g_color = INIT_COLOR;          	  //delay          	  #define DELAY_INITVGA 0x0000ffff          	  for(int i =0; i<DELAY_INITVGA; i++);          	  	              vga_init();                            newline();              newline();              newline();              newline();              newline();                           }         void p(){                  show("Compile  "__TIME__".");                }       };//test class//class a;a aaa;       /***************************//*      System Entry       *//***************************/#ifdef __cplusplusextern "C" {#endif     void c()    {       a ab; //test class              //int color;       //g_y = 15; //失败,类在这之前初始化       /*       if(color>=15)       color=color-15;               if(color==0)color++;       setcolor(color++);       setcolor(color++);       */       newline();       g_y = 21;       show(" Thanks Snow,my love! Suport me forever. ");       newline();                           g_y = 21+30;       show("Copyright ");       show(__DATE__"."); //bug if : show (__DATE__);       newline();       aaa.p();       newline();       ab.p(); //test class       newline();       show("System Halt.");              dead:       goto dead;       while(1);      }#ifdef __cplusplus   } /*end extern "c"*/#endif /*****************************************************************************//*****************************************************************************//* 延时*/void delay(){  int i=10000;  int j=1000;  for(i=0;i<10000;i++)  {    for(j=0;j<10;j++)    {;}  }}/**  清屏 只适用 80x25 模式*/#if 0void clear(){ int x=0,y=0; setcolor(0); for(;x<25;x++)  {        for(y=0;y<80;y++)      kputc(0,0,x,y);  }} #endif/* 设置当前字体颜色属性*/void setcolor(uchar color){  g_color=color;}/* 换行 */void newline(){ if(g_x>=15)   g_x=0; else  g_x++; g_y=0;}/* * 在屏幕的当前位置显示字符串*/void show(uchar *str){  int i=0;    while(str[i] != 0)   {     if(str[i]!=' ')       delay();            /* //not use color rotate       if(g_color>=15)          g_color-=15;       if(g_color==0)          g_color++;              g_color++;       */           kputc(str[i++],g_color,g_x,g_y++);   }}void show_center(char *str){   }/*   文本驱动 kprint    把字符 c 以 颜色color 放在    行 : x (0...24 )  列 : y (0...79 )  处.  (只适用于文本模式 80*25) */void kputc(uchar c,uchar color,int x,int y){ /* 指针 p 指向显存  */ uchar *p = (uchar*)0xb8000;  /* 计算行位置*/ p += 2*x*80+y*2;  /*放入显存 */ *p = c;  *(p+1) = color;}void vga_init(){   uchar *p = (uchar*)0xb8000;   for(int row =0; row<25; row++){      for(int col = 0; col<80; col++){   	     p += 2*row*80+col*2;   	     *p = 0x00;   	     *(p+1) = INIT_BK;      }   }  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -