亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? vga.c

?? This software was done in part for a textbook on AI I ve written called _The Basis of AI_ (tentative
?? C
?? 第 1 頁 / 共 2 頁
字號:
        set_regs(g640x480x16_regs);        /* set default palette */        for(i = 0; i < 16; i++)          vga_setpal(i, _R_[i], _G_[i], _B_[i]);        //vga_clear(root_col);        LINE_BYTES = 80;        VGA_WIDTH = 640;        VGA_HEIGHT= 480;        VGA_DEPTH = 4;        VGA_MAX_X = VGA_WIDTH - 1;        VGA_MAX_Y = VGA_HEIGHT - 1;      }    /* enable video */    port_in(IS1_R);    port_out(0x20, ATT_IW);}int vga_width()  { return VGA_WIDTH; }int vga_height() { return VGA_HEIGHT; }int vga_depth()  { return VGA_DEPTH; }void vga_set_mode(int m){ port_out(0x03, GRA_I );  port_out(m<<3, GRA_D ); }void vga_set_color(int col){  port_out(0x00, GRA_I );   port_out(col, GRA_D ); }void vga_pixel(int x, int y){ // clip to screen  if (x < 0 || x > VGA_MAX_X || y < 0 || y > VGA_MAX_Y) return;  VIDEO_PTR p = VIDEO + y*LINE_BYTES + (x>>3);  port_out(8, GRA_I);  port_out((0x80 >> (x & 7)), GRA_D);  *p = *p; }int vga_getpix(int x, int y){  register int bit = 0x80 >> (x&7);  register VIDEO_PTR byte = VIDEO + LINE_BYTES*y+(x>>3);  register int c;  /* set read mode 1 */  port_out(5, GRA_I);  port_out(8, GRA_D);  for(c=0; c<16; c++)  { port_out(2, GRA_I);    port_out(c, GRA_D);    if (*byte & bit)  break;   }  return c;}void vga_hline(int x0, int x1, int y){  // clip into screen  if (y < 0 || y > VGA_MAX_Y || x1 < 0 || x0 > VGA_MAX_X) return;  if (x0 < 0) x0 = 0;  if (x1 > VGA_MAX_X) x1 = VGA_MAX_X;    VIDEO_PTR first = VIDEO + LINE_BYTES*y + (x0>>3);  VIDEO_PTR last  = VIDEO + LINE_BYTES*y + (x1>>3);  port_out(8, GRA_I);  if (first == last)  { char byte  = 0xFF>>(x0&7);    byte &= 0xFF<<((~x1)&7);    port_out(byte, GRA_D);    *first = *first;    return;   }  port_out(0xFF>>(x0&7), GRA_D);  *first = *first;  port_out(0xFF<<((~x1)&7), GRA_D);  *last = *last;  port_out(0xFF, GRA_D);  for(VIDEO_PTR p=first+1; p<last; p++) *p = *p; }void vga_vline(int x, int y0, int y1){// clip into screen  if (x < 0 || x > VGA_MAX_X || y1 < 0 || y0 > VGA_MAX_Y) return;  if (y0 < 0) y0 = 0;  if (y1 > VGA_MAX_Y) y1 = VGA_MAX_Y;  port_out(8, GRA_I);  port_out(128 >> (x&7), GRA_D);  VIDEO_PTR last  = VIDEO + LINE_BYTES*y1 + (x>>3);  VIDEO_PTR p;  for(p = VIDEO + LINE_BYTES*y0 + (x>>3); p <= last; p+=LINE_BYTES)  *p = *p;}void vga_box(int x0, int y0, int x1, int y1){   for(int y=y0; y<=y1; y++) vga_hline(x0,x1,y); }static void write_byte(VIDEO_PTR q, unsigned char byte, int D){  if (D==0)    { port_out(byte, GRA_D);      *q = *q;     }  else     { port_out(0x00, GRA_I );  // set_color(white)       port_out(0, GRA_D );       port_out(0x03, GRA_I ); // set_mode(src)       port_out(0, GRA_D );       port_out(0xFF, GRA_D);  // clear       *q = *q;       port_out(0x03, GRA_I ); // set_mode(or)       port_out(16, GRA_D );              for(int i = 0; i < D; i++)       { port_out(0x00, GRA_I );  // set_color(1<<i)         port_out(1<<i, GRA_D );         port_out(byte, GRA_D);         *q = *q;        }     }}static void vga_bytes(int x, int y, unsigned char* ptr, int len, int D=0){   if (len < 1) return;  // clip into display  int x1 = x + 8*len - 1;  if (y < 0 || y > VGA_MAX_Y || x1 < 0 || x > VGA_MAX_X) return;  if (x < 0)   { ptr -= x/8;    x = 0;   }  if (x1 > VGA_MAX_X) x1 = VGA_MAX_X;  len = (x1 - x + 1)/8;  // shift to byte boundary   int s1 = x % 8;  int s2 = 8 - s1;  unsigned char  last_c = 0;  unsigned char* stop = ptr + len;  VIDEO_PTR q = VIDEO + LINE_BYTES*y + x/8;  port_out(8, GRA_I);  while (ptr < stop)  { unsigned char c = *ptr++;    unsigned char byte = (c >> s1) | (last_c << s2);    port_out(byte, GRA_D);    *q = *q;    last_c = c;    q++;   }  port_out(last_c<<s2, GRA_D);  *q = *q;}void vga_bitmap(int x, int y, unsigned char* pm, int width, int height){ while (height--)  { vga_bytes(x,y++,pm,width);    pm += width;   } }//------------------------------------------------------------------------------// pixrects and images//------------------------------------------------------------------------------struct pixrect{ unsigned char** plane;  int width;  int bwidth;  int height;  int depth;  int offset;  pixrect(int, int, int, int); ~pixrect();};pixrect::pixrect(int left, int top, int right, int bottom){ offset = left % 8;  width  = right - left + 1;  height = bottom - top + 1;  depth  = VGA_DEPTH;  bwidth = width/8;  if (width % 8) bwidth++;  if (offset) bwidth++;  plane = new unsigned char*[depth];  for(int i=0; i<depth; i++)       plane[i] =  new unsigned char[height*bwidth]; }pixrect::~pixrect(){ for(int i=0; i<depth; i++) delete[] plane[i];  delete[] plane; }void vga_delimage(char* image) { delete (pixrect*)image; }char* vga_getimage(int left, int top, int right, int bottom){   if (left < 0) left = 0;  if (top  < 0) top = 0;  if (right  > VGA_MAX_X) right = VGA_MAX_X;  if (bottom > VGA_MAX_Y) bottom = VGA_MAX_Y;  pixrect* pr = new pixrect(left,top,right,bottom);  unsigned char mask1 = 0xFF >> pr->offset;  unsigned char mask2 = 0xFF << ((8-pr->offset) % 8);  /* set read mode 0 */  port_out(5, GRA_I);  port_out(0, GRA_D);  /* read planes 0 to 3 */  for(int i = 0; i < pr->depth; i++)  { unsigned char* p = pr->plane[i];    VIDEO_PTR first = VIDEO + LINE_BYTES*top + left/8;    VIDEO_PTR last  = first + pr->bwidth - 1;    port_out(4, GRA_I);    port_out(i, GRA_D);      for(int y=top; y<=bottom; y++)    { VIDEO_PTR q = first;       *p++ = (*q++) & mask1;      while (q < last) *p++ = *q++;      *p++ = (*q++) & mask2;      first += LINE_BYTES;      last  += LINE_BYTES;     }   }  return (char*)pr;  }void vga_putimage(int left, int top, char* image){   pixrect* pr = (pixrect*)image;  int right  = left + pr->width - 1;   int bottom = top  + pr->height - 1;   int left0  = left - pr->offset;  int bw = pr->bwidth;  unsigned char** pfirst = new unsigned char*[pr->depth];  for(int i = 0; i < pr->depth; i++) pfirst[i] = pr->plane[i];  unsigned char* p0 = pr->plane[0];  unsigned char* p1 = pr->plane[1];  unsigned char* p2 = pr->plane[2];  unsigned char* p3 = pr->plane[3];  for(int y=top; y <= bottom; y++)   { vga_set_color(0);    vga_set_mode(0);    vga_hline(left,right,y); // clear line    vga_set_mode(2); // or    for(int i = 0; i < pr->depth; i++)    { vga_set_color(1<<i);      vga_bytes(left0,y,pfirst[i],bw);      pfirst[i] += bw;     }   }  }void vga_copyimage(int left,int top,int right,int bottom,int x,int y){    int width  = right-left+1;  int height = bottom-top+1;  if(x < 0)   { left += x;    width -= x;    x = 0;   }  if(y < 0)   { top += y;    height -= y;    y = 0;   }  if(x+width >= vga_width()) width = vga_width() - x - 1;  if(y+height >= vga_height()) height = vga_height() - y -1;  int  d1  = LINE_BYTES;  int  d2  = d1 * (height-1);  VIDEO_PTR first1 = VIDEO + LINE_BYTES*y + x/8;  VIDEO_PTR last1  = VIDEO + LINE_BYTES*y + (x+width-1)/8;  VIDEO_PTR first  = VIDEO + LINE_BYTES*top + left/8;  VIDEO_PTR last   = VIDEO + LINE_BYTES*top + (left+width-1)/8;  VIDEO_PTR p;  VIDEO_PTR q;  if (y > top)  { first1 +=  d2;    last1  +=  d2;    first  +=  d2;    last   +=  d2;    d1  = -d1;   }  // set write mode 1   port_out(5, GRA_I);  port_out(1, GRA_D);  for(int i=0; i<height; i++)  {     if (x <= left)      for(q=first,p=first1; q <= last;  q++,p++) *p = *q;    else      for(q=last,p=last1;   q >= first; q--,p--) *p = *q;    first1 += d1;    first  += d1;    last1  += d1;    last   += d1;   }  /* set write mode 0 */  port_out(5, GRA_I);  port_out(0, GRA_D); }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
九色|91porny| 久久综合999| 日韩一区二区三区av| 日韩欧美成人激情| 中文字幕第一区第二区| 亚洲一区二区欧美| 国产资源在线一区| 91久久精品国产91性色tv| 8x福利精品第一导航| 久久精品夜夜夜夜久久| 亚洲精品一二三| 天天免费综合色| 奇米在线7777在线精品| 丁香六月综合激情| 欧美日韩电影一区| 中文字幕一区二区三区不卡| 午夜天堂影视香蕉久久| 国产福利一区二区三区视频在线| 色婷婷久久99综合精品jk白丝| 欧美精品日韩一区| 亚洲欧美影音先锋| 久久av资源网| 欧美系列一区二区| 国产精品欧美经典| 黄页视频在线91| 色综合激情五月| 26uuu国产在线精品一区二区| 亚洲最大成人综合| 国产美女精品人人做人人爽| 欧美美女一区二区在线观看| 亚洲国产精品精华液ab| 加勒比av一区二区| 91精品久久久久久久久99蜜臂| 日日夜夜免费精品视频| 色婷婷狠狠综合| 国产精品麻豆欧美日韩ww| 久久99精品久久久| 5566中文字幕一区二区电影| 亚洲精品成人a在线观看| 成人一区二区在线观看| 欧美精品第1页| 亚洲五码中文字幕| 在线观看日产精品| 久久综合色之久久综合| 蜜桃av一区二区| 欧美一区二区三区电影| 午夜精品福利视频网站| 欧美在线视频你懂得| 亚洲视频一区二区在线观看| 捆绑变态av一区二区三区| 欧美午夜免费电影| 一区二区三区成人在线视频| 国内精品久久久久影院色| 欧美大片日本大片免费观看| 麻豆精品在线看| 日韩欧美123| 美腿丝袜亚洲综合| 精品国产sm最大网站| 国产aⅴ精品一区二区三区色成熟| 国产精品电影院| 欧美午夜片在线看| 国内偷窥港台综合视频在线播放| 久久免费美女视频| 91免费国产在线| 石原莉奈在线亚洲三区| 精品国产百合女同互慰| 成人午夜电影久久影院| 成人毛片在线观看| 亚洲成av人综合在线观看| 日韩精品一区二| 99精品在线免费| 毛片一区二区三区| 亚洲天堂中文字幕| 欧美不卡激情三级在线观看| 色综合中文字幕国产| 亚洲成人你懂的| 国产欧美日韩在线视频| 欧美三级电影网| 精品一区二区国语对白| 亚洲午夜私人影院| 久久精品人人做人人爽97| 欧美日韩精品一区二区在线播放| 国产精品亚洲视频| 奇米色一区二区三区四区| 亚洲色图一区二区三区| 精品久久久久久久久久久久包黑料| 99视频一区二区| 久久99精品一区二区三区| 亚洲久草在线视频| 欧美国产日韩a欧美在线观看| 日韩欧美国产小视频| 在线看日韩精品电影| 成人av资源网站| 国产一区二区三区在线观看精品| 性做久久久久久久免费看| 中文无字幕一区二区三区| 日韩欧美电影一区| 日韩一区二区在线观看视频| 在线免费亚洲电影| caoporn国产精品| 国产v综合v亚洲欧| 国产美女一区二区三区| 麻豆91在线播放免费| 丝袜诱惑制服诱惑色一区在线观看 | 欧美精品在欧美一区二区少妇| 亚洲成a人片在线观看中文| 亚洲欧美一区二区三区孕妇| 国产视频在线观看一区二区三区 | 欧美日韩视频在线第一区| 成人的网站免费观看| 国产激情91久久精品导航 | 亚洲国产日韩一区二区| 亚洲欧美日韩中文字幕一区二区三区| 久久亚洲影视婷婷| 精品免费99久久| 精品久久一二三区| 精品国产91久久久久久久妲己| 91精品黄色片免费大全| 7777精品伊人久久久大香线蕉最新版| 欧美日韩午夜在线视频| 欧美日韩黄色影视| 欧美一级夜夜爽| 日韩一区二区在线看| 精品噜噜噜噜久久久久久久久试看| 欧美一级久久久久久久大片| 欧美一区二区三区影视| 欧美电影免费观看高清完整版| 欧美岛国在线观看| 国产午夜精品理论片a级大结局 | 欧美另类高清zo欧美| 欧美一区午夜精品| 久久色在线观看| 日本一区二区成人在线| 亚洲精品五月天| 舔着乳尖日韩一区| 精品一区二区三区免费播放| 国产成人aaa| 欧美午夜不卡视频| 日韩精品一区二区三区四区视频| 久久免费看少妇高潮| 亚洲欧洲av在线| 青青草97国产精品免费观看 | 精品国精品国产| 国产欧美视频一区二区三区| 亚洲欧美日韩国产手机在线| 亚洲成人资源网| 国产精品主播直播| 91福利资源站| 日韩欧美一级二级| 国产精品亲子伦对白| 午夜精品在线视频一区| 国产一区二区在线看| 91免费观看视频在线| 欧美一区二区三区在线| 国产欧美一区二区三区网站| 亚洲一区二区视频| 国产一区啦啦啦在线观看| 91性感美女视频| 555www色欧美视频| 日韩美女视频一区二区 | 一级中文字幕一区二区| 久久99在线观看| 色八戒一区二区三区| 亚洲一区二区av在线| 久久99国产精品免费网站| 色综合久久综合| 欧美成人国产一区二区| 一区二区三区日韩| 国产成人精品免费| 欧美一区二区三区免费在线看| 国产精品高潮呻吟久久| 精品在线播放免费| 777奇米四色成人影色区| 亚洲桃色在线一区| 国产一区美女在线| 正在播放亚洲一区| 一区二区三区毛片| 成人精品在线视频观看| 欧美精品一区二区三区蜜桃| 亚洲国产视频一区| 91女神在线视频| 欧美激情一区在线观看| 精品一区二区免费视频| 7777精品伊人久久久大香线蕉超级流畅| 欧美高清在线一区二区| 国内成人自拍视频| 日韩久久精品一区| 午夜电影一区二区| 欧美亚洲日本一区| 亚洲自拍偷拍麻豆| 色婷婷国产精品久久包臀 | 91在线观看污| 中文字幕不卡的av| 国产成人自拍在线| 国产性色一区二区| 国产91丝袜在线18| 国产精品情趣视频| 99精品久久99久久久久| 亚洲欧美一区二区在线观看| av在线这里只有精品|