Index: tools/pcb2ncap/AUTHORS =================================================================== --- tools/pcb2ncap/AUTHORS (nonexistent) +++ tools/pcb2ncap/AUTHORS (revision 1332) @@ -0,0 +1,2 @@ +Luis Claudio G. Lopes +lcgamboa@yahoo.com Index: tools/pcb2ncap/COPYING =================================================================== --- tools/pcb2ncap/COPYING (nonexistent) +++ tools/pcb2ncap/COPYING (revision 1332) @@ -0,0 +1,341 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place - Suite 330 + Boston, MA 02111-1307, USA. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to + the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. Index: tools/pcb2ncap/INSTALL =================================================================== --- tools/pcb2ncap/INSTALL (nonexistent) +++ tools/pcb2ncap/INSTALL (revision 1332) @@ -0,0 +1,7 @@ +type + +make + +and + +make install Index: tools/pcb2ncap/Makefile =================================================================== --- tools/pcb2ncap/Makefile (nonexistent) +++ tools/pcb2ncap/Makefile (revision 1332) @@ -0,0 +1,34 @@ +#install directory +BIN=/usr/bin + +all: pcb2ncap up2ps up2pcb catlayer + +pcb2ncap: pcb2ncap.cc + g++ pcb2ncap.cc -opcb2ncap -O5 + +up2ps: up2ps.cc + g++ up2ps.cc -oup2ps -O5 + +up2pcb: up2pcb.cc + g++ up2pcb.cc -oup2pcb -O5 + +catlayer: catlayer.cc + g++ catlayer.cc -ocatlayer -O5 + +clean: + rm -f pcb2ncap up2ps up2pcb catlayer + +install:all + cp pcb2ncap $(BIN) + cp up2ps $(BIN) + cp up2pcb $(BIN) + cp pcb_route $(BIN) + cp catlayer $(BIN) + +uninstall: + rm $(BIN)/pcb2ncap + rm $(BIN)/up2ps + rm $(BIN)/up2pcb + rm $(BIN)/pcb_route + rm $(BIN)/catlayer + Index: tools/pcb2ncap/README =================================================================== --- tools/pcb2ncap/README (nonexistent) +++ tools/pcb2ncap/README (revision 1332) @@ -0,0 +1,75 @@ +First, you must have installed: +* PCB (http://bach.ece.jhu.edu/~haceaton/pcb/) +* MUCS-PCB (http://www.cs.man.ac.uk/amulet/pcb/) + + +Descriptions: + +* pcb2ncap, simple PCB file to ncap file program converter + + pcb2ncap prj.pcb prj.net + + prj.pcb= PCB file with only the componentes positioned(without vias and lines) + prj.net= PCB rastnet file with all connections + + this create the prj.ncap, the MUCS-PCB router format + and the directory outlines\, the MUCS-PCB devices router format + + +* up2pcb, simple unixplot file to pcb sintaxe file program converter + + up2pcb unixplot_file + + this create unixplot_file.vpcb(vias) and unixplot_file.lpcb(lines) + + +* up2ps, simple unixplot file to ps file program converter + + up2ps unixplot_file + + this create unixplot_file.ps + + +* pcb_route, simple script to route a prj.pcb + prj.net + + pcb_route prj + + the prj.pcb and prj.net must exist in the same directory + + this create some files utilized for MUCS-PCB router + and de output prj_routed.pcb. + + +* catlayer, simple layer file include into pcb file + + catlayer layernum prj.pcb prj.lpcb + + layernum number of the layer that lines in the file.lpcb will be include + in file.pcb. + + +What using pcb_route? + +1- create an "file.pcb" with PCB and place all components and their names. +2- create an netlist "file.net" with all components connections. +3- verify the netlist with PCB. +4- using pcb_route "file" +5- the routed file is "file_routed.pcb" + + +What pcb_route do? + +Basically +1- using pcb2ncap to create "prj.ncap" +2- using netex(MUCS-PCB) to create tracker files (Read the MUCS-PCB manual) +3- using track(MUCS-PCB) to route (Read the MUCS-PCB manual for set options) +4- using up2ps to convert track output to post script files +5- using up2pcb to convert track output to pcb files prj.lpcb(Lines) and +prj.vpcb(Vias) +6- cat prj.pcb with prj.vpcb +7- using catlayer to join prj.lpcb with prj.pcb + + + +any question and sugestion +lcgamboa@yahoo.com Index: tools/pcb2ncap/catlayer.cc =================================================================== --- tools/pcb2ncap/catlayer.cc (nonexistent) +++ tools/pcb2ncap/catlayer.cc (revision 1332) @@ -0,0 +1,60 @@ +/* + * COPYRIGHT + * + * catlayer, simple layer file include into pcb file + * Copyright (C) 2001 Luis Claudio Gambôa Lopes + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + * Contact address for Email: + * lcgamboa@yahoo.com + * + */ +#include +#include +#include + +using namespace std; + +void +main (int argc, char **argv) +{ + if (argc != 4) + { + cout << "usage: " << argv[0] << " layernum file.pcb file.lpcb" << endl; + exit (0); + }; + + ifstream fin1 (argv[2]); + ifstream fin2 (argv[3]); + + string s; + string layer = "Layer("; + layer += argv[1]; + int test; + while (getline (fin1, s)) + { + cout << s << endl; + test = s.find (layer); + if (test >= 0) + { + getline (fin1, s); + cout << s << endl; + while (getline (fin2, s)) + cout << s << endl; + }; + + }; +}; Index: tools/pcb2ncap/pcb2ncap.cc =================================================================== --- tools/pcb2ncap/pcb2ncap.cc (nonexistent) +++ tools/pcb2ncap/pcb2ncap.cc (revision 1332) @@ -0,0 +1,325 @@ +/* + * COPYRIGHT + * + * pcb2ncap, simple PCB file to ncap file program converter + * Copyright (C) 2001 Luis Claudio Gambôa Lopes + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + * Contact address for Email: + * lcgamboa@yahoo.com + * + */ + + +#include +#include + +#include +#include +#include +using namespace std; + + +class signal +{ +public: + string des, xpos, ypos; +}; + + +class module +{ +private: +public: + int number; + int type; + int npins; + int variant; + string description; + int position; + string xposition; + string yposition; + string orientation; + + string des; + string ref; + + signal signals[100]; + + module (string); + void print (void); + void make (void); +}; + + +int pin = 1, pos = 0, ndevices = 0; +ifstream arq; +ofstream arq2; +module *devices[500]; +int layers = 2, xstart = 0, ystart = 0; +string xsize, ysize; + +void +module::print (void) +{ + arq2 << number << endl << type << endl << npins << endl << variant << endl + << description << endl << position << endl << xposition << endl << + yposition << endl << orientation << endl; + for (int i = 1; i <= npins; i++) + arq2 << signals[i].des << endl; +}; + +void +module::make (void) +{ + char fname[100]; + char fname2[100]; + mkdir ("outlines", S_IRWXU | S_IRWXG); + sprintf (fname, "outlines/dev%i.%i.0", type, npins); + ofstream out (fname); + out << "paddef:\ntracking circle 60\npower annulus 80\nend\npins\n"; + + int x1 = 0, y1 = 0, x2 = 0, y2 = 0, x3, y3, x4, y4, x5, y5, x6, y6, x7, y7; + int xpos, ypos; + for (int i = 0; i < npins; i++) + { + xpos = atoi (signals[i].xpos.c_str ()) - atoi (xposition.c_str ()); + ypos = atoi (signals[i].ypos.c_str ()) - atoi (yposition.c_str ()); + // ypos = atoi (yposition.c_str ()) - atoi (signals[i].ypos.c_str ()); + + out << xpos << ',' << ypos << endl; + + if (xpos < x1) + x1 = xpos; + if (xpos > x2) + x2 = xpos; + if (ypos < y1) + y1 = ypos; + if (ypos > y2) + y2 = ypos; + }; + out << "end\n"; + x1 -= 30; + x2 += 30; + y1 -= 30; + y2 += 30; + + out << x1 << ',' << y1 << ',' << x2 << ',' << y1 << endl; + out << x2 << ',' << y1 << ',' << x2 << ',' << y2 << endl; + out << x2 << ',' << y2 << ',' << x1 << ',' << y2 << endl; + out << x1 << ',' << y2 << ',' << x1 << ',' << y1 << endl; + + out.close (); + sprintf (fname2, "outlines/tab.%i", type); + out.open (fname2); + out << "description\n!\n" << npins << ".0"; +}; + + +void +strip (string s) +{ + while (s[pos] != '(') + pos++; +}; + +string +parse_quotes (string s) +{ + string out = ""; + while (s[pos] != '\"') + pos++; + pos++; + while (s[pos] != '\"') + out += s[pos++]; + pos++; + return out; +}; + +string +parse_space (string s) +{ + string out = ""; + while ((pos < s.size ()) && (s[pos] != '\t') && (s[pos] != ' ') + && (s[pos] != '(')) + pos++; + pos++; + while ((pos < s.size ()) && (s[pos] != '\t') && (s[pos] != ' ') + && (s[pos] != ')')) + out += s[pos++]; + return out; +}; + +void +parse_element (string s) +{ + pos = s.find ("PCB"); + if (pos >= 0) + { + pos = 0; + parse_quotes (s); //description + xsize = parse_space (s); + ysize = parse_space (s); + }; + + pos = s.find ("Element("); + if (pos >= 0) + { + devices[ndevices] = new module (s); + pin = 0; + }; + + pos = s.find ("Pin"); + if (pos >= 0) + { + pos = 0; + strip (s); + devices[ndevices - 1]->signals[pin].xpos = parse_space (s); + devices[ndevices - 1]->signals[pin].ypos = parse_space (s); + pin++; + devices[ndevices - 1]->npins = pin; + } + pos = s.find ("Pad"); + if (pos >= 0) + { + pos = 0; + strip (s); + devices[ndevices - 1]->signals[pin].xpos = parse_space (s); + devices[ndevices - 1]->signals[pin].ypos = parse_space (s); + pin++; + devices[ndevices - 1]->npins = pin; + } +/* + pos=s.find("ElementLine"); + if(pos >= 0) + cout<<"ElementLine: "<= 0) + cout<<"ElementArc: "<= 0) + { + pos = 0; + strip (s); + devices[ndevices - 1]->xposition = parse_space (s); + devices[ndevices - 1]->yposition = parse_space (s); + }; +}; + +void +parse_signal (string s) +{ + int pos2 = 0; + string signal = "", sig = "", uname, upin; + pos = 0; + while ((s[pos] != ' ') && (s[pos] != '\t')) + { + signal += s[pos]; + pos++; + }; + while (s[pos] != '\0') + { + sig = ""; + sig = parse_space (s); + if (sig.size () > 0) + { + pos2 = 0; + uname = ""; + while (sig[pos2] != '-') + { + uname += sig[pos2]; + pos2++; + }; + pos2++; + upin = ""; + while (pos2 < sig.size ()) + { + upin += sig[pos2]; + pos2++; + }; + + for (int o = 0; o < ndevices; o++) + for (int p = 0; p < devices[o]->npins; p++) + if (devices[o]->description == uname) + devices[o]->signals[atoi (upin.c_str ())].des = signal; + }; + }; + +}; + + +module::module (string s) +{ + pos = 0; + + des = parse_quotes (s); + description = parse_quotes (s); + ref = parse_quotes (s); + orientation = "0"; + number = ndevices++; + type = number; + npins = 0; + variant = 0; + position = 1; + for (int i = 0; i < 100; i++) + signals[i].des = "NC"; +}; + + +void +main (int argc, char **argv) +{ + int elm, bytes = 0; + string s; + int pins = 0; + + if (argc < 2) + { + cout << "usage: " << argv[0] << " pcbfile " << endl; + exit (0); + }; + + string fname = argv[1]; + arq.open (fname.c_str ()); + fname.replace(fname.find(".pcb"),5,".ncap"); + arq2.open (fname.c_str ()); + + while (getline (arq, s)) + { + parse_element (s); + }; + arq.close (); + + arq.open (argv[2]); + + while (getline (arq, s)) + { + parse_signal (s); + }; + + + arq2 << "ncapture" << endl << 0 << endl << 0 << endl << layers << endl << + xsize << endl << ysize << endl << xstart << endl << ystart << endl; + + for (int i = 0; i < ndevices; i++) + { + devices[i]->print (); + devices[i]->make (); + }; + +}; Index: tools/pcb2ncap/pcb_route =================================================================== --- tools/pcb2ncap/pcb_route (nonexistent) +++ tools/pcb2ncap/pcb_route (revision 1332) @@ -0,0 +1,42 @@ +#!/bin/sh +# +# COPYRIGHT +# +# pcb_route, simple script to route a file.pcb+file.net +# Copyright (C) 2001 Luis Claudio Gambôa Lopes +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Contact address for Email: +# lcgamboa@yahoo.com +# +# + +if [ "$1" != "" ] +then + rm -f $1.ncap.ddir/*.ps + pcb2ncap $1.pcb $1.net + netex -f $1.ncap + track -dF $1.ncap + cp $1.ncap.ddir/lines.l* . + up2ps $1.ncap.ddir/* + up2pcb lines.l* + cat $1.pcb lines.l*.vpcb >$1_routed.tmp + catlayer 1 $1_routed.tmp lines.l1.lpcb >$1_routed1.tmp + catlayer 4 $1_routed1.tmp lines.l2.lpcb >$1_routed.pcb + rm -f lines.l* *.tmp +else + echo "usage: pcb_route project_name" +fi Property changes on: tools/pcb2ncap/pcb_route ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: tools/pcb2ncap/tutorial/README =================================================================== --- tools/pcb2ncap/tutorial/README (nonexistent) +++ tools/pcb2ncap/tutorial/README (revision 1332) @@ -0,0 +1,2 @@ +type: + pcb_route tut Index: tools/pcb2ncap/tutorial/tut.net =================================================================== --- tools/pcb2ncap/tutorial/tut.net (nonexistent) +++ tools/pcb2ncap/tutorial/tut.net (revision 1332) @@ -0,0 +1,57 @@ +AVCC U1-11 U2-28 U3-28 U4-16 U5-20 U6-20 U11-20 U12-14 U13-14 U14-14 R1-2 R2-2 C1-2 PWR-1 +AGND U1-29 U2-14 U3-14 U4-8 U4-5 U5-10 U6-10 U11-10 U12-7 U13-7 U14-7 C1-1 PWR-2 +D0 U1-14 U2-11 U3-11 U5-13 U6-13 CN-10 +D1 U1-15 U2-12 U3-12 U5-8 U6-8 CN-7 +D2 U1-12 U2-13 U3-13 U5-14 U6-14 CN-8 +D3 U1-8 U2-15 U3-15 U5-7 U6-7 CN-5 +D4 U1-7 U2-16 U3-16 U5-17 U6-17 CN-6 +D5 U1-9 U2-17 U3-17 U5-4 U6-4 CN-3 +D6 U1-10 U2-18 U3-18 U5-18 U6-18 CN-4 +D7 U1-13 U2-19 U3-19 U5-3 U6-3 CN-1 +A0 U1-30 U2-10 U3-10 U6-12 +A1 U1-31 U2-9 U3-9 U6-9 +A2 U1-32 U2-8 U3-8 U6-15 +A3 U1-33 U2-7 U3-7 U4-3 U6-6 +A4 U1-34 U2-6 U3-6 U4-2 U6-16 +A5 U1-35 U2-5 U3-5 U4-1 U6-5 +A6 U1-36 U2-4 U3-4 U6-19 +A7 U1-37 U2-3 U3-3 U6-2 +A8 U1-38 U2-25 U3-25 U5-12 +A9 U1-39 U2-24 U3-24 U5-9 +A10 U1-40 U2-21 U3-21 U5-15 +A11 U1-1 U2-23 U3-23 U5-6 +A12 U1-2 U2-2 U3-2 U5-16 +A13 U1-3 U2-26 U3-26 U5-5 +A14 U1-4 U2-1 U3-1 U5-19 +A15 U1-5 U5-2 +/MREQ U1-19 CN-12 +/IORQ U1-20 U4-4 CN-9 +/RD U1-21 U2-22 U3-22 CN-20 +/WR U1-22 U2-27 U3-27 CN-17 +CLOCK U1-6 CN-2 +/RESET U1-26 CN-16 +/M1 U1-27 CN-13 +/RFSH +/INT U1-16 CN-14 +/NMI U1-17 CN-11 +/HALT +/BUSAK U1-23 U5-1 U6-1 CN-18 +/BUSRQ U1-25 CN-15 +/WAIT U1-24 R1-1 +CS0 +CS1 +CS2 +CS3 +CS4 +CS5 +CS6 +CS7 +ADDR U5-11 U6-11 +BIT0 +BIT1 +BIT2 +BIT3 +BIT4 +BIT5 +BIT6 +BIT7 Index: tools/pcb2ncap/tutorial/tut.pcb =================================================================== --- tools/pcb2ncap/tutorial/tut.pcb (nonexistent) +++ tools/pcb2ncap/tutorial/tut.pcb (revision 1332) @@ -0,0 +1,1231 @@ +# release: pcb 1.6.3 +# date: Mon Sep 24 10:26:10 2001 +# user: gamboa (Luis Claudio Gambôa Lopes,UFJF,32187330,32187330) +# host: linux.gamboa + +PCB("" 7200 4000) + +Grid(5 0 0) +Cursor(1890 215 3) +Flags(0x000000d0) +Groups("1,2,3,s:4,5,6,c:7:8:") +Styles("Signal,20,40,20:Power,25,60,35:Fat,40,60,35:Skinny,8,36,20") + +Symbol(' ' 15) +( +) +Symbol('!' 12) +( + SymbolLine(0 35 0 40 5) + SymbolLine(0 0 0 25 5) +) +Symbol('"' 12) +( + SymbolLine(0 0 0 10 5) + SymbolLine(10 0 10 10 5) +) +Symbol('#' 12) +( + SymbolLine(0 25 20 25 5) + SymbolLine(0 15 20 15 5) + SymbolLine(15 10 15 30 5) + SymbolLine(5 10 5 30 5) +) +Symbol('$' 12) +( + SymbolLine(15 5 20 10 5) + SymbolLine(5 5 15 5 5) + SymbolLine(0 10 5 5 5) + SymbolLine(0 10 0 15 5) + SymbolLine(0 15 5 20 5) + SymbolLine(5 20 15 20 5) + SymbolLine(15 20 20 25 5) + SymbolLine(20 25 20 30 5) + SymbolLine(15 35 20 30 5) + SymbolLine(5 35 15 35 5) + SymbolLine(0 30 5 35 5) + SymbolLine(10 0 10 40 5) +) +Symbol('%' 12) +( + SymbolLine(0 5 0 10 5) + SymbolLine(0 5 5 0 5) + SymbolLine(5 0 10 0 5) + SymbolLine(10 0 15 5 5) + SymbolLine(15 5 15 10 5) + SymbolLine(10 15 15 10 5) + SymbolLine(5 15 10 15 5) + SymbolLine(0 10 5 15 5) + SymbolLine(0 40 40 0 5) + SymbolLine(35 40 40 35 5) + SymbolLine(40 30 40 35 5) + SymbolLine(35 25 40 30 5) + SymbolLine(30 25 35 25 5) + SymbolLine(25 30 30 25 5) + SymbolLine(25 30 25 35 5) + SymbolLine(25 35 30 40 5) + SymbolLine(30 40 35 40 5) +) +Symbol('&' 12) +( + SymbolLine(0 35 5 40 5) + SymbolLine(0 5 0 15 5) + SymbolLine(0 5 5 0 5) + SymbolLine(0 25 15 10 5) + SymbolLine(5 40 10 40 5) + SymbolLine(10 40 20 30 5) + SymbolLine(0 15 25 40 5) + SymbolLine(5 0 10 0 5) + SymbolLine(10 0 15 5 5) + SymbolLine(15 5 15 10 5) + SymbolLine(0 25 0 35 5) +) +Symbol(''' 12) +( + SymbolLine(0 10 10 0 5) +) +Symbol('(' 12) +( + SymbolLine(0 35 5 40 5) + SymbolLine(0 5 5 0 5) + SymbolLine(0 5 0 35 5) +) +Symbol(')' 12) +( + SymbolLine(0 0 5 5 5) + SymbolLine(5 5 5 35 5) + SymbolLine(0 40 5 35 5) +) +Symbol('*' 12) +( + SymbolLine(0 10 20 30 5) + SymbolLine(0 30 20 10 5) + SymbolLine(0 20 20 20 5) + SymbolLine(10 10 10 30 5) +) +Symbol('+' 12) +( + SymbolLine(0 20 20 20 5) + SymbolLine(10 10 10 30 5) +) +Symbol(',' 12) +( + SymbolLine(0 50 10 40 5) +) +Symbol('-' 12) +( + SymbolLine(0 20 20 20 5) +) +Symbol('.' 12) +( + SymbolLine(0 40 5 40 5) +) +Symbol('/' 12) +( + SymbolLine(0 35 30 5 5) +) +Symbol('0' 12) +( + SymbolLine(0 35 5 40 5) + SymbolLine(0 5 0 35 5) + SymbolLine(0 5 5 0 5) + SymbolLine(5 0 15 0 5) + SymbolLine(15 0 20 5 5) + SymbolLine(20 5 20 35 5) + SymbolLine(15 40 20 35 5) + SymbolLine(5 40 15 40 5) + SymbolLine(0 30 20 10 5) +) +Symbol('1' 12) +( + SymbolLine(5 40 15 40 5) + SymbolLine(10 0 10 40 5) + SymbolLine(0 10 10 0 5) +) +Symbol('2' 12) +( + SymbolLine(0 5 5 0 5) + SymbolLine(5 0 20 0 5) + SymbolLine(20 0 25 5 5) + SymbolLine(25 5 25 15 5) + SymbolLine(0 40 25 15 5) + SymbolLine(0 40 25 40 5) +) +Symbol('3' 12) +( + SymbolLine(0 5 5 0 5) + SymbolLine(5 0 15 0 5) + SymbolLine(15 0 20 5 5) + SymbolLine(20 5 20 35 5) + SymbolLine(15 40 20 35 5) + SymbolLine(5 40 15 40 5) + SymbolLine(0 35 5 40 5) + SymbolLine(5 20 20 20 5) +) +Symbol('4' 12) +( + SymbolLine(0 20 20 0 5) + SymbolLine(0 20 25 20 5) + SymbolLine(20 0 20 40 5) +) +Symbol('5' 12) +( + SymbolLine(0 0 20 0 5) + SymbolLine(0 0 0 20 5) + SymbolLine(0 20 5 15 5) + SymbolLine(5 15 15 15 5) + SymbolLine(15 15 20 20 5) + SymbolLine(20 20 20 35 5) + SymbolLine(15 40 20 35 5) + SymbolLine(5 40 15 40 5) + SymbolLine(0 35 5 40 5) +) +Symbol('6' 12) +( + SymbolLine(15 0 20 5 5) + SymbolLine(5 0 15 0 5) + SymbolLine(0 5 5 0 5) + SymbolLine(0 5 0 35 5) + SymbolLine(0 35 5 40 5) + SymbolLine(15 20 20 25 5) + SymbolLine(0 20 15 20 5) + SymbolLine(5 40 15 40 5) + SymbolLine(15 40 20 35 5) + SymbolLine(20 25 20 35 5) +) +Symbol('7' 12) +( + SymbolLine(0 40 25 15 5) + SymbolLine(25 0 25 15 5) + SymbolLine(0 0 25 0 5) +) +Symbol('8' 12) +( + SymbolLine(0 35 5 40 5) + SymbolLine(0 25 0 35 5) + SymbolLine(0 25 5 20 5) + SymbolLine(5 20 15 20 5) + SymbolLine(15 20 20 25 5) + SymbolLine(20 25 20 35 5) + SymbolLine(15 40 20 35 5) + SymbolLine(5 40 15 40 5) + SymbolLine(0 15 5 20 5) + SymbolLine(0 5 0 15 5) + SymbolLine(0 5 5 0 5) + SymbolLine(5 0 15 0 5) + SymbolLine(15 0 20 5 5) + SymbolLine(20 5 20 15 5) + SymbolLine(15 20 20 15 5) +) +Symbol('9' 12) +( + SymbolLine(0 40 20 20 5) + SymbolLine(20 5 20 20 5) + SymbolLine(15 0 20 5 5) + SymbolLine(5 0 15 0 5) + SymbolLine(0 5 5 0 5) + SymbolLine(0 5 0 15 5) + SymbolLine(0 15 5 20 5) + SymbolLine(5 20 20 20 5) +) +Symbol(':' 12) +( + SymbolLine(0 15 5 15 5) + SymbolLine(0 25 5 25 5) +) +Symbol(';' 12) +( + SymbolLine(0 40 10 30 5) + SymbolLine(10 15 10 20 5) +) +Symbol('<' 12) +( + SymbolLine(0 20 10 10 5) + SymbolLine(0 20 10 30 5) +) +Symbol('=' 12) +( + SymbolLine(0 15 20 15 5) + SymbolLine(0 25 20 25 5) +) +Symbol('>' 12) +( + SymbolLine(0 10 10 20 5) + SymbolLine(0 30 10 20 5) +) +Symbol('?' 12) +( + SymbolLine(10 20 10 25 5) + SymbolLine(10 35 10 40 5) + SymbolLine(0 5 0 10 5) + SymbolLine(0 5 5 0 5) + SymbolLine(5 0 15 0 5) + SymbolLine(15 0 20 5 5) + SymbolLine(20 5 20 10 5) + SymbolLine(10 20 20 10 5) +) +Symbol('A' 12) +( + SymbolLine(0 5 0 40 5) + SymbolLine(0 5 5 0 5) + SymbolLine(5 0 20 0 5) + SymbolLine(20 0 25 5 5) + SymbolLine(25 5 25 40 5) + SymbolLine(0 20 25 20 5) +) +Symbol('B' 12) +( + SymbolLine(0 40 20 40 5) + SymbolLine(20 40 25 35 5) + SymbolLine(25 25 25 35 5) + SymbolLine(20 20 25 25 5) + SymbolLine(5 20 20 20 5) + SymbolLine(5 0 5 40 5) + SymbolLine(0 0 20 0 5) + SymbolLine(20 0 25 5 5) + SymbolLine(25 5 25 15 5) + SymbolLine(20 20 25 15 5) +) +Symbol('C' 12) +( + SymbolLine(5 40 20 40 5) + SymbolLine(0 35 5 40 5) + SymbolLine(0 5 0 35 5) + SymbolLine(0 5 5 0 5) + SymbolLine(5 0 20 0 5) +) +Symbol('D' 12) +( + SymbolLine(5 0 5 40 5) + SymbolLine(20 0 25 5 5) + SymbolLine(25 5 25 35 5) + SymbolLine(20 40 25 35 5) + SymbolLine(0 40 20 40 5) + SymbolLine(0 0 20 0 5) +) +Symbol('E' 12) +( + SymbolLine(0 20 15 20 5) + SymbolLine(0 40 20 40 5) + SymbolLine(0 0 0 40 5) + SymbolLine(0 0 20 0 5) +) +Symbol('F' 12) +( + SymbolLine(0 0 0 40 5) + SymbolLine(0 0 20 0 5) + SymbolLine(0 20 15 20 5) +) +Symbol('G' 12) +( + SymbolLine(20 0 25 5 5) + SymbolLine(5 0 20 0 5) + SymbolLine(0 5 5 0 5) + SymbolLine(0 5 0 35 5) + SymbolLine(0 35 5 40 5) + SymbolLine(5 40 20 40 5) + SymbolLine(20 40 25 35 5) + SymbolLine(25 25 25 35 5) + SymbolLine(20 20 25 25 5) + SymbolLine(10 20 20 20 5) +) +Symbol('H' 12) +( + SymbolLine(0 0 0 40 5) + SymbolLine(25 0 25 40 5) + SymbolLine(0 20 25 20 5) +) +Symbol('I' 12) +( + SymbolLine(0 0 10 0 5) + SymbolLine(5 0 5 40 5) + SymbolLine(0 40 10 40 5) +) +Symbol('J' 12) +( + SymbolLine(0 0 15 0 5) + SymbolLine(15 0 15 35 5) + SymbolLine(10 40 15 35 5) + SymbolLine(5 40 10 40 5) + SymbolLine(0 35 5 40 5) +) +Symbol('K' 12) +( + SymbolLine(0 0 0 40 5) + SymbolLine(0 20 20 0 5) + SymbolLine(0 20 20 40 5) +) +Symbol('L' 12) +( + SymbolLine(0 0 0 40 5) + SymbolLine(0 40 20 40 5) +) +Symbol('M' 12) +( + SymbolLine(0 0 0 40 5) + SymbolLine(0 0 15 15 5) + SymbolLine(15 15 30 0 5) + SymbolLine(30 0 30 40 5) +) +Symbol('N' 12) +( + SymbolLine(0 0 0 40 5) + SymbolLine(0 0 0 5 5) + SymbolLine(0 5 25 30 5) + SymbolLine(25 0 25 40 5) +) +Symbol('O' 12) +( + SymbolLine(0 5 0 35 5) + SymbolLine(0 5 5 0 5) + SymbolLine(5 0 15 0 5) + SymbolLine(15 0 20 5 5) + SymbolLine(20 5 20 35 5) + SymbolLine(15 40 20 35 5) + SymbolLine(5 40 15 40 5) + SymbolLine(0 35 5 40 5) +) +Symbol('P' 12) +( + SymbolLine(5 0 5 40 5) + SymbolLine(0 0 20 0 5) + SymbolLine(20 0 25 5 5) + SymbolLine(25 5 25 15 5) + SymbolLine(20 20 25 15 5) + SymbolLine(5 20 20 20 5) +) +Symbol('Q' 12) +( + SymbolLine(0 5 0 35 5) + SymbolLine(0 5 5 0 5) + SymbolLine(5 0 15 0 5) + SymbolLine(15 0 20 5 5) + SymbolLine(20 5 20 35 5) + SymbolLine(15 40 20 35 5) + SymbolLine(5 40 15 40 5) + SymbolLine(0 35 5 40 5) + SymbolLine(10 30 20 40 5) +) +Symbol('R' 12) +( + SymbolLine(0 0 20 0 5) + SymbolLine(20 0 25 5 5) + SymbolLine(25 5 25 15 5) + SymbolLine(20 20 25 15 5) + SymbolLine(5 20 20 20 5) + SymbolLine(5 0 5 40 5) + SymbolLine(5 20 25 40 5) +) +Symbol('S' 12) +( + SymbolLine(20 0 25 5 5) + SymbolLine(5 0 20 0 5) + SymbolLine(0 5 5 0 5) + SymbolLine(0 5 0 15 5) + SymbolLine(0 15 5 20 5) + SymbolLine(5 20 20 20 5) + SymbolLine(20 20 25 25 5) + SymbolLine(25 25 25 35 5) + SymbolLine(20 40 25 35 5) + SymbolLine(5 40 20 40 5) + SymbolLine(0 35 5 40 5) +) +Symbol('T' 12) +( + SymbolLine(0 0 20 0 5) + SymbolLine(10 0 10 40 5) +) +Symbol('U' 12) +( + SymbolLine(0 0 0 35 5) + SymbolLine(0 35 5 40 5) + SymbolLine(5 40 15 40 5) + SymbolLine(15 40 20 35 5) + SymbolLine(20 0 20 35 5) +) +Symbol('V' 12) +( + SymbolLine(0 0 0 30 5) + SymbolLine(0 30 10 40 5) + SymbolLine(10 40 20 30 5) + SymbolLine(20 0 20 30 5) +) +Symbol('W' 12) +( + SymbolLine(0 0 0 40 5) + SymbolLine(0 40 15 25 5) + SymbolLine(15 25 30 40 5) + SymbolLine(30 0 30 40 5) +) +Symbol('X' 12) +( + SymbolLine(0 0 0 5 5) + SymbolLine(0 5 25 30 5) + SymbolLine(25 30 25 40 5) + SymbolLine(0 30 0 40 5) + SymbolLine(0 30 25 5 5) + SymbolLine(25 0 25 5 5) +) +Symbol('Y' 12) +( + SymbolLine(0 0 0 5 5) + SymbolLine(0 5 10 15 5) + SymbolLine(10 15 20 5 5) + SymbolLine(20 0 20 5 5) + SymbolLine(10 15 10 40 5) +) +Symbol('Z' 12) +( + SymbolLine(0 0 25 0 5) + SymbolLine(25 0 25 5 5) + SymbolLine(0 30 25 5 5) + SymbolLine(0 30 0 40 5) + SymbolLine(0 40 25 40 5) +) +Symbol('[' 12) +( + SymbolLine(0 0 5 0 5) + SymbolLine(0 0 0 40 5) + SymbolLine(0 40 5 40 5) +) +Symbol('\' 12) +( + SymbolLine(0 5 30 35 5) +) +Symbol(']' 12) +( + SymbolLine(0 0 5 0 5) + SymbolLine(5 0 5 40 5) + SymbolLine(0 40 5 40 5) +) +Symbol('^' 12) +( + SymbolLine(0 5 5 0 5) + SymbolLine(5 0 10 5 5) +) +Symbol('_' 12) +( + SymbolLine(0 40 20 40 5) +) +Symbol('a' 12) +( + SymbolLine(15 20 20 25 5) + SymbolLine(5 20 15 20 5) + SymbolLine(0 25 5 20 5) + SymbolLine(0 25 0 35 5) + SymbolLine(0 35 5 40 5) + SymbolLine(20 20 20 35 5) + SymbolLine(20 35 25 40 5) + SymbolLine(5 40 15 40 5) + SymbolLine(15 40 20 35 5) +) +Symbol('b' 12) +( + SymbolLine(0 0 0 40 5) + SymbolLine(0 35 5 40 5) + SymbolLine(5 40 15 40 5) + SymbolLine(15 40 20 35 5) + SymbolLine(20 25 20 35 5) + SymbolLine(15 20 20 25 5) + SymbolLine(5 20 15 20 5) + SymbolLine(0 25 5 20 5) +) +Symbol('c' 12) +( + SymbolLine(5 20 20 20 5) + SymbolLine(0 25 5 20 5) + SymbolLine(0 25 0 35 5) + SymbolLine(0 35 5 40 5) + SymbolLine(5 40 20 40 5) +) +Symbol('d' 12) +( + SymbolLine(20 0 20 40 5) + SymbolLine(15 40 20 35 5) + SymbolLine(5 40 15 40 5) + SymbolLine(0 35 5 40 5) + SymbolLine(0 25 0 35 5) + SymbolLine(0 25 5 20 5) + SymbolLine(5 20 15 20 5) + SymbolLine(15 20 20 25 5) +) +Symbol('e' 12) +( + SymbolLine(15 40 20 35 5) + SymbolLine(5 40 15 40 5) + SymbolLine(0 35 5 40 5) + SymbolLine(0 25 0 35 5) + SymbolLine(0 25 5 20 5) + SymbolLine(5 20 15 20 5) + SymbolLine(15 20 20 25 5) + SymbolLine(0 30 10 30 5) +) +Symbol('f' 10) +( + SymbolLine(5 5 5 40 5) + SymbolLine(5 5 10 0 5) + SymbolLine(10 0 15 0 5) + SymbolLine(0 20 10 20 5) +) +Symbol('g' 12) +( + SymbolLine(15 20 20 25 5) + SymbolLine(5 20 15 20 5) + SymbolLine(0 25 5 20 5) + SymbolLine(0 25 0 35 5) + SymbolLine(0 35 5 40 5) + SymbolLine(5 40 15 40 5) + SymbolLine(15 40 20 35 5) + SymbolLine(0 50 5 55 5) + SymbolLine(5 55 15 55 5) + SymbolLine(15 55 20 50 5) + SymbolLine(20 20 20 50 5) +) +Symbol('h' 12) +( + SymbolLine(0 0 0 40 5) + SymbolLine(0 25 5 20 5) + SymbolLine(5 20 15 20 5) + SymbolLine(15 20 20 25 5) + SymbolLine(20 25 20 40 5) +) +Symbol('i' 10) +( + SymbolLine(0 10 0 15 5) + SymbolLine(0 25 0 40 5) +) +Symbol('j' 10) +( + SymbolLine(5 10 5 15 5) + SymbolLine(5 25 5 50 5) + SymbolLine(0 55 5 50 5) +) +Symbol('k' 12) +( + SymbolLine(0 0 0 40 5) + SymbolLine(0 25 15 40 5) + SymbolLine(0 25 10 15 5) +) +Symbol('l' 10) +( + SymbolLine(0 0 0 35 5) + SymbolLine(0 35 5 40 5) +) +Symbol('m' 12) +( + SymbolLine(5 25 5 40 5) + SymbolLine(5 25 10 20 5) + SymbolLine(10 20 15 20 5) + SymbolLine(15 20 20 25 5) + SymbolLine(20 25 20 40 5) + SymbolLine(20 25 25 20 5) + SymbolLine(25 20 30 20 5) + SymbolLine(30 20 35 25 5) + SymbolLine(35 25 35 40 5) + SymbolLine(0 20 5 25 5) +) +Symbol('n' 12) +( + SymbolLine(5 25 5 40 5) + SymbolLine(5 25 10 20 5) + SymbolLine(10 20 15 20 5) + SymbolLine(15 20 20 25 5) + SymbolLine(20 25 20 40 5) + SymbolLine(0 20 5 25 5) +) +Symbol('o' 12) +( + SymbolLine(0 25 0 35 5) + SymbolLine(0 25 5 20 5) + SymbolLine(5 20 15 20 5) + SymbolLine(15 20 20 25 5) + SymbolLine(20 25 20 35 5) + SymbolLine(15 40 20 35 5) + SymbolLine(5 40 15 40 5) + SymbolLine(0 35 5 40 5) +) +Symbol('p' 12) +( + SymbolLine(5 25 5 55 5) + SymbolLine(0 20 5 25 5) + SymbolLine(5 25 10 20 5) + SymbolLine(10 20 20 20 5) + SymbolLine(20 20 25 25 5) + SymbolLine(25 25 25 35 5) + SymbolLine(20 40 25 35 5) + SymbolLine(10 40 20 40 5) + SymbolLine(5 35 10 40 5) +) +Symbol('q' 12) +( + SymbolLine(20 25 20 55 5) + SymbolLine(15 20 20 25 5) + SymbolLine(5 20 15 20 5) + SymbolLine(0 25 5 20 5) + SymbolLine(0 25 0 35 5) + SymbolLine(0 35 5 40 5) + SymbolLine(5 40 15 40 5) + SymbolLine(15 40 20 35 5) +) +Symbol('r' 12) +( + SymbolLine(5 25 5 40 5) + SymbolLine(5 25 10 20 5) + SymbolLine(10 20 20 20 5) + SymbolLine(0 20 5 25 5) +) +Symbol('s' 12) +( + SymbolLine(5 40 20 40 5) + SymbolLine(20 40 25 35 5) + SymbolLine(20 30 25 35 5) + SymbolLine(5 30 20 30 5) + SymbolLine(0 25 5 30 5) + SymbolLine(0 25 5 20 5) + SymbolLine(5 20 20 20 5) + SymbolLine(20 20 25 25 5) + SymbolLine(0 35 5 40 5) +) +Symbol('t' 10) +( + SymbolLine(5 0 5 35 5) + SymbolLine(5 35 10 40 5) + SymbolLine(0 15 10 15 5) +) +Symbol('u' 12) +( + SymbolLine(0 20 0 35 5) + SymbolLine(0 35 5 40 5) + SymbolLine(5 40 15 40 5) + SymbolLine(15 40 20 35 5) + SymbolLine(20 20 20 35 5) +) +Symbol('v' 12) +( + SymbolLine(0 20 0 30 5) + SymbolLine(0 30 10 40 5) + SymbolLine(10 40 20 30 5) + SymbolLine(20 20 20 30 5) +) +Symbol('w' 12) +( + SymbolLine(0 20 0 35 5) + SymbolLine(0 35 5 40 5) + SymbolLine(5 40 10 40 5) + SymbolLine(10 40 15 35 5) + SymbolLine(15 20 15 35 5) + SymbolLine(15 35 20 40 5) + SymbolLine(20 40 25 40 5) + SymbolLine(25 40 30 35 5) + SymbolLine(30 20 30 35 5) +) +Symbol('x' 12) +( + SymbolLine(0 20 20 40 5) + SymbolLine(0 40 20 20 5) +) +Symbol('y' 12) +( + SymbolLine(0 20 0 35 5) + SymbolLine(0 35 5 40 5) + SymbolLine(20 20 20 50 5) + SymbolLine(15 55 20 50 5) + SymbolLine(5 55 15 55 5) + SymbolLine(0 50 5 55 5) + SymbolLine(5 40 15 40 5) + SymbolLine(15 40 20 35 5) +) +Symbol('z' 12) +( + SymbolLine(0 20 20 20 5) + SymbolLine(0 40 20 20 5) + SymbolLine(0 40 20 40 5) +) +Symbol('{' 12) +( + SymbolLine(5 5 10 0 5) + SymbolLine(5 5 5 15 5) + SymbolLine(0 20 5 15 5) + SymbolLine(0 20 5 25 5) + SymbolLine(5 25 5 35 5) + SymbolLine(5 35 10 40 5) +) +Symbol('|' 12) +( + SymbolLine(0 0 0 40 5) +) +Symbol('}' 12) +( + SymbolLine(0 0 5 5 5) + SymbolLine(5 5 5 15 5) + SymbolLine(5 15 10 20 5) + SymbolLine(5 25 10 20 5) + SymbolLine(5 25 5 35 5) + SymbolLine(0 40 5 35 5) +) +Symbol('~' 12) +( + SymbolLine(0 25 5 20 5) + SymbolLine(5 20 10 20 5) + SymbolLine(10 20 15 25 5) + SymbolLine(15 25 20 25 5) + SymbolLine(20 25 25 20 5) +) + +Element(0x00000000 "connector 2x25 pins" "CN" "50" 1775 435 3 100 0x00000000) +( + Pin(1565 485 60 30 "1" "1" 0x00000101) + Pin(1665 485 60 30 "2" "2" 0x00000001) + Pin(1565 585 60 30 "3" "3" 0x00000001) + Pin(1665 585 60 30 "4" "4" 0x00000001) + Pin(1565 685 60 30 "5" "5" 0x00000001) + Pin(1665 685 60 30 "6" "6" 0x00000001) + Pin(1565 785 60 30 "7" "7" 0x00000001) + Pin(1665 785 60 30 "8" "8" 0x00000001) + Pin(1565 885 60 30 "9" "9" 0x00000001) + Pin(1665 885 60 30 "10" "10" 0x00000001) + Pin(1565 985 60 30 "11" "11" 0x00000001) + Pin(1665 985 60 30 "12" "12" 0x00000001) + Pin(1565 1085 60 30 "13" "13" 0x00000001) + Pin(1665 1085 60 30 "14" "14" 0x00000001) + Pin(1565 1185 60 30 "15" "15" 0x00000001) + Pin(1665 1185 60 30 "16" "16" 0x00000001) + Pin(1565 1285 60 30 "17" "17" 0x00000001) + Pin(1665 1285 60 30 "18" "18" 0x00000001) + Pin(1565 1385 60 30 "19" "19" 0x00000001) + Pin(1665 1385 60 30 "20" "20" 0x00000001) + Pin(1565 1485 60 30 "21" "21" 0x00000001) + Pin(1665 1485 60 30 "22" "22" 0x00000001) + Pin(1565 1585 60 30 "23" "23" 0x00000001) + Pin(1665 1585 60 30 "24" "24" 0x00000001) + Pin(1565 1685 60 30 "25" "25" 0x00000001) + Pin(1665 1685 60 30 "26" "26" 0x00000001) + Pin(1565 1785 60 30 "27" "27" 0x00000001) + Pin(1665 1785 60 30 "28" "28" 0x00000001) + Pin(1565 1885 60 30 "29" "29" 0x00000001) + Pin(1665 1885 60 30 "30" "30" 0x00000001) + Pin(1565 1985 60 30 "31" "31" 0x00000001) + Pin(1665 1985 60 30 "32" "32" 0x00000001) + Pin(1565 2085 60 30 "33" "33" 0x00000001) + Pin(1665 2085 60 30 "34" "34" 0x00000001) + Pin(1565 2185 60 30 "35" "35" 0x00000001) + Pin(1665 2185 60 30 "36" "36" 0x00000001) + Pin(1565 2285 60 30 "37" "37" 0x00000001) + Pin(1665 2285 60 30 "38" "38" 0x00000001) + Pin(1565 2385 60 30 "39" "39" 0x00000001) + Pin(1665 2385 60 30 "40" "40" 0x00000001) + Pin(1565 2485 60 30 "41" "41" 0x00000001) + Pin(1665 2485 60 30 "42" "42" 0x00000001) + Pin(1565 2585 60 30 "43" "43" 0x00000001) + Pin(1665 2585 60 30 "44" "44" 0x00000001) + Pin(1565 2685 60 30 "45" "45" 0x00000001) + Pin(1665 2685 60 30 "46" "46" 0x00000001) + Pin(1565 2785 60 30 "47" "47" 0x00000001) + Pin(1665 2785 60 30 "48" "48" 0x00000001) + Pin(1565 2885 60 30 "49" "49" 0x00000001) + Pin(1665 2885 60 30 "50" "50" 0x00000001) + ElementLine (1515 435 1515 2935 20) + ElementLine (1515 2935 1715 2935 20) + ElementLine (1715 2935 1715 435 20) + ElementLine (1715 435 1515 435 20) + ElementLine (1515 535 1615 535 10) + ElementLine (1615 535 1615 435 10) + Mark (1565 485) +) + +Element(0x00000000 "R 0.25W" "R2" "10k" 945 2775 1 100 0x00000000) +( + Pin(965 2895 50 20 "1" "1" 0x00000101) + Pin(965 2495 50 20 "2" "2" 0x00000001) + ElementLine (965 2595 965 2495 20) + ElementLine (965 2895 965 2795 20) + ElementLine (1015 2795 915 2795 20) + ElementLine (1015 2595 1015 2795 20) + ElementLine (915 2595 1015 2595 20) + ElementLine (915 2795 915 2595 20) + Mark (965 2895) +) + +Element(0x00000000 "generic" "U3" "DIL 28" 4980 1680 3 100 0x00000000) +( + Pin(4810 1630 60 28 "1" "1" 0x00000101) + Pin(4810 1730 60 28 "2" "2" 0x00000001) + Pin(4810 1830 60 28 "3" "3" 0x00000001) + Pin(4810 1930 60 28 "4" "4" 0x00000001) + Pin(4810 2030 60 28 "5" "5" 0x00000001) + Pin(4810 2130 60 28 "6" "6" 0x00000001) + Pin(4810 2230 60 28 "7" "7" 0x00000001) + Pin(4810 2330 60 28 "8" "8" 0x00000001) + Pin(4810 2430 60 28 "9" "9" 0x00000001) + Pin(4810 2530 60 28 "10" "10" 0x00000001) + Pin(4810 2630 60 28 "11" "11" 0x00000001) + Pin(4810 2730 60 28 "12" "12" 0x00000001) + Pin(4810 2830 60 28 "13" "13" 0x00000001) + Pin(4810 2930 60 28 "14" "14" 0x00000001) + Pin(5110 2930 60 28 "15" "15" 0x00000001) + Pin(5110 2830 60 28 "16" "16" 0x00000001) + Pin(5110 2730 60 28 "17" "17" 0x00000001) + Pin(5110 2630 60 28 "18" "18" 0x00000001) + Pin(5110 2530 60 28 "19" "19" 0x00000001) + Pin(5110 2430 60 28 "20" "20" 0x00000001) + Pin(5110 2330 60 28 "21" "21" 0x00000001) + Pin(5110 2230 60 28 "22" "22" 0x00000001) + Pin(5110 2130 60 28 "23" "23" 0x00000001) + Pin(5110 2030 60 28 "24" "24" 0x00000001) + Pin(5110 1930 60 28 "25" "25" 0x00000001) + Pin(5110 1830 60 28 "26" "26" 0x00000001) + Pin(5110 1730 60 28 "27" "27" 0x00000001) + Pin(5110 1630 60 28 "28" "28" 0x00000001) + ElementLine (4760 1580 4760 2980 10) + ElementLine (4760 2980 5160 2980 10) + ElementLine (5160 2980 5160 1580 10) + ElementLine (4760 1580 4910 1580 10) + ElementLine (5010 1580 5160 1580 10) + ElementArc (4960 1580 50 50 0 180 10) + Mark (4810 1630) +) + +Element(0x00000000 "connector 2x2 pins" "PWR" "4" 410 880 3 100 0x00000000) +( + Pin(200 930 60 30 "1" "1" 0x00000101) + Pin(300 930 60 30 "2" "2" 0x00000001) + Pin(200 1030 60 30 "3" "3" 0x00000001) + Pin(300 1030 60 30 "4" "4" 0x00000001) + ElementLine (150 880 150 1080 20) + ElementLine (150 1080 350 1080 20) + ElementLine (350 1080 350 880 20) + ElementLine (350 880 150 880 20) + ElementLine (150 980 250 980 10) + ElementLine (250 980 250 880 10) + Mark (200 930) +) + +Element(0x00000000 "8 edge FF 3-state" "U6" "74374" 5985 2265 0 100 0x00000000) +( + Pin(5920 2450 60 28 "/OC" "1" 0x00000101) + Pin(6020 2450 60 28 "1Q" "2" 0x00000001) + Pin(6120 2450 60 28 "1D" "3" 0x00000001) + Pin(6220 2450 60 28 "2D" "4" 0x00000001) + Pin(6320 2450 60 28 "2Q" "5" 0x00000001) + Pin(6420 2450 60 28 "3Q" "6" 0x00000001) + Pin(6520 2450 60 28 "3D" "7" 0x00000001) + Pin(6620 2450 60 28 "4D" "8" 0x00000001) + Pin(6720 2450 60 28 "4Q" "9" 0x00000001) + Pin(6820 2450 60 28 "Gnd" "10" 0x00000001) + Pin(6820 2150 60 28 "C" "11" 0x00000001) + Pin(6720 2150 60 28 "5Q" "12" 0x00000001) + Pin(6620 2150 60 28 "5D" "13" 0x00000001) + Pin(6520 2150 60 28 "6D" "14" 0x00000001) + Pin(6420 2150 60 28 "6Q" "15" 0x00000001) + Pin(6320 2150 60 28 "7Q" "16" 0x00000001) + Pin(6220 2150 60 28 "7D" "17" 0x00000001) + Pin(6120 2150 60 28 "8D" "18" 0x00000001) + Pin(6020 2150 60 28 "8Q" "19" 0x00000001) + Pin(5920 2150 60 28 "Vcc" "20" 0x00000001) + ElementLine (5870 2250 5870 2100 10) + ElementLine (5870 2500 5870 2350 10) + ElementLine (6870 2100 5870 2100 10) + ElementLine (6870 2500 6870 2100 10) + ElementLine (5870 2500 6870 2500 10) + ElementArc (5870 2300 50 50 90 180 10) + Mark (5920 2450) +) + +Element(0x00000000 "3-to-8 decoder" "U4" "74138" 520 2305 3 100 0x00000000) +( + Pin(350 2255 60 28 "A" "1" 0x00000101) + Pin(350 2355 60 28 "B" "2" 0x00000001) + Pin(350 2455 60 28 "C" "3" 0x00000001) + Pin(350 2555 60 28 "/G2A" "4" 0x00000001) + Pin(350 2655 60 28 "/G2B" "5" 0x00000001) + Pin(350 2755 60 28 "G1" "6" 0x00000001) + Pin(350 2855 60 28 "Y7" "7" 0x00000001) + Pin(350 2955 60 28 "Gnd" "8" 0x00000001) + Pin(650 2955 60 28 "Y6" "9" 0x00000001) + Pin(650 2855 60 28 "Y5" "10" 0x00000001) + Pin(650 2755 60 28 "Y4" "11" 0x00000001) + Pin(650 2655 60 28 "Y3" "12" 0x00000001) + Pin(650 2555 60 28 "Y2" "13" 0x00000001) + Pin(650 2455 60 28 "Y1" "14" 0x00000001) + Pin(650 2355 60 28 "Y0" "15" 0x00000001) + Pin(650 2255 60 28 "Vcc" "16" 0x00000001) + ElementLine (550 2205 700 2205 10) + ElementLine (300 2205 450 2205 10) + ElementLine (700 3005 700 2205 10) + ElementLine (300 3005 700 3005 10) + ElementLine (300 2205 300 3005 10) + ElementArc (500 2205 50 50 0 180 10) + Mark (350 2255) +) + +Element(0x00000000 "generic" "U2" "DIL 28" 4065 1665 3 100 0x00000000) +( + Pin(3895 1615 60 28 "1" "1" 0x00000101) + Pin(3895 1715 60 28 "2" "2" 0x00000001) + Pin(3895 1815 60 28 "3" "3" 0x00000001) + Pin(3895 1915 60 28 "4" "4" 0x00000001) + Pin(3895 2015 60 28 "5" "5" 0x00000001) + Pin(3895 2115 60 28 "6" "6" 0x00000001) + Pin(3895 2215 60 28 "7" "7" 0x00000001) + Pin(3895 2315 60 28 "8" "8" 0x00000001) + Pin(3895 2415 60 28 "9" "9" 0x00000001) + Pin(3895 2515 60 28 "10" "10" 0x00000001) + Pin(3895 2615 60 28 "11" "11" 0x00000001) + Pin(3895 2715 60 28 "12" "12" 0x00000001) + Pin(3895 2815 60 28 "13" "13" 0x00000001) + Pin(3895 2915 60 28 "14" "14" 0x00000001) + Pin(4195 2915 60 28 "15" "15" 0x00000001) + Pin(4195 2815 60 28 "16" "16" 0x00000001) + Pin(4195 2715 60 28 "17" "17" 0x00000001) + Pin(4195 2615 60 28 "18" "18" 0x00000001) + Pin(4195 2515 60 28 "19" "19" 0x00000001) + Pin(4195 2415 60 28 "20" "20" 0x00000001) + Pin(4195 2315 60 28 "21" "21" 0x00000001) + Pin(4195 2215 60 28 "22" "22" 0x00000001) + Pin(4195 2115 60 28 "23" "23" 0x00000001) + Pin(4195 2015 60 28 "24" "24" 0x00000001) + Pin(4195 1915 60 28 "25" "25" 0x00000001) + Pin(4195 1815 60 28 "26" "26" 0x00000001) + Pin(4195 1715 60 28 "27" "27" 0x00000001) + Pin(4195 1615 60 28 "28" "28" 0x00000001) + ElementLine (3845 1565 3845 2965 10) + ElementLine (3845 2965 4245 2965 10) + ElementLine (4245 2965 4245 1565 10) + ElementLine (3845 1565 3995 1565 10) + ElementLine (4095 1565 4245 1565 10) + ElementArc (4045 1565 50 50 0 180 10) + Mark (3895 1615) +) + +Element(0x00000000 "generic" "U1" "DIL 40" 2650 1045 3 100 0x00000000) +( + Pin(2330 995 60 28 "1" "1" 0x00000101) + Pin(2330 1095 60 28 "2" "2" 0x00000001) + Pin(2330 1195 60 28 "3" "3" 0x00000001) + Pin(2330 1295 60 28 "4" "4" 0x00000001) + Pin(2330 1395 60 28 "5" "5" 0x00000001) + Pin(2330 1495 60 28 "6" "6" 0x00000001) + Pin(2330 1595 60 28 "7" "7" 0x00000001) + Pin(2330 1695 60 28 "8" "8" 0x00000001) + Pin(2330 1795 60 28 "9" "9" 0x00000001) + Pin(2330 1895 60 28 "10" "10" 0x00000001) + Pin(2330 1995 60 28 "11" "11" 0x00000001) + Pin(2330 2095 60 28 "12" "12" 0x00000001) + Pin(2330 2195 60 28 "13" "13" 0x00000001) + Pin(2330 2295 60 28 "14" "14" 0x00000001) + Pin(2330 2395 60 28 "15" "15" 0x00000001) + Pin(2330 2495 60 28 "16" "16" 0x00000001) + Pin(2330 2595 60 28 "17" "17" 0x00000001) + Pin(2330 2695 60 28 "18" "18" 0x00000001) + Pin(2330 2795 60 28 "19" "19" 0x00000001) + Pin(2330 2895 60 28 "20" "20" 0x00000001) + Pin(2930 2895 60 28 "21" "21" 0x00000001) + Pin(2930 2795 60 28 "22" "22" 0x00000001) + Pin(2930 2695 60 28 "23" "23" 0x00000001) + Pin(2930 2595 60 28 "24" "24" 0x00000001) + Pin(2930 2495 60 28 "25" "25" 0x00000001) + Pin(2930 2395 60 28 "26" "26" 0x00000001) + Pin(2930 2295 60 28 "27" "27" 0x00000001) + Pin(2930 2195 60 28 "28" "28" 0x00000001) + Pin(2930 2095 60 28 "29" "29" 0x00000001) + Pin(2930 1995 60 28 "30" "30" 0x00000001) + Pin(2930 1895 60 28 "31" "31" 0x00000001) + Pin(2930 1795 60 28 "32" "32" 0x00000001) + Pin(2930 1695 60 28 "33" "33" 0x00000001) + Pin(2930 1595 60 28 "34" "34" 0x00000001) + Pin(2930 1495 60 28 "35" "35" 0x00000001) + Pin(2930 1395 60 28 "36" "36" 0x00000001) + Pin(2930 1295 60 28 "37" "37" 0x00000001) + Pin(2930 1195 60 28 "38" "38" 0x00000001) + Pin(2930 1095 60 28 "39" "39" 0x00000001) + Pin(2930 995 60 28 "40" "40" 0x00000001) + ElementLine (2280 945 2280 2945 10) + ElementLine (2280 2945 2980 2945 10) + ElementLine (2980 2945 2980 945 10) + ElementLine (2280 945 2580 945 10) + ElementLine (2680 945 2980 945 10) + ElementArc (2630 945 50 50 0 180 10) + Mark (2330 995) +) + +Element(0x00000000 "R 0.25W" "R1" "10k" 3150 2285 1 100 0x00000000) +( + Pin(3170 2455 50 20 "1" "1" 0x00000101) + Pin(3170 2055 50 20 "2" "2" 0x00000001) + ElementLine (3170 2155 3170 2055 20) + ElementLine (3170 2455 3170 2355 20) + ElementLine (3220 2355 3120 2355 20) + ElementLine (3220 2155 3220 2355 20) + ElementLine (3120 2155 3220 2155 20) + ElementLine (3120 2355 3120 2155 20) + Mark (3170 2455) +) + +Element(0x00000000 "8 D-type transparent latches 3-state" "U11" "74373" 2790 3695 0 100 0x00000000) +( + Pin(2740 3865 60 28 "/OC" "1" 0x00000101) + Pin(2840 3865 60 28 "1Q" "2" 0x00000001) + Pin(2940 3865 60 28 "1D" "3" 0x00000001) + Pin(3040 3865 60 28 "2D" "4" 0x00000001) + Pin(3140 3865 60 28 "2Q" "5" 0x00000001) + Pin(3240 3865 60 28 "3Q" "6" 0x00000001) + Pin(3340 3865 60 28 "3D" "7" 0x00000001) + Pin(3440 3865 60 28 "4D" "8" 0x00000001) + Pin(3540 3865 60 28 "4Q" "9" 0x00000001) + Pin(3640 3865 60 28 "Gnd" "10" 0x00000001) + Pin(3640 3565 60 28 "C" "11" 0x00000001) + Pin(3540 3565 60 28 "5Q" "12" 0x00000001) + Pin(3440 3565 60 28 "5D" "13" 0x00000001) + Pin(3340 3565 60 28 "6D" "14" 0x00000001) + Pin(3240 3565 60 28 "6Q" "15" 0x00000001) + Pin(3140 3565 60 28 "7Q" "16" 0x00000001) + Pin(3040 3565 60 28 "7D" "17" 0x00000001) + Pin(2940 3565 60 28 "8D" "18" 0x00000001) + Pin(2840 3565 60 28 "8Q" "19" 0x00000001) + Pin(2740 3565 60 28 "Vcc" "20" 0x00000001) + ElementLine (2690 3665 2690 3515 10) + ElementLine (2690 3915 2690 3765 10) + ElementLine (3690 3515 2690 3515 10) + ElementLine (3690 3915 3690 3515 10) + ElementLine (2690 3915 3690 3915 10) + ElementArc (2690 3715 50 50 90 180 10) + Mark (2740 3865) +) + +Element(0x00000000 "6 Schmitt trigger inverter" "U14" "7414" 4060 3695 0 100 0x00000000) +( + Pin(4010 3865 60 28 "1A" "1" 0x00000101) + Pin(4110 3865 60 28 "1Y" "2" 0x00000001) + Pin(4210 3865 60 28 "2A" "3" 0x00000001) + Pin(4310 3865 60 28 "2Y" "4" 0x00000001) + Pin(4410 3865 60 28 "3A" "5" 0x00000001) + Pin(4510 3865 60 28 "3Y" "6" 0x00000001) + Pin(4610 3865 60 28 "Gnd" "7" 0x00000001) + Pin(4610 3565 60 28 "4Y" "8" 0x00000001) + Pin(4510 3565 60 28 "4A" "9" 0x00000001) + Pin(4410 3565 60 28 "5Y" "10" 0x00000001) + Pin(4310 3565 60 28 "5A" "11" 0x00000001) + Pin(4210 3565 60 28 "6Y" "12" 0x00000001) + Pin(4110 3565 60 28 "6A" "13" 0x00000001) + Pin(4010 3565 60 28 "Vcc" "14" 0x00000001) + ElementLine (3960 3665 3960 3515 10) + ElementLine (3960 3915 3960 3765 10) + ElementLine (4660 3515 3960 3515 10) + ElementLine (4660 3915 4660 3515 10) + ElementLine (3960 3915 4660 3915 10) + ElementArc (3960 3715 50 50 90 180 10) + Mark (4010 3865) +) + +Element(0x00000000 "8 edge FF 3-state" "U5" "74374" 5980 1245 0 100 0x00000000) +( + Pin(5930 1415 60 28 "/OC" "1" 0x00000101) + Pin(6030 1415 60 28 "1Q" "2" 0x00000001) + Pin(6130 1415 60 28 "1D" "3" 0x00000001) + Pin(6230 1415 60 28 "2D" "4" 0x00000001) + Pin(6330 1415 60 28 "2Q" "5" 0x00000001) + Pin(6430 1415 60 28 "3Q" "6" 0x00000001) + Pin(6530 1415 60 28 "3D" "7" 0x00000001) + Pin(6630 1415 60 28 "4D" "8" 0x00000001) + Pin(6730 1415 60 28 "4Q" "9" 0x00000001) + Pin(6830 1415 60 28 "Gnd" "10" 0x00000001) + Pin(6830 1115 60 28 "C" "11" 0x00000001) + Pin(6730 1115 60 28 "5Q" "12" 0x00000001) + Pin(6630 1115 60 28 "5D" "13" 0x00000001) + Pin(6530 1115 60 28 "6D" "14" 0x00000001) + Pin(6430 1115 60 28 "6Q" "15" 0x00000001) + Pin(6330 1115 60 28 "7Q" "16" 0x00000001) + Pin(6230 1115 60 28 "7D" "17" 0x00000001) + Pin(6130 1115 60 28 "8D" "18" 0x00000001) + Pin(6030 1115 60 28 "8Q" "19" 0x00000001) + Pin(5930 1115 60 28 "Vcc" "20" 0x00000001) + ElementLine (5880 1215 5880 1065 10) + ElementLine (5880 1465 5880 1315 10) + ElementLine (6880 1065 5880 1065 10) + ElementLine (6880 1465 6880 1065 10) + ElementLine (5880 1465 6880 1465 10) + ElementArc (5880 1265 50 50 90 180 10) + Mark (5930 1415) +) + +Element(0x00000000 "capacitor_radial" "C1" "300" 785 1510 0 100 0x00000000) +( + Pin(560 1660 60 20 "1" "1" 0x00000101) + Pin(710 1660 60 20 "2" "2" 0x00000001) + ElementArc (635 1660 150 150 0 360 10) + Mark (560 1660) +) + +Element(0x00000000 "4 dual-OR" "U12" "7432" 1795 3675 0 100 0x00000000) +( + Pin(1745 3845 60 28 "A1" "1" 0x00000101) + Pin(1845 3845 60 28 "B1" "2" 0x00000001) + Pin(1945 3845 60 28 "Y1" "3" 0x00000001) + Pin(2045 3845 60 28 "A2" "4" 0x00000001) + Pin(2145 3845 60 28 "B2" "5" 0x00000001) + Pin(2245 3845 60 28 "Y2" "6" 0x00000001) + Pin(2345 3845 60 28 "Gnd" "7" 0x00000001) + Pin(2345 3545 60 28 "Y3" "8" 0x00000001) + Pin(2245 3545 60 28 "A3" "9" 0x00000001) + Pin(2145 3545 60 28 "B3" "10" 0x00000001) + Pin(2045 3545 60 28 "Y4" "11" 0x00000001) + Pin(1945 3545 60 28 "A4" "12" 0x00000001) + Pin(1845 3545 60 28 "B4" "13" 0x00000001) + Pin(1745 3545 60 28 "Vcc" "14" 0x00000001) + ElementLine (1695 3645 1695 3495 10) + ElementLine (1695 3895 1695 3745 10) + ElementLine (2395 3495 1695 3495 10) + ElementLine (2395 3895 2395 3495 10) + ElementLine (1695 3895 2395 3895 10) + ElementArc (1695 3695 50 50 90 180 10) + Mark (1745 3845) +) + +Element(0x00000000 "6 Schmitt trigger inverter" "U13" "7414" 820 3655 0 100 0x00000000) +( + Pin(770 3825 60 28 "1A" "1" 0x00000101) + Pin(870 3825 60 28 "1Y" "2" 0x00000001) + Pin(970 3825 60 28 "2A" "3" 0x00000001) + Pin(1070 3825 60 28 "2Y" "4" 0x00000001) + Pin(1170 3825 60 28 "3A" "5" 0x00000001) + Pin(1270 3825 60 28 "3Y" "6" 0x00000001) + Pin(1370 3825 60 28 "Gnd" "7" 0x00000001) + Pin(1370 3525 60 28 "4Y" "8" 0x00000001) + Pin(1270 3525 60 28 "4A" "9" 0x00000001) + Pin(1170 3525 60 28 "5Y" "10" 0x00000001) + Pin(1070 3525 60 28 "5A" "11" 0x00000001) + Pin(970 3525 60 28 "6Y" "12" 0x00000001) + Pin(870 3525 60 28 "6A" "13" 0x00000001) + Pin(770 3525 60 28 "Vcc" "14" 0x00000001) + ElementLine (720 3625 720 3475 10) + ElementLine (720 3875 720 3725 10) + ElementLine (1420 3475 720 3475 10) + ElementLine (1420 3875 1420 3475 10) + ElementLine (720 3875 1420 3875 10) + ElementArc (720 3675 50 50 90 180 10) + Mark (770 3825) +) +Layer(1 "solder") +( +) +Layer(2 "GND-sldr") +( +) +Layer(3 "Vcc-sldr") +( +) +Layer(4 "component") +( +) +Layer(5 "GND-comp") +( +) +Layer(6 "Vcc-comp") +( +) +Layer(7 "unused") +( +) +Layer(8 "unused") +( +) Index: tools/pcb2ncap/up2pcb.cc =================================================================== --- tools/pcb2ncap/up2pcb.cc (nonexistent) +++ tools/pcb2ncap/up2pcb.cc (revision 1332) @@ -0,0 +1,121 @@ +/* + * COPYRIGHT + * + * up2pcb, simple unixplot file to pcb sintaxe file program converter + * Copyright (C) 2001 Luis Claudio Gambôa Lopes + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + * Contact address for Email: + * lcgamboa@yahoo.com + * + */ + +#include +#include +#include + +#include + + +using namespace std; + +float SCALE= 3.0; + +int +main (int argc, char **argv) +{ + int x1, y1, x2, y2, r; + string s; + string fname,fname2; + + for (int d = 1; d < argc; d++) + { + fname = argv[d]; + FILE *fi, *fo, *fov; + float sx,sy; + + fi = fopen (fname.c_str (), "r"); + fname2 =fname+ ".lpcb"; + fo = fopen (fname2.c_str (), "w"); + fname2 =fname+ ".vpcb"; + fov = fopen (fname2.c_str (), "w"); + + while (!feof (fi)) + { + switch (getc (fi)) + { + case 's': + x1 = getc (fi) + (getc (fi) * 256); + y1 = getc (fi) + (getc (fi) * 256); + x2 = getc (fi) + (getc (fi) * 256); + y2 = getc (fi) + (getc (fi) * 256); + + sx= x2/600.0; + sy= y2/800.0; + if(sx +#include +#include + +#include + + +using namespace std; + +float SCALE= 3.0; + +int +main (int argc, char **argv) +{ + int x1, y1, x2, y2, r; + string s; + string fname; + + for (int d = 1; d < argc; d++) + { + fname = argv[d]; + FILE *fi, *fo; + float sx,sy; + + fi = fopen (fname.c_str (), "r"); + fname += ".ps"; + fo = fopen (fname.c_str (), "w"); + fprintf (fo, + "%!\n\%\%BoundingBox: 18 25 572 579\n/Courier findfont 12 scalefont setfont\n0 0 0 setrgbcolor\n0.1 setlinewidth newpath\n"); + while (!feof (fi)) + { + switch (getc (fi)) + { + case 's': + x1 = getc (fi) + (getc (fi) * 256); + y1 = getc (fi) + (getc (fi) * 256); + x2 = getc (fi) + (getc (fi) * 256); + y2 = getc (fi) + (getc (fi) * 256); + + sx= x2/600.0; + sy= y2/800.0; + if(sx