原始程式

UETKbSet
原始檔-起始
#include "w_obj.h"

/*================================================================*/
void UETKbSet(char set_key)
{  asm   mov   al,set_key ;
   asm   mov   ah,80h     ;
   asm   int   10h        ;
}
原始檔-結束

 

 


UGetS
原始檔-起始
#include "w_obj.h"

/*================================================================*/
void  UGetS(int X, int Y, int len, char *s)  /*自螢幕讀入一字串  */
{   char  *p=s;                              /*s的長度需 >= len+1*/
    int    i;

    X--;  Y--;
    for(i=0; i<len; i++, X++)
    {   asm mov  ah,2;
        asm mov  bh,0;
        asm mov  dh,byte ptr Y;
        asm mov  dl,byte ptr X;
        asm int  10h;
        asm mov  ah,8;
        asm mov  bh,0;
        asm int  10h;
        *p++ = _AL;
    }
    *p = NULL;
}
原始檔-結束

 

 


USetColor
原始檔-起始
#include "w_obj.h"

/*================================================================*/
void USetColor(int X, int Y, int len, int color)   /*改變顏色屬性*/
{  int   i;

   gotoxy(X,Y);
   _BX=color;
   _CX=1;
   _DL=X-1;
   _DH=Y-1;
   for(i=0; i<len; i++)
   {   asm mov ah,8;
       asm int 10h;
       asm mov ah,9;
       asm int 10h;
       asm mov ah,2;
       asm add dl,1;
       asm int 10h;
   }
}
原始檔-結束

 

 


UGetKb
原始檔-起始
#include "w_obj.h"

/*===========================================================================*/
unshort  UGetKb()         /*自鍵盤讀入一字元*/
{   unshort  h,t;

  Clock:
    UClock();
    UWaitKbRun();
    asm    mov   dl,0FFH
    asm    mov   ah,06H
    asm    int   21H
    asm    jz    Clock
    t = _AL;

    switch(t)
    {   case 0x7F : return C_BACK;
        case 0x0A : return C_ENTER;
        case 0x0D : return ENTER;
        case 0x08 : return BACK;
        case 0x1B : return ESC;
        case 0x09 : return TAB;
    }
    if(t==0 || t>=0x81)
    {   asm    mov   dl,0FFH
        asm    mov   ah,06H
        asm    int   21H
        h = _AL;
        if(t) return (t<<8 | h);      /* 傳回中文    */

        if(h==0x3B) UCalculate();     /* F1計算機    */
        if(h==0x3C) UMonth();         /* F2萬年曆    */
        if(h==0x84) h=0x72;           /* C_PGUP      */
        return (h<<8);                /* funtion key */
    }
    if(t<SPACE) goto Clock;
    return t;                         /* ASCII       */
}
原始檔-結束

 

 


USetCursor
原始檔-起始
/*---------( SETCURSO.C  )-----------------*/
#include "w_obj.h"

extern   int   CURSOR;
/*-----------------------------------------------------------------*/
void USetCursor(int Status)  /*設定游標正常,放大,消失*/
{  int STYLE;
   switch(Status)
   {  case SMALL:  CURSOR=SMALL;  STYLE=0x0d0d;  break; /*normal replace_mode*/
      case BIG  :  CURSOR=BIG;    STYLE=0x010c;  break; /*big insert_mode */
      case OFF  :                 STYLE=0x2000;  break; /*  disappear  */
   }
   asm   mov ah,1       ;
   asm   mov cx,STYLE   ;
   asm   int 10h        ;
}
原始檔-結束

 

 


UClKbBuf
#include "w_obj.h"

/*================================================================*/
void UClKbBuf()   /*清除鍵盤緩衝區裡的資料*/
{
    asm mov  ax,0x0C00;
    asm int  21h;
}

Byron Wey  Oct.21.1998


回首頁C之城