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

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

?? tdecfg.c

?? 《c語言高級實例解析》光盤所附源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
   cfg.rescan = FALSE;
   in.x.ax =  0x1a00;
   int86( VIDEO_INT, &in, &out );
   temp = out.h.al;
   active_display = out.h.bl;
   if (temp == 0x1a && (active_display == 7 || active_display == 8))
      cfg.adapter = VGA;
   else {
      in.h.ah =  0x12;
      in.h.bl =  0x10;
      int86( VIDEO_INT, &in, &out );
      if (out.h.bl != 0x10) {         
         if (vid.ega_info & 0x08) {
            if (vid.addr_6845 == 0x3d4)
               cfg.adapter = CGA;
            else
               cfg.adapter = MDA;
         } else
            cfg.adapter = EGA;
      } else if (vid.addr_6845 == 0x3d4)
         cfg.adapter = CGA;
      else
         cfg.adapter = MDA;
   }

   if (cfg.adapter == CGA)
      cfg.rescan = TRUE;

   cfg.mode = vid.vidmode;
   if (vid.addr_6845 == 0x3D4) {
      cfg.color = TRUE;
      FP_SEG( cfg.videomem ) = 0xb800;
   } else {
      cfg.color = FALSE;
      FP_SEG( cfg.videomem ) = 0xb000;
   }
   FP_OFF( cfg.videomem ) = 0x0000;
   if (cfg.color == TRUE)
      cfg.attr = COLOR_ATTR;
   else
      cfg.attr = MONO_ATTR;

   cfg.overscan = vid.crt_palette;
}


int getkey( void )
{
unsigned key;
unsigned lo;

  
   key = _bios_keybrd( 0 );
   lo = key & 0X00FF;
   lo = (int)((lo == 0) ? (((key & 0XFF00) >> 8) + 256) : lo);
   return( lo );
}



void s_output( char far *s, int line, int col, int attr )
{
int far *screen_ptr;
int max_col;
int off;

   max_col = 80;
   screen_ptr = cfg.videomem;
   off = line * 160 + col * 2;

   ASSEMBLE {
        push    ds              
        push    di              
        push    si              

        mov     bx, WORD PTR attr               
        mov     cx, WORD PTR col                
        mov     dx, WORD PTR max_col            
        mov     di, WORD PTR screen_ptr         
        add     di, WORD PTR off
        mov     ax, WORD PTR screen_ptr+2       
        mov     es, ax
        mov     si, WORD PTR s  
        or      si, si          
        je      getout          
        mov     ax, WORD PTR s+2        
        or      ax, ax          
        je      getout          
        mov     ds, ax          
        mov     ah, bl          
   }
top:

   ASSEMBLE {
        cmp     cx, dx          
        jge     getout          
        lodsb                   
        or      al, al          
        je      getout          
        stosw                   
        inc     cx              
        jmp     SHORT top       
   }
getout:

   ASSEMBLE {
        pop     si              
        pop     di              
        pop     ds              
   }
}



void hlight_line( int x, int y, int lgth, int attr )
{
int off, far *pointer;

   pointer = cfg.videomem;
   off = y * 160 + 2 * x + 1;  
   ASSEMBLE {
        push    di              

        mov     cx, lgth        

        mov     di, WORD PTR pointer    
        add     di, off                 
        mov     ax, WORD PTR pointer+2
        mov     es, ax
        mov     ax, attr        
   }
lite_len:

   ASSEMBLE {
        stosb                   
        inc     di              
        loop    lite_len        
        pop     di              
   }
}



void scroll_window( int lines, int r1, int c1, int r2, int c2, int attr )
{
char rah, ral;

   ASSEMBLE {
        mov     ax, lines
        cmp     ax, 0           
        jge     a1

        neg     ax                      
        mov     BYTE PTR ral, al        
        mov     BYTE PTR rah, 7         
        dec     r2                      
        jmp     SHORT a2
   }
a1:

   ASSEMBLE {
        mov     BYTE PTR ral, al        
        mov     BYTE PTR rah, 6         
   }
a2:

   ASSEMBLE {
        mov     ax, WORD PTR r1         
        mov     ch, al                  
        mov     ax, WORD PTR c1         
        mov     cl, al                  
        mov     ax, WORD PTR r2         
        mov     dh, al                  
        mov     ax, WORD PTR c2         
        mov     dl, al                  
        mov     ax, WORD PTR attr       
        mov     bh, al                  
        mov     ah, BYTE PTR rah        
        mov     al, BYTE PTR ral        
        push    bp                      
        int     VIDEO_INT               
        pop     bp
   }
}



void cls( void )
{
   scroll_window( 0, 0, 0, 24, 79, NORMAL );
}



void show_box( int x, int y, struct screen *p, int  attr )
{

   while (p->text) {
      s_output( p->text, p->row+y, p->col+x, attr );
      p++;
   }
}



