资源简介
HQFC-A 微机接口 V1.1.0.5(微型计算机系统实验配套软件)
代码片段和文件信息
/* biossums.c --- written by Eike W. */
#include
#include
typedef unsigned char byte;
void check( int value char* message );
#define LEN_BIOS_DATA 0x10000
#define MAX_OFFSET (LEN_BIOS_DATA - 1)
#define BIOS_OFFSET 0xFFFF
long chksum_bios_get_offset( byte* data long offset );
byte chksum_bios_calc_value( byte* data long offset );
byte chksum_bios_get_value( byte* data long offset );
void chksum_bios_set_value( byte* data long offset byte value );
#define _32__LEN 9
#define _32__CHKSUM 10
#define _32__MINHDR 16
long chksum__32__get_offset( byte* data long offset );
byte chksum__32__calc_value( byte* data long offset );
byte chksum__32__get_value( byte* data long offset );
void chksum__32__set_value( byte* data long offset byte value );
#define _MP__LEN 8
#define _MP__CHKSUM 10
#define _MP__MINHDR 16
long chksum__mp__get_offset( byte* data long offset );
byte chksum__mp__calc_value( byte* data long offset );
byte chksum__mp__get_value( byte* data long offset );
void chksum__mp__set_value( byte* data long offset byte value );
#define PCMP_baseLEN 4
#define PCMP_CHKSUM 7
#define PCMP_EXT_LEN 40
#define PCMP_EXT_CHKSUM 42
#define PCMP_MINHDR 42
long chksum_pcmp_get_offset( byte* data long offset );
byte chksum_pcmp_calc_value( byte* data long offset );
byte chksum_pcmp_get_value( byte* data long offset );
void chksum_pcmp_set_value( byte* data long offset byte value );
byte bios_data[LEN_BIOS_DATA];
int main( int argc char* argv[] ) {
FILE* stream;
long offset tmp_offset;
byte cur_val = 0 new_val = 0;
int hits;
if( argc != 2 ) {
printf( “Error. Need a file-name as an argument.\n“ );
exit( EXIT_FAILURE );
}
if(( stream = fopen( argv[1] “rb“ )) == NULL ) {
printf( “Error opening %s for reading.\n“ argv[1] );
exit( EXIT_FAILURE );
}
if( fread( bios_data 1 LEN_BIOS_DATA stream ) < LEN_BIOS_DATA ) {
printf( “Error reading 64KBytes from %s.\n“ argv[1] );
fclose( stream );
exit( EXIT_FAILURE );
}
fclose( stream );
hits = 0;
offset = 0L;
while( (tmp_offset = chksum__32__get_offset( bios_data offset )) != -1L ) {
offset = tmp_offset;
cur_val = chksum__32__get_value( bios_data offset );
new_val = chksum__32__calc_value( bios_data offset );
printf( “\n\nPCI-Bios header at: 0x%4lX\n“ offset );
printf( “Current checksum: 0x%02X\n“ cur_val );
printf( “Calculated checksum: 0x%02X “ new_val );
hits++;
}
if( hits == 1 && cur_val != new_val ) {
printf( “Setting checksum.“ );
chksum__32__set_value( bios_data offset new_val );
}
if( hits >= 2 ) {
printf( “Multiple PCI headers! No checksum set.“ );
}
if( hits ) {
printf( “\n“ );
}
hits = 0;
offset = 0L;
while( (tmp_offset = chksum__mp
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-06-01 22:28 Bin\
目录 0 2019-06-01 22:28 Bin\ASM\
文件 20634 2019-06-01 22:28 Bin\ASM\DEBUG.EXE
文件 2855 2019-06-01 22:28 Bin\ASM\DEBUG.PIF
文件 90720 2019-06-01 22:28 Bin\ASM\DEBUG32.EXE
文件 2855 2019-06-01 22:28 Bin\ASM\DEBUG32.PIF
文件 48 2019-06-01 22:28 Bin\ASM\enter.txt
文件 364544 2019-06-01 22:28 Bin\ASM\li
文件 49152 2019-06-01 22:28 Bin\ASM\MASM.EXE
文件 9287 2019-06-01 22:28 Bin\ASM\ML.ERR
文件 388608 2019-06-01 22:28 Bin\ASM\ML.EXE
文件 24 2019-06-01 22:28 Bin\ASM\RunBat.bat
文件 136018 2019-06-01 22:28 Bin\ASM\TASM.EXE
文件 184320 2019-06-01 22:28 Bin\ASM\TASM32.EXE
文件 773468 2019-06-01 22:28 Bin\ASM\Td.exe
文件 2855 2019-06-01 22:28 Bin\ASM\Td.PIF
目录 0 2019-06-01 22:28 Bin\BC\
文件 672150 2019-06-01 22:28 Bin\BC\BCC.EXE
文件 22212 2019-06-01 22:28 Bin\BC\DPMILOAD.EXE
文件 24932 2019-06-01 22:28 Bin\BC\DPMIMEM.DLL
文件 120853 2019-06-01 22:28 Bin\BC\RTM.EXE
文件 46 2019-06-01 22:28 Bin\BC\RunBatPath.bat
文件 129266 2019-06-01 22:28 Bin\BC\TASM.EXE
文件 120704 2019-06-01 22:28 Bin\BC\TDUMP.EXE
文件 150569 2019-06-01 22:28 Bin\BC\Tli
文件 120426 2019-06-01 22:28 Bin\BC\Tli
目录 0 2019-06-01 22:28 Bin\C++\
文件 682545 2019-06-01 22:28 Bin\C++\C1.DLL
文件 1206323 2019-06-01 22:28 Bin\C++\C1XX.DLL
文件 737329 2019-06-01 22:28 Bin\C++\C2.DLL
文件 51200 2019-06-01 22:27 Bin\C++\CL.EXE
............此处省略2306个文件信息
评论
共有 条评论