home *** CD-ROM | disk | FTP | other *** search
/ Popular Software (Premium Edition) / mycd.iso / DICT / DFKC / ZWH / CHCS / TRPY.C < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-12  |  1.7 KB  |  79 lines

  1. /*
  2.  * trpy.c
  3.  *
  4.  */
  5.  
  6. #pragma   inline
  7. #include  <stdio.h>
  8.  
  9. //#define   Offset 0x15b
  10. #define   Length 15976
  11.    
  12.    unsigned char ifile[18] = "py.dat";
  13.    unsigned char ofile[18] = "chpy.com";
  14.    
  15.    unsigned      Offset = 0xc8c;
  16.    unsigned char Buffer[16000];
  17.  
  18. void ReadFile()
  19. {
  20.    asm {
  21.         mov     ax, 3d00h
  22.         lea     dx, ifile
  23.         int     21h
  24.         jc      rdFail
  25.         mov     bx, ax
  26.         mov     ah, 3fh
  27.         mov     cx, Length
  28.         lea     dx, Buffer
  29.         int     21h
  30.         jc      rdFail
  31.         mov     ah, 3eh
  32.         int     21h
  33.         jc      rdFail
  34.    }
  35.    rdOk:        return;
  36.    rdFail:      printf("File %s open error !\n", ifile);
  37.                 exit(1);
  38. }
  39.  
  40. void WriteFile()
  41. {
  42.    asm {
  43.        mov      ax, 3d01h
  44.        lea      dx, ofile
  45.        int      21h
  46.        jc       wrFail1
  47.        mov      bx, ax
  48.        mov      ax, 4200h
  49.        xor      cx, cx
  50.        mov      dx, Offset
  51.        int      21h
  52.        jc       wrFail2
  53.        mov      ah, 40h
  54.        lea      dx, Buffer
  55.        mov      cx, Length
  56.        int      21h
  57.        jc       wrFail3
  58.        mov      ah, 3eh
  59.        int      21h
  60.        jc       wrFail4
  61.    }
  62.    wrOk:        return;
  63.    wrFail1:     printf("File %s open error !\n", ofile);
  64.                 return;
  65.    wrFail2:     printf("File %s seek error !\n", ofile);
  66.                 return;
  67.    wrFail3:     printf("File %s write error !\n", ofile);
  68.                 return;
  69.    wrFail4:     printf("File %s close error !\n", ofile);
  70.  
  71. }
  72.  
  73. void main(int argc, char *argv[])
  74. {
  75.    if (argc == 2) Offset = atoi(argv[1]);
  76.    printf("Transfer PyCode to offset %x hex ...\n", Offset);
  77.    ReadFile();  WriteFile();
  78. }
  79.