From 7ed3405198812c7b5e68a11ff1d590c588bc8f8f Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Thu, 8 Mar 2001 21:15:32 +0000 Subject: [PATCH] Added snippet to dump BIOS. --- BIOSdet/dump.c | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 BIOSdet/dump.c diff --git a/BIOSdet/dump.c b/BIOSdet/dump.c new file mode 100644 index 0000000..a5eb0b4 --- /dev/null +++ b/BIOSdet/dump.c @@ -0,0 +1,88 @@ +/************************************************************************ + T h e O p e n W i n d o w s P r o j e c t + ------------------------------------------------------------------------ + + Filename : dump.c + Version : 0.01 + Author(s) : Natalia Portillo + + Component : OWP DOS subsystem - System information command + + --[ Description ]------------------------------------------------------- + + Dump a 128Kb PC BIOS to file. + + --[ History ] ---------------------------------------------------------- + + 0.01: Original file by Natalia Portillo. + + --[ How to compile ]---------------------------------------------------- + + Recommended compiler Borland Turbo C++ 1.01 + http://community.borland.com/museum + + --[ Where to get help/information ]------------------------------------- + + This archaic and abandoned software is opensource with no warranty + or help of any kind. + For inquiries contact claunia@claunia.com. + + --[ License ] ---------------------------------------------------------- + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License,or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not,write to the Free Software + Foundation,Inc.,59 Temple Place - Suite 330,Boston,MA 02111-1307,USA. + + ------------------------------------------------------------------------ + Copyright (c) 2000 The Open Windows Project +*************************************************************************/ +#include +#include + +main(){ + unsigned char far *bios_data = MK_FP (0x0000, 0x0000); //Get address of the BIOS data + unsigned short data_size; //For the BIOS data size + unsigned short temp=0; //For temporary numbers + FILE *feo; + long i,j; + + feo=fopen("bios.bin","w+"); + for(j=0x0F000;j<=0x0F000;j++) + { + for(i=0x0E000;i<=0x0FFFF;i++) + { + bios_data=MK_FP(j,i); + fputc(*bios_data,feo); + } + } + for(i=0x00000;i<=0x0FFFF;i++) + { + bios_data=MK_FP(0x0F001,i); + fputc(*bios_data,feo); + } + for(i=0x00000;i<=0x0DC43;i++) + { + bios_data=MK_FP(0x0F002,i); + fputc(*bios_data,feo); + } +} + +/* +0000E_00000h - 0000F_0FFFFh 128KB System ROM BIOS +00010_00000h - 0FEBF_0FFFFh Main memory (Maximum address depends on total memory installed in the system.) +0FEC0_00000h - 0FECF_0FFFFh APIC I/O unit +0FED0_00000h - 0FEDF_0FFFFh Reserved for memory-mapped I/O devices +0FEE0_00000h - 0FEEF_0FFFFh APIC Local Unit +0FEF0_00000h - 0FFFD_0FFFFh Reserved for memory-mapped I/O devices +0FFFE_00000h - 0FFFF_0FFFFh 128KB Initialization ROM +*/