荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Peter (小飞侠), 信区: Program
标  题: 瑞星RAV的KEY盘制作源程序(转寄)
发信站: BBS 荔园晨风站 (Thu Jan 21 21:07:07 1999), 转信


不是我特想,是它自己有了 :) 这个瑞星为啥这样呢?是有意为D板放一马?
下载下来换行居然是只有0A而不是0D0A :( 还要再Edit读一下再存。

/*****************************************************************
*                                                               *
*     kEy diSc mAkeR Of rUixINg - [mKRs.c - mKRs.cOm]           *
*     cOPyrIGhT Wringer(C) 1997.                                *
*                                                               *
*     mAkE by miCrO$ofT c : cL  -AT -Ox     mKRs.c              *
*             bORlAnD c   : bCc -mt -Ox -lt mKRs.c              *
*                                                               *
*****************************************************************/

    #include <stdio.h>
    #include <conio.h>
    #include <bios.h>

    typedef unsigned char bYTe;
    bYTe rBuFf[512];
    bYTe BuFf[9][4];
    bYTe __far *N;
    struct diskinfo_t dI;

/*****************************************************************/

char mKJiNg(void)
{
    int J;
    * (N + 0) = 0x02;
    * (N + 1) = 0x12;

    dI.track  = 0;
    dI.sector = dI.nsectors = 1;
    dI.buffer = rBuFf;

    for (J=0; J<5; J++) {
        if(1==_bios_disk(2, &dI)) /* read boot sector */
        break;
    }
    if(J >= 5) {
        printf("\nError reading drive %c!\n", 'A'+ dI.drive);
        printf("Please insert key diskette into drive %c\n",
               'A' + dI.drive);
        return -1;
    }

    * (N + 0) = 0x00;
    * (N + 1) = 0x09;
    * (N + 4) = 0x6c;
    * (N + 5) = 0xf6;

    dI.track  = 79;
    dI.buffer = BuFf;

    for (J=0; J<3; J++) {
        if(1==_bios_disk(5, &dI))    /* format */
            break;
    }
    if(J >= 3) {
        printf("\nDisk Error in Format!\n");  /* cannot format */
            return -1;
    }

    * (N + 0) = 0x02;
    * (N + 1) = 0x12;
    * (N + 4) = 0x50;

    printf("\nSuccess!\n\n");
    return 0;
}

/*****************************************************************/

bYTe main(int aRGc, char *aRGv[])
{
    int J;
    for(J=0; J<9; J++) {
        BuFf[J][0] = 79;
        BuFf[J][1] = 0;
        BuFf[J][2] = 1 + J;
        BuFf[J][3] = 2;
    }
    BuFf[3][2] = 167;
    BuFf[4][2] = 209;
    BuFf[5][2] = 188;
    BuFf[6][2] = 14;

    N = *((bYTe __far * __far *)(0x1e*4)) + 3;
    dI.drive = (aRGc>1) && ((aRGv[1][0] | 32) == 'b');
    dI.head  = 0;

    while (1) {
        printf("\nPlease insert the target diskette into drive %c:\n",
               'A'+ dI.drive);
        printf("Press any key when ready or ESC to cancel ......\n");
        if(27==getch()) break;
        mKJiNg();
    }
    return 0;
}

/*****************************************************************
*                                                               *
*     kEy diSc mAkeR Of rUixINg - [eOf]                         *
*                                                               *
*****************************************************************/

--
※ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 192.168.1.3]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店