void make_window( int col, int row, int width, int height, int attr )
{
   buf_box( col++, row++, width, height, attr );
   clear_window( col, row, width-2, height-2 );
}



void buf_box( int col, int row, int width, int height, int attr )
{
int  i;
int  row_count;
char string[82];

   if (height > 0 && width > 0 && height < 25 && width < 81) {
      row_count = 1;
      string[0]= U_LEFT;
      for (i=1; i<width-1; i++)
         string[i] = HOR_LINE;
      string[i++] = U_RIGHT; string[i] = '\0';
      s_output( string, row, col, attr );
      ++row_count;
      ++row;

      if (row_count < height) {
         string[0] = VER_LINE;
         string[1] = '\0';
         for (i=1; i<height-1; i++) {
            s_output( string, row, col, attr );
            s_output( string, row, col+width-1, attr );
            ++row;
            ++row_count;
         }
      }

      if (row_count <= height) {
         string[0] = L_LEFT;
         for (i=1; i<width-1; i++)
            string[i] = HOR_LINE;
         string[i++] = L_RIGHT; string[i] = '\0';
         s_output( string, row, col, attr );
      }
   }
}



void clear_window( int col, int row, int width, int height )
{

   scroll_window( 0, row, col, row+height-1, col+width-1, NORMAL );
}



void window_control( WINDOW **window_ptr, int action, int col, int row,
                     int width, int height )
{
WINDOW  *p;
size_t  store_me;

   if (action == SAVE) {
      p = (WINDOW *)malloc( sizeof(WINDOW) );
      if (p != NULL) {
         p->n = NULL;

         
         if (*window_ptr != NULL)
            p->n = *window_ptr;
         *window_ptr = p;
         store_me = (width * height) * sizeof( int );
         p->buf = (int *)malloc( store_me );
         save_window( p->buf, col, row, width, height );
      }
   } else if (action == RESTORE) {
      if (*window_ptr != NULL) {
         p = *window_ptr;
         restore_window( p->buf, col, row, width, height );

        
         *window_ptr = p->n;
         free( p->buf );
         free( p );
}  }  }



void save_window( int *destination, int col, int row, int width, int height )
{
int i, j, offset;
int far *pointer;

   pointer = cfg.videomem;
   offset = row * 80 + col;
   pointer += offset;
   for (i=0; i < height; i++) {
      for (j=0; j < width; j++)
         *destination++ = *(pointer + j);
      pointer += 80;
   }
}



