home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 13 / 13.iso / p / p078 / 3.img / NETFORMS.PLB / PADSASC0.CF < prev    next >
Encoding:
Text File  |  1991-10-14  |  5.9 KB  |  276 lines

  1. /*
  2.     /2
  3.     /L Do not append sheet number to labels
  4.  */
  5.  
  6. /*  VERSION="1.10   14-OCT-91"
  7.  *      - Added Version message
  8.  *
  9.  *  Capacities:
  10.  *      - Part Names are not checked for length
  11.  *      - Module Names not checked for length
  12.  *      - Reference Strings are limited to 6 characters
  13.  *      - Node Names are limited to 12 characters
  14.  *      - Node Numbers are limited to 5 digits (plus the leading 'N')
  15.  *      - Pin Numbers are not checked for length
  16.  *
  17.  *  Characters:
  18.  *      - Node names can only use these characters { '~!#$%_-=+|/.:;<>', 'A-Z', 'a-z', '0-9' }
  19.  *      - References can only use these characters { 'A-Z', 'a-z', '0-9' }
  20.  */
  21.  
  22. int sw_L;
  23.  
  24. int net_items;
  25.  
  26. /*-----------------------*/
  27.  
  28. Initialize()
  29. {
  30.     WriteString(0, "Creating Netlist...");
  31.     WriteCrLf(0);
  32.  
  33.     AddSymbol("Error");
  34.     SetSymbol(Error, "E");
  35.  
  36.     /* used to pad their standard symbol namesakes with spaces */
  37.     AddSymbol("ReferenceStr");
  38.     AddSymbol("SignalNameStr");
  39.  
  40.     SetNumberWidth(0);
  41.  
  42.     sw_L = SwitchIsSet("L");
  43. }
  44.  
  45. /*-----------------------*/
  46.  
  47. WriteHeader()
  48. {
  49.     int legal;
  50.     int len;
  51.  
  52.     SetCharSet("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ");
  53.  
  54.     WriteString(2, "*PADS-PCB");
  55.     WriteCrLf(2);
  56.     WriteString(2, "*Part*");
  57.     WriteCrLf(2);
  58.  
  59.     while (LoadInstance())
  60.     {
  61.         CopySymbol(ReferenceString, ReferenceStr);
  62.         legal = SymbolInCharSet(ReferenceStr);
  63.         PadSpaces(ReferenceStr, 6);
  64.         if (legal != 1)
  65.         {
  66.             WriteString(0, "ERROR: Reference contains illegal characters '");
  67.             WriteSymbol(0, ReferenceString);
  68.             WriteString(0, "'");
  69.             WriteCrLf(0);
  70.             SetSymbol(ExitType, "E");
  71.         }
  72.         else
  73.         {
  74.             len = SymbolLength(ReferenceString);
  75.             if (len > 6)
  76.             {
  77.                 WriteString(0, "ERROR: Reference is too long '");
  78.                 WriteSymbol(0, ReferenceString);
  79.                 WriteString(0, "', truncated to ");
  80.                 WriteSymbol(0, ReferenceStr);
  81.                 WriteCrLf(0);
  82.  
  83.                 SetSymbol(ExitType, "E");
  84.             }
  85.         }
  86.         WriteSymbol(2, ReferenceStr);
  87.         WriteString(2, " ");
  88.  
  89.         /* if the ModuleName is empty, then use the PartName */
  90.         len = SymbolLength(ModuleName);
  91.         if (len > 0)
  92.         {
  93.             WriteSymbol(2, ModuleName);
  94.         }
  95.         else
  96.         {
  97.             WriteSymbol(2, PartName);
  98.         }
  99.         WriteCrLf(2);
  100.     }
  101.  
  102.     WriteString(2, "*End");
  103.     WriteCrLf(2);
  104.  
  105.     SetCharSet("~!#$%_-=+|/.:;<>0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ");
  106.  
  107.     WriteString(1, "*PADS-PCB");
  108.     WriteCrLf(1);
  109.     WriteString(1, "*Net");
  110.     WriteCrLf(1);
  111. }
  112.  
  113. /*-----------------------*/
  114.  
  115. HandleNodeName()
  116. {
  117.     int i;
  118.     int legal;
  119.     int len;
  120.  
  121.     net_items = 0;
  122.     WriteString(1, "*Sig ");
  123.  
  124.     i = GetStandardSymbol(TypeCode);
  125.  
  126.     CopySymbol(SignalNameString, SignalNameStr);
  127.     legal = SymbolInCharSet(SignalNameStr);
  128.     if (legal != 1)
  129.     {
  130.         /* illegal character in the node name */
  131.         WriteString(0, "WARNING: Name contains illegal characters '");
  132.         WriteSymbol(0, SignalNameStr);
  133.         WriteString(0, "', changed to N");
  134.         WriteSymbol(0, NetNumber);
  135.         WriteCrLf(0);
  136.  
  137.         i = CompareSymbol(ExitType, Error);
  138.         if (i != 0) { SetSymbol(ExitType, "W"); }
  139.  
  140.         i = 'N';
  141.     }
  142.  
  143.     if (i == 'L')
  144.     {
  145.         if (sw_L == 0)
  146.         {
  147.             SetNumberWidth(1);
  148.             MakeLocalSignal("-");
  149.             SetNumberWidth(5);
  150.             CopySymbol(LocalSignal, SignalNameStr);
  151.         }
  152.     }
  153.  
  154.     len = SymbolLength(SignalNameStr);
  155.     if (len > 12)
  156.     {
  157.         WriteString(0, "WARNING: Name is too long '");
  158.         WriteSymbol(0, SignalNameStr);
  159.         WriteString(0, "', changed to N");
  160.         WriteSymbol(0, NetNumber);
  161.         WriteCrLf(0);
  162.  
  163.         i = CompareSymbol(ExitType, Error);
  164.         if (i != 0) { SetSymbol(ExitType, "W"); }
  165.  
  166.         i = 'N';
  167.     }
  168.  
  169.     if (i == 'L')
  170.     {
  171.         WriteSymbol(1, SignalNameStr);
  172.     }
  173.     if (i == 'P')
  174.     {
  175.         WriteSymbol(1, SignalNameStr);
  176.     }
  177.     if (i == 'S')
  178.     {
  179.         WriteSymbol(1, SignalNameStr);
  180.     }
  181.     if (i == 'N')
  182.     {
  183.         WriteString(1, "N");
  184.         WriteSymbol(1, NetNumber);
  185.     }
  186.     if (i == 'U')
  187.     {
  188.         WriteString(1, "N");
  189.         WriteSymbol(1, NetNumber);
  190.     }
  191.     WriteCrLf(1);
  192. }
  193.  
  194. /*-----------------------*/
  195.  
  196. WriteNet()
  197. {
  198.     int i;
  199.  
  200.     if (net_items == 8)
  201.     {
  202.         WriteCrLf(1);
  203.         WriteString(1, "*Sig ");
  204.  
  205.         i = GetStandardSymbol(TypeCode);
  206.         if (i == 'L')
  207.         {
  208.             WriteSymbol(1, SignalNameStr);
  209.         }
  210.         if (i == 'P')
  211.         {
  212.             WriteSymbol(1, SignalNameStr);
  213.         }
  214.         if (i == 'S')
  215.         {
  216.             WriteSymbol(1, SignalNameStr);
  217.         }
  218.         if (i == 'U')
  219.         {
  220.             WriteString(1, "N");
  221.             WriteSymbol(1, NetNumber);
  222.         }
  223.         if (i == 'N')
  224.         {
  225.             WriteString(1, "N");
  226.             WriteSymbol(1, NetNumber);
  227.         }
  228.         WriteCrLf(1);
  229.  
  230.         net_items = 0;
  231.     }
  232.  
  233.     if (net_items != 0)
  234.     {
  235.         WriteString(1, " ");
  236.     }
  237.  
  238.     CopySymbol(ReferenceString, ReferenceStr);
  239.     i = SymbolLength(ReferenceString);
  240.     if (i > 6)
  241.     {
  242.         PadSpaces(ReferenceStr, 6);
  243.     }
  244.     WriteSymbol(1, ReferenceStr);
  245.     WriteString(1, ".");
  246.     WriteSymbol(1, PinNumberString);
  247.  
  248.     net_items = net_items + 1;
  249. }
  250.  
  251. /*-----------------------*/
  252.  
  253. WriteNetEnding()
  254. {
  255.     WriteCrLf(1);
  256. }
  257.  
  258. /*-----------------------*/
  259.  
  260. ProcessFieldStrings()
  261. {
  262. }
  263.  
  264. /*-----------------------*/
  265.  
  266. WriteNetListEnd()
  267. {
  268.     WriteString(1, "*End");
  269.     WriteCrLf(1);
  270.  
  271.     WriteString(0, "Done");
  272.     WriteCrLf(0);
  273. }
  274.  
  275.  
  276.