home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
gdead.berkeley.edu
/
gdead.berkeley.edu.tar
/
gdead.berkeley.edu
/
pub
/
cad-tools
/
ciftomann.tar
/
CD
/
gencif.c
< prev
next >
Wrap
C/C++ Source or Header
|
1988-01-28
|
4KB
|
190 lines
/*
* gencif.c
*
* Copyright -C- 1981 Giles Billingsley
* sccsid "%W% %G%"
*
* KIC is a graphics editor that was developed by the integrated
* circuits group of the Electronics Research Laboratory and the
* Department of Electrical Engineering and Computer Sciences at
* the University of California, Berkeley, California. The program
* KIC is available free of charge to any interested party.
* The sale, resale, or use of this program for profit without the
* express written consent of the Department of Electrical Engineering
* and Computer Sciences, University of California, Berkeley, California,
* is forbidden.
*/
/*
* CIF file generator.
* Here's an example.
* The following code
* {
* FileDesc = fopen("CIFFile","w");
* GenBeginSymbol(FileDesc,3,1,1);
* GenComment(FileDesc,"This is easy.");
* GenBox(FileDesc,1,2,3,4,1,0);
* GenEndSymbol(FileDesc);
* GenEnd(FileDesc);
* fclose(FileDesc;
* }
*
* generates
*
* DS 3 1 1;
* (This is easy.);
* B 1 2 3 4;
* DF;
* E
*
*/
#include <stdio.h>
#include "macros.h"
#include "cd.h"
GenEnd(FileDesc)
FILE *FileDesc;
{
fprintf(FileDesc,"E\n");
}
GenBeginSymbol(FileDesc,SymbolNum,A,B)
FILE *FileDesc;
int SymbolNum,A,B;
{
fprintf(FileDesc,"DS %d %d %d;\n",SymbolNum,A,B);
}
GenEndSymbol(FileDesc)
FILE *FileDesc;
{
fprintf(FileDesc,"DF;\n");
}
GenBeginCall(FileDesc,Number)
FILE *FileDesc;
int Number;
{
fprintf(FileDesc,"C %d",Number);
}
GenEndCall(FileDesc)
FILE *FileDesc;
{
fprintf(FileDesc,";\n");
}
GenTranslation(FileDesc,X,Y)
FILE *FileDesc;
int X,Y;
{
fprintf(FileDesc," T %d %d",X,Y);
}
GenRotation(FileDesc,X,Y)
FILE *FileDesc;
int X,Y;
{
fprintf(FileDesc," R %d %d",X,Y);
}
GenMirrorX(FileDesc)
FILE *FileDesc;
{
fprintf(FileDesc," MX");
}
GenMirrorY(FileDesc)
FILE *FileDesc;
{
fprintf(FileDesc," MY");
}
GenPolygon(FileDesc,Path)
FILE *FileDesc;
struct p *Path;
{
struct p *Pair;
fprintf(FileDesc,"P");
Pair = Path;
while(Pair != NULL){
fprintf(FileDesc," %d %d",Pair->pX,Pair->pY);
Pair = Pair->pSucc;
}
fprintf(FileDesc,";\n");
}
GenWire(FileDesc,Width,Path)
FILE *FileDesc;
struct p *Path;
int Width;
{
struct p *Pair;
fprintf(FileDesc,"W %d",Width);
Pair = Path;
while(Pair != NULL){
fprintf(FileDesc," %d %d",Pair->pX,Pair->pY);
Pair = Pair->pSucc;
}
fprintf(FileDesc,";\n");
}
GenBox(FileDesc,Length,Width,X,Y,XDir,YDir)
FILE *FileDesc;
int Length,Width,X,Y,XDir,YDir;
{
fprintf(FileDesc,"B %d %d %d %d",Length,Width,X,Y);
if(XDir != 1 Or YDir != 0)
fprintf(FileDesc," %d %d",XDir,YDir);
fprintf(FileDesc,";\n");
}
/*
* GenRoundFlash(FileDesc,Width,X,Y)
* FILE *FileDesc;
* int Width,X,Y;
* {
* fprintf(FileDesc,"R %d %d %d;\n",Width,X,Y);
* }
*/
GenLayer(FileDesc,Technology,Mask)
FILE *FileDesc;
char Technology,Mask[];
{
if(Technology != ' '){
fprintf(FileDesc,"L %c",Technology);
if(Mask[0] != ' '){
fprintf(FileDesc,"%c",Mask[0]);
if(Mask[1] != ' '){
fprintf(FileDesc,"%c",Mask[1]);
if(Mask[2] != ' ')
fprintf(FileDesc,"%c",Mask[2]);
}
}
fprintf(FileDesc,";\n");
}
}
GenUserExtension(FileDesc,Digit,Text)
FILE *FileDesc;
char Digit;
char *Text;
{
if(Text[0] >= '0' And Text[0] <= '9')
fprintf(FileDesc,"%c%s;\n",Digit,Text);
else
fprintf(FileDesc,"%c %s;\n",Digit,Text);
}
GenComment(FileDesc,Text)
FILE *FileDesc;
char *Text;
{
fprintf(FileDesc,"(%s);\n",Text);
}