void restore_window( int *source, int col, int row, int width, int height )
{
int i, j, offset;
int far *pointer;

   pointer = cfg.videomem;
   offset = row * 80 + col;
   pointer += offset;
   for (i=0; i < height; i++) {
      for (j=0; j < width; j++)
         *(pointer + j) = *source++;
      pointer += 80;
   }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久不卡影院| 日韩一区二区三区视频在线| 亚洲国产精品成人综合色在线婷婷 | 日本免费新一区视频| 久久一区二区视频| 在线中文字幕不卡| 国产一区二区三区高清播放| 一区二区视频在线看| 欧美日韩国产免费一区二区| 国产精品12区| 午夜国产精品一区| 亚洲视频一区二区在线| 精品国产乱码久久久久久老虎| 国产不卡在线一区| 日本aⅴ亚洲精品中文乱码| 国产精品综合av一区二区国产馆| 亚洲欧美偷拍三级| 精品捆绑美女sm三区| 欧美日韩卡一卡二| 欧美一卡2卡三卡4卡5免费| 色综合久久综合网97色综合| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲午夜久久久久久久久电影网| 欧美极品美女视频| 亚洲色图一区二区| 五月天激情综合网| 国产精品伊人色| 色久综合一二码| 欧美一区二区免费视频| 中文字幕av一区二区三区高| 亚洲一区二区三区四区不卡| 国产精品毛片大码女人| 久久亚洲精精品中文字幕早川悠里| 国产欧美精品一区| 久久久久久久久久久久久久久99| 国产精品狼人久久影院观看方式| 国产日韩欧美综合在线| 亚洲尤物视频在线| 国产精品中文字幕日韩精品| 色狠狠一区二区三区香蕉| 欧美精品一区二区三区一线天视频 | 欧美日韩国产在线观看| xf在线a精品一区二区视频网站| 国产丝袜在线精品| 欧美大片在线观看一区| 久久先锋影音av| 一区二区三区成人| 国产高清在线观看免费不卡| 欧美三级一区二区| 制服丝袜中文字幕一区| 日韩一区二区三区视频在线观看 | 99精品视频在线免费观看| 成人动漫一区二区三区| av网站免费线看精品| 色综合视频在线观看| 精品成人在线观看| 偷拍亚洲欧洲综合| 色婷婷精品久久二区二区蜜臂av| 国产亚洲人成网站| 麻豆专区一区二区三区四区五区| 国产在线视视频有精品| 欧美老女人第四色| 久久蜜臀中文字幕| 蜜臀av亚洲一区中文字幕| 欧美性一级生活| 久久久欧美精品sm网站| 日本欧美一区二区| 欧美久久高跟鞋激| 五月婷婷久久丁香| 欧美日韩国产免费一区二区 | 欧美大胆一级视频| 日韩高清不卡一区| 欧美一区二区在线不卡| 日本亚洲天堂网| 在线综合亚洲欧美在线视频| 视频一区视频二区在线观看| 国产一区二区福利| 精品国产乱码久久久久久闺蜜| 日本色综合中文字幕| 日韩三级.com| 黄色小说综合网站| 久久久精品免费免费| 国产精品996| 国产精品久久久久久久蜜臀| 99久久er热在这里只有精品66| 国产精品福利一区| 欧美在线免费观看视频| 国产日韩欧美制服另类| 不卡一卡二卡三乱码免费网站| 国产精品无遮挡| 色欧美片视频在线观看| 日韩精品亚洲专区| 26uuu成人网一区二区三区| 国产91高潮流白浆在线麻豆| 中文字幕一区二区在线播放| 精品一区二区免费| 91麻豆精品国产91久久久| 美腿丝袜一区二区三区| 中文字幕精品在线不卡| 91国偷自产一区二区三区观看| 亚洲风情在线资源站| 26uuu精品一区二区三区四区在线| 懂色av中文一区二区三区| 一区二区三区四区在线免费观看| 91精品综合久久久久久| 国产精品一级黄| 又紧又大又爽精品一区二区| 欧美一区二区视频免费观看| 国产精品资源网站| 无码av中文一区二区三区桃花岛| 精品国一区二区三区| 色悠悠亚洲一区二区| 老司机午夜精品| 精品三级在线观看| 91首页免费视频| 一区二区三区在线免费视频| 欧美一级高清片| 91丨九色丨尤物| 极品瑜伽女神91| 亚洲专区一二三| 中文一区二区完整视频在线观看 | 日韩免费观看高清完整版| 99v久久综合狠狠综合久久| 日日夜夜精品免费视频| 最新国产精品久久精品| 精品日韩在线观看| 欧美丝袜丝nylons| 99久久久无码国产精品| 国产精品一二三区在线| 人妖欧美一区二区| 亚洲电影视频在线| 欧美一级一区二区| 91老师国产黑色丝袜在线| 国产麻豆视频精品| 奇米影视7777精品一区二区| 夜夜嗨av一区二区三区四季av| 欧美经典三级视频一区二区三区| 884aa四虎影成人精品一区| 色狠狠综合天天综合综合| 99久久99精品久久久久久| 国产白丝精品91爽爽久久| 国内精品视频666| 日韩电影免费一区| 视频一区二区三区入口| 亚洲一区二区三区四区在线免费观看| 国产精品美女久久久久久久久久久 | 不卡av免费在线观看| 国产专区综合网| 国产一区二区主播在线| 韩国三级在线一区| 国模娜娜一区二区三区| 欧美a级一区二区| 蜜桃av一区二区| 免费看精品久久片| 久热成人在线视频| 精品一区二区三区免费播放| 国产一区二区不卡老阿姨| 韩国精品一区二区| 懂色av一区二区三区免费观看| 国产美女精品在线| 99视频一区二区三区| 94-欧美-setu| 欧美乱妇一区二区三区不卡视频| 欧美精品tushy高清| 欧美大片在线观看一区二区| 精品国精品自拍自在线| 中文字幕乱码一区二区免费| 亚洲手机成人高清视频| 亚洲第一激情av| 久久成人久久爱| 夫妻av一区二区| 在线一区二区三区四区五区 | 亚洲色图欧美激情| 香蕉久久一区二区不卡无毒影院| 蜜桃久久精品一区二区| 国产精品一区二区久久精品爱涩| 成人99免费视频| 91国产成人在线| 日韩精品在线一区二区| 一本一本大道香蕉久在线精品 | 捆绑调教一区二区三区| 国精产品一区一区三区mba桃花| 成人精品免费看| 精品综合免费视频观看| 成人免费视频一区二区| 欧美日韩一级片网站| 精品福利二区三区| 亚洲一区二区三区四区在线观看| 久久精品国产一区二区三区免费看| 国产99久久精品| 91 com成人网| 亚洲欧美日韩中文字幕一区二区三区 | 亚洲高清不卡在线| 精品在线亚洲视频| 欧美影院午夜播放| 国产视频一区在线播放| 天天综合色天天综合色h| 豆国产96在线|亚洲| 日韩美女视频一区二区在线观看| 中文字幕不卡在线观看|