Article View: mod.computers.masscomp
Article #102asmprt - print intermixed C and generated assembly
From: masscomp-request
Date: Mon, 09 Mar 1987 18:49
Date: Mon, 09 Mar 1987 18:49
164 lines
4049 bytes
4049 bytes
[I could not get this to work with RTU 3.1 and the C compiler version 1.1
on the MC5700, MC5400, MC5500-PEP. Perhaps it will be useful to someone,
though. -- sob]
#!/bin/sh
echo 'Start of pack.out, part 01 of 01:'
echo 'x - Makefile'
sed 's/^X//' > Makefile << '/'
Xasmprt: exp.i asmprt.o
X cc asmprt.o -o asmprt -lPW
Xexp.i: exp
X regcmp exp
Xasmprt.o: asmprt.c
X cc -c asmprt.c
Xclean:
X rm -f asmprt exp.i asmprt.o
/
echo 'x - asmprt.1'
sed 's/^X//' > asmprt.1 << '/'
X.TH ASMPRT
X.SH NAME
Xasmprt - printout C program with generated assembler code intermixed
X.SH SYNOPSIS
Xasmprt filename
X.SH DESCRIPTION
Xasmprt prints out a C program along with it's generated assembly
Xlanguage code. Input can be either a ".s" file as produced by
X"cc -S" or a listing file as produced by "cc -S" followed by "as -s".
XOutput is to stdout.
X.BUGS
XOnly works with Masscomp's C Compiler. Only tested with MC5500 under
XRTU-3.0a and RTU-3.1a.
X.SH AUTHOR
XBruce Karsh
/
echo 'x - asmprt.c'
sed 's/^X//' > asmprt.c << '/'
X#include "exp.i"
X#include <stdio.h>
X
X/*
X** amsprt - print out intermixed C and Assembler code.
X*/
X
Xint cline,oldcline;
Xchar cname[100],oldcname[100];
XFILE *sfile,*cfile;
X
Xmain(argc,argv)
Xint argc;
Xchar *argv[];
X{
Xcfile=NULL; cname[0]=0; oldcname[0]=0;
X
X/* Parse args */
X
Xif(argc != 2)
X {
X fputs("Usage asmprt filename\n",stderr);
X exit(1);
X }
X
X/* Open the .s file. */
X
Xsfile = fopen(argv[1],"r");
Xif(sfile == NULL)
X {
X fputs("Can't open file ",stderr); fputs(argv[1],stderr); fputs("\n",stderr);
X exit(2);
X }
X
Xfor(;;)
X {
X
X /* Copy the .s file to standard output until a position comment
X appears in the .s file. */
X
X if(0==copytillposition())exit(0);
X
X /* If the position comment changes the name of the .c file,
X open the new file, and close the old file. */
X
X if(strcmp(oldcname,cname)!=0)
X {
X strcpy(oldcname,cname);
X if(cfile != NULL)
X fclose(cfile);
X cfile=fopen(cname,"r");
X if(sfile == NULL)
X {
X fputs("Can't open file ",stderr); fputs(cname,stderr); fputs("\n",stderr);
X exit(3);
X }
X oldcline=1;
X }
X copyfile(oldcline,cline);
X oldcline=cline+1;
X }
X}
X/*------------------------------------------*/
Xcopytillposition()
X{
Xchar line[100];
Xfor(;;)
X {
X if(fgets(line,80,sfile)==NULL)return(0);
X fputs(line,stdout);
X if(testpos(line))break;
X }
Xreturn(1);
X}
Xcopyfile(start,end)
Xint start,end;
X{
Xint i;
Xchar line[100];
Xfor(i=start;i<=end;i++)
X {
X if(fgets(line,80,cfile)==NULL)return(0);
X fputs(line,stdout);
X }
Xreturn(1);
X}
Xtestpos(line)
Xchar line[];
X{
Xchar linenum[80],file[80];
Xif(regex(Rlineandfile,line,linenum,file,0))
X {
X strcpy(cname,file);
X cline=atoi(linenum);
X return(1);
X }
Xelse if(regex(Rline,line,linenum,0))
X {
X cline=atoi(linenum);
X return(1);
X }
Xelse if(regex(xRlineandfile,line,linenum,file,0))
X {
X strcpy(cname,file);
X cline=atoi(linenum);
X return(1);
X }
Xelse if(regex(xRline,line,linenum,0))
X {
X cline=atoi(linenum);
X return(1);
X }
Xelse
X {
X return(0);
X }
X}
/
echo 'x - exp'
sed 's/^X//' > exp << '/'
XRlineandfile " | *([^ ]*)$0 *\"([^ ]*)$1\""
XRline " | *([^ ]*)$0"
XxRlineandfile " | *([^ ]*)$0 *\"([^ ]*)$1\""
XxRline " | *([^ ]*)$0"
/
echo 'Part 01 of pack.out complete.'
exit
Technical Details
Message-ID:
<2968@soma.bcm.tmc.edu>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!water!watnot!watmath!clyde!cbatt!soma!masscomp-requestShow Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: arc1-ca.pugleaf.net!utzoo!utgpu!water!watnot!watmath!clyde!cbatt!soma!masscomp-request From: masscomp-request@soma.UUCP Newsgroups: mod.computers.masscomp Subject: asmprt - print intermixed C and generated assembly Message-ID: <2968@soma.bcm.tmc.edu> Date: Mon, 9-Mar-87 13:49:58 EST Article-I.D.: soma.2968 Posted: Mon Mar 9 13:49:58 1987 Date-Received: Tue, 10-Mar-87 04:36:24 EST Sender: masscomp@soma.bcm.tmc.edu Lines: 164 Approved: masscomp@soma.bcm.tmc.edu