📄 complong.c
字号:
/* complong.c
lcompare -> addr1 & addr2 increment
lcompare_1 -> addr1 stays same, addr2
All have same...
Entry:
Exit: <> if OK.
*/
#include <stdtypes.h>
#include <clib1.h>
#include <string.h>
#include <stdio.h>
int lcompare(LONG length, VOID *addr1, VOID *addr2, \
CHAR *err_string, WORD max_err_length)
/* Long compare both addresses increment.
*/
{
register VLONG *sptr = addr1, *dptr = addr2;
register LONG counter = length/4, sbdata, wsdata;
CHAR local_str[80];
while( counter )
{
sbdata = *sptr++;
wsdata = *dptr++;
if ( sbdata != wsdata )
{
sprintf( local_str, "LONG miscompare offset $%8.8lx bytes.\n", length - (counter * 4) );
strmcat( err_string, max_err_length, local_str );
sprintf( local_str, "SB: $%8.8lx, WS: $%8.8lx.\n", sbdata, wsdata );
strmcat( err_string, max_err_length, local_str );
return(0);
}
counter--;
}
return(1);
}
int lcompare_1( LONG length, VOID *addr1, VOID *addr2, \
CHAR *err_string, WORD max_err_length)
/* Long compare, addr1 does not increment.
*/
{
register VLONG *sptr = addr1, *dptr = addr2;
register LONG counter = length/4;
register LONG sbdata, wsdata;
CHAR local_str[80];
while( counter )
{
sbdata = *sptr;
wsdata = *dptr++;
if ( sbdata != wsdata )
{
sprintf( local_str, "LONG miscompare offset $%8.8lx bytes.\n", length - (counter * 4) );
strmcat( err_string, max_err_length, local_str );
sprintf( local_str, "SB: $%8.8lx, WS: $%8.8lx.\n", sbdata, wsdata );
strmcat( err_string, max_err_length, local_str );
return(0);
}
counter--;
}
return(1);
}
int physical_lcompare(LONG length, UINT32 addr1, UINT32 addr2, \
CHAR *err_string, WORD max_err_length)
/* Long compare both addresses increment.
*/
{
register UINT32 counter = length/4;
register UINT32 sbdata, wsdata;
CHAR local_str[80];
while( counter )
{
sbdata = xpeek32(addr1);
addr1 += 4;
wsdata = xpeek32(addr2);
addr2 += 4;
if ( sbdata != wsdata )
{
sprintf( local_str, "LONG miscompare offset $%8.8lx bytes.\n", length - (counter * 4) );
strmcat( err_string, max_err_length, local_str );
sprintf( local_str, "SB: $%8.8lx, WS: $%8.8lx.\n", sbdata, wsdata );
strmcat( err_string, max_err_length, local_str );
return(0);
}
counter--;
}
return(1);
}
int physical_lcompare_1( LONG length, UINT32 addr1, UINT32 addr2, \
CHAR *err_string, WORD max_err_length)
/* Long compare, addr1 does not increment.
*/
{
register UINT32 counter = length/4;
register UINT32 sbdata, wsdata;
CHAR local_str[80];
while( counter )
{
sbdata = xpeek32(addr1);
wsdata = xpeek32(addr2);
addr2 += 4;
if ( sbdata != wsdata )
{
sprintf( local_str, "LONG miscompare offset $%8.8lx bytes.\n", length - (counter * 4) );
strmcat( err_string, max_err_length, local_str );
sprintf( local_str, "SB: $%8.8lx, WS: $%8.8lx.\n", sbdata, wsdata );
strmcat( err_string, max_err_length, local_str );
return(0);
}
counter--;
}
return(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -