summaryrefslogtreecommitdiffstats
path: root/TOOLS
diff options
context:
space:
mode:
authornick <nick@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-10-22 07:15:04 +0000
committernick <nick@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-10-22 07:15:04 +0000
commiteee00dfabe9f5f90d83fb68c05b77fec55907286 (patch)
treed41056e7a96c73506f416cc0b2f7f46078d8615a /TOOLS
parent50b868b500f9fa1cd87247a63b59647e693ee691 (diff)
downloadmpv-eee00dfabe9f5f90d83fb68c05b77fec55907286.tar.bz2
mpv-eee00dfabe9f5f90d83fb68c05b77fec55907286.tar.xz
re-eng tool
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@2356 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'TOOLS')
-rw-r--r--TOOLS/bios2dump.c55
-rwxr-xr-xTOOLS/c1
2 files changed, 56 insertions, 0 deletions
diff --git a/TOOLS/bios2dump.c b/TOOLS/bios2dump.c
new file mode 100644
index 0000000000..5c9bc5a1ff
--- /dev/null
+++ b/TOOLS/bios2dump.c
@@ -0,0 +1,55 @@
+/*
+ bios2dump.c - Was designed to extract BIOS of your PC and save it to file.
+ Usage: as argument requires DOS interrupt number in hexadecimal form.
+ as output - will write 64KB file which will named: SSSS_OOOO.intXX
+ where: SSSS - segment of BIOS interrupt handler
+ OOOO - offset of BIOS interrupt handler
+ XX - interrupt number which was passed as argument
+ Licence: GNU GPL v2
+ Copyright: Nick Kurshev <nickols_k@mail.ru>
+*/
+#include <stdio.h>
+#include <stdlib.h>
+
+int main( int argc, char *argv[])
+{
+ FILE * fd_mem, *fd_out;
+ unsigned short int_seg,int_off;
+ unsigned long bios_off;
+ int int_no;
+ size_t i;
+ char outname[80];
+ unsigned char ch;
+ if(argc < 2)
+ {
+ printf("Usage: %s int_no(in hex)\n",argv[0]);
+ return EXIT_FAILURE;
+ }
+ int_no = strtol(argv[1],NULL,16);
+ if(!(fd_mem = fopen("/dev/mem","rb")))
+ {
+ perror("Can't open file - /dev/mem");
+ return EXIT_FAILURE;
+ }
+ fseek(fd_mem,int_no*4,SEEK_SET);
+ fread(&int_off,sizeof(unsigned short),1,fd_mem);
+ fread(&int_seg,sizeof(unsigned short),1,fd_mem);
+ sprintf(outname,"%04X_%04X.int%02X",int_seg,int_off,int_no);
+ if(!(fd_out = fopen(outname,"wb")))
+ {
+ perror("Can't open file - /dev/mem");
+ fclose(fd_mem);
+ return EXIT_FAILURE;
+ }
+ bios_off = (int_seg << 4) + int_off;
+ bios_off &= 0xf0000;
+ fseek(fd_mem,bios_off,SEEK_SET);
+ for(i=0;i<0x10000;i++)
+ {
+ fread(&ch,1,1,fd_mem);
+ fwrite(&ch,1,1,fd_out);
+ }
+ fclose(fd_out);
+ fclose(fd_mem);
+ return EXIT_SUCCESS;
+} \ No newline at end of file
diff --git a/TOOLS/c b/TOOLS/c
index 9733123858..c96750ac55 100755
--- a/TOOLS/c
+++ b/TOOLS/c
@@ -1,3 +1,4 @@
+gcc bios2dump.c -o bios2dump
gcc subreader.c -o subreader
gcc movinfo.c -o movinfo