Newsgroups: fj.lang.c
Path: galaxy.trc.rwcp.or.jp!sparky!uunet!sun-barr!sh.wide!wnoc-tyo-news!cs.titech!miyakawa
From: miyakawa@cs.titech.ac.jp (MIYAKAWA Shin)
Subject: Re: a.out to motorola `S' format
In-Reply-To: masuda@rokugo.CO.JP's message of 11 Jun 92 02: 34:42 GMT
Message-ID: <MIYAKAWA.92Jun11154554@viper.cs.titech.ac.jp>
Sender: news@cs.titech.ac.jp (Usenet News System)
Organization: Department of Computer Science, Tokyo Institute of Technology
References: <MASUDA.92Jun11113442@lachesis.rokugo.CO.JP>
Date: Thu, 11 Jun 1992 06:45:54 GMT
Lines: 109
Xref: galaxy.trc.rwcp.or.jp fj.lang.c:1189
X-originally-archived-at: http://galaxy.rwcp.or.jp/text/cgi-bin/newsarticle2?ng=fj.lang.c&nb=1189&hd=a
X-reformat-date: Mon, 18 Oct 2004 15:18:22 +0900
X-reformat-comment: Tabs were expanded into 4 column tabstops by the Galaxy's archiver. See http://katsu.watanabe.name/ancientfj/galaxy-format.html for more info.

wanted$B$NJ}$O$H$j$5$2$^$7$?!#(B

In article <MASUDA.92Jun11113442@lachesis.rokugo.CO.JP> 
masuda@rokugo.CO.JP (Yoshihiro Masuda) writes:
> $B<B$O!"(Bgcc $B$G!"%3%s%Q%$%k$7$?(B a.out $B$r!"%b%H%m!<%i$N(B S format $B$K(B
> $BD>$7$?$$$N$G$9$,!"$=$NMM$J%D!<%k$r(B{$B;}$C$F$$$k(B|$BCN$C$F$$$k(B}$BJ}8+$((B
> $B$^$;$s$G$7$g$&$+(B?

$B4J0W%D!<%k$J$i$9$0$G$9$N$G(B....$B$H$$$&$o$1$G!#(B
$B$I$s$J5!<o$G$b(Ba.out.h$B$r$h$a$P$9$0$D$/$l$^$9$h!#(B
(MACH$B%Y!<%9$@$H$A$,$&$1$I(B)

------ $B$3$3$+$i(B ------
/*
$Id: bin2sr.c,v 1.1 90/08/07 18:11:19 miyakawa Exp Locker: miyakawa $
convert a.out file to S-record
*/

#include <stdio.h>
#include <a.out.h>

#defineTRUE1
#define FALSE0

FILE*fp;
charfname[255];
structexece;

main( argc, argv )
int   argc;
char  *argv[];
{

if( argc < 2 )
 strcpy(fname,"a.out");
else
strcpy(fname,argv[1]);
if( ( fp = fopen(fname, "r" ) ) == NULL ) {
fprintf( stderr, "%s: cannot open\n", fname );
exit( 1 );
}
fread(&e, sizeof(e), 1, fp);
if ((e.a_magic != ZMAGIC) && (e.a_magic != OMAGIC)) {
fprintf( stderr, "%s: is not a.out format\n", fname );
exit( 1 );
}
makesr();
}

usage()
{
fprintf( stderr, "Usage: %s [filename]\n" );
exit(1);
}

makesr()
{
inti, c, csum;
longadd;

add = e.a_entry;
while( TRUE ) {
printf( "S224%06lX", add );
csum = (( add >> 16 ) & 0xff ) + (( add >> 8 ) & 0xff )
     + ( add & 0xff )       + 0x24;
for( i = 0; i < 32; i++ ) {
if( (c = fgetc(fp)) != EOF ) {
printf( "%02X", c );
csum += ( c & 0xff );
} else {
do {
printf( "00" );
} while( ++i < 32 );
csum = 0xff - ( csum & 0xff );
printf( "%02X\n", csum );
goto end;
}
}
csum = 0xff - ( csum & 0xff );
printf( "%02X\n", csum );
add += 0x20;
}
end:
printf( "S9030000FC\n" );
fclose( fp );
}

---- $B0J>e(B ----

> $B2?$r$d$j$?$$$N$+$H8@$&$H!"@)8fMQ$N@lMQ%O!<%I$rAH$_9~$s$@%\!<%I%3(B
> $B%s%T%e!<%?$N%=%U%H$r(B gcc $B$r;H$C$F:n$j$?$$$N$G$9!#(B

$B$d$C$F$^$7$?!#$H$$$&$+!"$$$^$G$b$d$C$F$^$9!#(B

> $B%G%P%C%/CJ3,$G$O(B gdb $BEy$G%7%_%e%l!<%H$7$J$,$i$d$l$P!"$=$N$^$^$G$b(B
> $BLdBjL5$$$N$G$9$,!":G=*E*$K$O(B ROM $B2=$7$J$1$l$P$J$j$^$;$s!#(B

$BLdBj$O(BROM$B2=$9$kNN0h$K(Btext$B%;%0%a%s%H$r$b$C$F$f$-!"(B
bss$B$O(BRAM$B$K%m%1!<%H$7$J$-$c$$$1$J$$$3$H$G$9$h$M!#(B
$B;dC#$O(B.s$B%U%!%$%k$KE,Ev?t(Bnop$B$r$$$l$k%D!<%k$r;HMQ$7$F(B
$B$3$NLdBj$r2sHr$7$^$7$?$,!"$b$C$H%(%l%,%s%H$JJ}K!$,$"$k$N$G$7$g$&$+(B?

$BEl5~9)6HBg3X(B $BM}9)3X8&5f2J(B $B>pJs9)3X@l96(B
$B9)3XIt(B $B>pJs9)3X2J(B $BJF:j8&(B $B=jB0(B
$B5\@n(B  $B?8(B (Miyakawa Shin)
miyakawa@cs.titech.ac.jp



