🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fj.lang.c
Article #4546

Re: a.out to motorola `S' format

#4546
From: MIYAKAWA Shin
Date: Thu, 11 Jun 1992 06:45
106 lines
3511 bytes
wanted$@$NJ}$O$H$j$5$2$^$7$?!#(J

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

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

------ $@$3$3$+$i(J ------
/*
$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>

#define	TRUE	1
#define FALSE	0

FILE	*fp;
char	fname[255];
struct	exec	e;

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()
{
	int	i, c, csum;
	long	add;

	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 );
}

---- $@0J>e(J ----

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

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

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

$@LdBj$O(JROM$@2=$9$kNN0h$K(Jtext$@%;%0%a%s%H$r$b$C$F$f$-!"(J
bss$@$O(JRAM$@$K%m(J$@%1!<%H$7$J$-$c$$$1$J$$$3$H$G$9$h$M!#(J
$@;dC#$O(J.s$@%U%!%$%k$KE,Ev?t(Jnop$@$r$$$l$k%D!<%k$r;HMQ$7$F(J
$@$3$NLdBj$r2s(J$@Hr$7$^$7$?$,!"$b$C$H%(%l%,%s%H$JJ}K!$,$"$k$N$G$7$g$&$+(J?

			$@El5~9)6HBg3X(J $@M}9)3X8&5f2J(J $@>pJs9)3X@l96(J
				$@9)3XIt(J $@>pJs9)3X2J(J $@JF:j8&(J $@=jB0(J
				$@5\@n(J  $@?8(J (Miyakawa Shin)
				miyakawa@cs.titech.ac.jp
Technical Details
Message-ID: <MIYAKAWA.92Jun11154554@viper.cs.titech.ac.jp>
Path: arc1-ca.pugleaf.net!sparky!uunet!sun-barr!sh.wide!wnoc-tyo-news!cs.titech!miyakawa
References: <MASUDA.92Jun11113442@lachesis.rokugo.CO.JP>

Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS
X-Google-Thread: 106434,2e1aa724c9b7f39d
X-Google-Attributes: gid106434,public
X-Google-ArrivalTime: 1992-06-10 19:28:48 PST
Newsgroups: fj.lang.c
Path: arc1-ca.pugleaf.net!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