home *** CD-ROM | disk | FTP | other *** search
- /*
- * trpy.c
- *
- */
-
- #pragma inline
- #include <stdio.h>
-
- //#define Offset 0x15b
- #define Length 15976
-
- unsigned char ifile[18] = "py.dat";
- unsigned char ofile[18] = "chpy.com";
-
- unsigned Offset = 0xc8c;
- unsigned char Buffer[16000];
-
- void ReadFile()
- {
- asm {
- mov ax, 3d00h
- lea dx, ifile
- int 21h
- jc rdFail
- mov bx, ax
- mov ah, 3fh
- mov cx, Length
- lea dx, Buffer
- int 21h
- jc rdFail
- mov ah, 3eh
- int 21h
- jc rdFail
- }
- rdOk: return;
- rdFail: printf("File %s open error !\n", ifile);
- exit(1);
- }
-
- void WriteFile()
- {
- asm {
- mov ax, 3d01h
- lea dx, ofile
- int 21h
- jc wrFail1
- mov bx, ax
- mov ax, 4200h
- xor cx, cx
- mov dx, Offset
- int 21h
- jc wrFail2
- mov ah, 40h
- lea dx, Buffer
- mov cx, Length
- int 21h
- jc wrFail3
- mov ah, 3eh
- int 21h
- jc wrFail4
- }
- wrOk: return;
- wrFail1: printf("File %s open error !\n", ofile);
- return;
- wrFail2: printf("File %s seek error !\n", ofile);
- return;
- wrFail3: printf("File %s write error !\n", ofile);
- return;
- wrFail4: printf("File %s close error !\n", ofile);
-
- }
-
- void main(int argc, char *argv[])
- {
- if (argc == 2) Offset = atoi(argv[1]);
- printf("Transfer PyCode to offset %x hex ...\n", Offset);
- ReadFile(); WriteFile();
- }
-