1. Đăng nhập hoặc Đăng ký ngay bây giờ và là một thành viên của cộng đồng Dân Công Nghệ.

Lập trình C khá hữu ích

Thảo luận trong 'Lập trình' bắt đầu bởi pxbnd, 28/2/09.

  1. pxbnd

    pxbnd New Member

    Tham gia ngày:
    12/3/11
    Bài viết:
    0
    Đã được thích:
    0
    /* Chuong trinh hien gio khi nhan phim F12 */

    #include <dos.h>

    #include <conio.h>

    #include <stdio.h>

    #include <stdlib.h>

    #define VT 132

    #define KBD_INT 0x15

    #define KBD_FUNCTION 0x4F

    #define F12 0x58

    #define u_int unsigned int

    #define INTERRUPT_REGS u_int bp, u_int di, u_int si, u_int\ ds, u_int es, u_int dx, u_int cx, u_int bx, u_int ax, \ u_int ip, u_int cs, u_int flags

    #define INTERRUPT_PARAM bp,di,si,ds,es,dx,cx,bx,ax,ip,cs,flags

    char far *p_mh = (char far*)MK_FP(0xB800,0);

    unsigned long far *t_time=(unsigned long far*)MK_FP(0,0x46C);

    unsigned int_heaplen=2;

    unsigned int_stklen=1024;

    int hien_tb_gio = -1;

    unsigned long du;

    int gio,phut,giay;

    char buf_time[28]={'T',47, 'I',47, 'M',47, 'E',47, ':',47, ' ',47, ' ',47, ' ',47, ' ',47, ' ',47, ' ',47, ' ',47, ' ',47, ' ',47};

    char buf_luu[28];

    void interrupt new_keyboard(INTERRUPT_REGS);

    #pragma warn - par

    void interrupt new_keyboard(INTERRUPT_REGS)

    {

    static int ah,al,i;

    ah=ax>>8; al=ax&0xff;

    if(ah==KBD_FUNCTION&&al==F12)

    {

    hien_tb_gio=-hien_tb_gio;

    if(hien_tb_gio==1)

    {

    for(i=0;i<28;++i)

    buf_luu=p_mh[VT+i];

    gio = (int) (*t_time/65543);

    du = *t_time%65543;

    phut=(int)(du/1092);

    du=du%1092;

    giay=(int)(du/18);

    buf_time[12]=gio/10+48;

    buf_time[14]=gio%10+48;

    buf_time[18]=phut/10+48;

    buf_time[20]=phut%10+48;

    buf_time[24]=giay/10+48;

    buf_time[26]=giay%10+48;

    for(i=0;i<28;++i)

    p_mh[VT+i]=buf_time;

    }

    else for(i=0;i<28;++i)

    p_mh[VT+i]=buf_luu;

    }

    }

    #pragma warn . par

    void main(void)

    {

    unsigned keep_size;

    disable();

    setvect(KBD_INT,new_keyboard);

    enable();

    keep_size = _SS- _psp +(_SP/16) +50;

    keep(0,keep_size);

    }


    /* Chuc vui ve! */
     
Đang tải...