home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 13 / 13.iso / p / p078 / 3.img / NETFORMS.PLB / CALAY.CF < prev    next >
Encoding:
Text File  |  1991-10-14  |  5.7 KB  |  250 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 can contain up to 19 characters
  11.  *      - Module Names can contain up to 19 characters
  12.  *      - Reference Strings can contain up to 19 characters
  13.  *      - Node Names can contain up to 8 characters (see legal characters below)
  14.  *      - Node Numbers are limited to 5 digits (plus the leading 'N')
  15.  *      - Pin Numbers are not checked for length
  16.  *
  17.  *  Characters:
  18.  *      - All characters are legal for Part Names, Module Names, and Reference Strings
  19.  *      - Legal characters for Node Names are { '+-', '0..9', 'a..z', 'A..Z' }
  20.  */
  21.  
  22. int sw_L;
  23.  
  24. int net_items;
  25. int len;
  26.  
  27. /*-----------------------*/
  28.  
  29. Initialize()
  30. {
  31.     WriteString(0, "Creating Netlist...");
  32.     WriteCrLf(0);
  33.  
  34.     AddSymbol("Error");
  35.     SetSymbol(Error, "E");
  36.  
  37.     /* used to pad their standard symbol namesakes with spaces */
  38.     AddSymbol("PartNameStr");
  39.     AddSymbol("ModuleNameStr");
  40.     AddSymbol("ReferenceStr");
  41.     AddSymbol("SignalNameStr");
  42.  
  43.     /* set up the legal character set */
  44.     SetCharSet("+-0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ");
  45.     SetNumberWidth(5);
  46.  
  47.     sw_L = SwitchIsSet("L");
  48. }
  49.  
  50. /*-----------------------*/
  51.  
  52. WriteHeader()
  53. {
  54.     while (LoadInstance())
  55.     {
  56.         CopySymbol(PartName, PartNameStr);
  57.         PadSpaces(PartNameStr, 19);
  58.         len = SymbolLength(PartName);
  59.         if (len > 19)
  60.         {
  61.             WriteString(0, "ERROR: Name is too long '");
  62.             WriteSymbol(0, PartName);
  63.             WriteString(0, "', truncated to ");
  64.             WriteSymbol(0, PartNameStr);
  65.             WriteCrLf(0);
  66.  
  67.             SetSymbol(ExitType, "E");
  68.         }
  69.         WriteSymbol(2, PartNameStr);
  70.         WriteString(2, " ");
  71.  
  72.         CopySymbol(ReferenceString, ReferenceStr);
  73.         PadSpaces(ReferenceStr, 19);
  74.         len = SymbolLength(ReferenceString);
  75.         if (len > 19)
  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.         WriteSymbol(2, ReferenceStr);
  86.         WriteString(2, " ");
  87.  
  88.         /* if the ModuleName is empty, then use the PartName */
  89.         len = SymbolLength(ModuleName);
  90.         if (len > 0)
  91.         {
  92.             CopySymbol(ModuleName, ModuleNameStr);
  93.             PadSpaces(ModuleNameStr, 19);
  94.  
  95.             if (len > 19)
  96.             {
  97.                 WriteString(0, "ERROR: Name is too long '");
  98.                 WriteSymbol(0, ModuleName);
  99.                 WriteString(0, "', truncated to ");
  100.                 WriteSymbol(0, ModuleNameStr);
  101.                 WriteCrLf(0);
  102.  
  103.                 SetSymbol(ExitType, "E");
  104.             }
  105.             WriteSymbol(2, ModuleNameStr);
  106.         }
  107.         else
  108.         {
  109.             PadSpaces(PartNameStr, 19);
  110.             WriteSymbol(2, PartNameStr);
  111.         }
  112.  
  113.         WriteString(2, " 000     000     0");
  114.         WriteCrLf(2);
  115.     }
  116. }
  117.  
  118. /*-----------------------*/
  119.  
  120. HandleNodeName()
  121. {
  122.     int i;
  123.     int legal;
  124.  
  125.     net_items = 0;
  126.     i = GetStandardSymbol(TypeCode);
  127.  
  128.     CopySymbol(SignalNameString, SignalNameStr);
  129.     legal = SymbolInCharSet(SignalNameStr);
  130.     if (legal != 1)
  131.     {
  132.         /* illegal character in the node name */
  133.         WriteString(0, "WARNING: Name contains illegal characters '");
  134.         WriteSymbol(0, SignalNameStr);
  135.         WriteString(0, "', changed to N");
  136.         WriteSymbol(0, NetNumber);
  137.         WriteCrLf(0);
  138.  
  139.         i = CompareSymbol(ExitType, Error);
  140.         if (i != 0) { SetSymbol(ExitType, "W"); }
  141.  
  142.         i = 'N';
  143.     }
  144.  
  145.     if (i == 'L')
  146.     {
  147.         if (sw_L == 0)
  148.         {
  149.             SetNumberWidth(1);
  150.             MakeLocalSignal("-");
  151.             SetNumberWidth(5);
  152.             CopySymbol(LocalSignal, SignalNameStr);
  153.         }
  154.     }
  155.  
  156.     len = SymbolLength(SignalNameStr);
  157.     if (len > 8)
  158.     {
  159.         WriteString(0, "WARNING: Name is too long '");
  160.         WriteSymbol(0, SignalNameStr);
  161.         WriteString(0, "', changed to N");
  162.         WriteSymbol(0, NetNumber);
  163.         WriteCrLf(0);
  164.  
  165.         i = CompareSymbol(ExitType, Error);
  166.         if (i != 0) { SetSymbol(ExitType, "W"); }
  167.  
  168.         i = 'N';
  169.     }
  170.     else
  171.     {
  172.         PadSpaces(SignalNameStr, 8);
  173.     }
  174.     WriteString(1, "/");
  175.  
  176.     if (i == 'L')
  177.     {
  178.         WriteSymbol(1, SignalNameStr);
  179.     }
  180.     if (i == 'P')
  181.     {
  182.         WriteSymbol(1, SignalNameStr);
  183.     }
  184.     if (i == 'S')
  185.     {
  186.         WriteSymbol(1, SignalNameStr);
  187.     }
  188.     if (i == 'N')
  189.     {
  190.         WriteString(1, "N");
  191.         WriteSymbol(1, NetNumber);
  192.         WriteString(1, "  ");
  193.     }
  194.     if (i == 'U')
  195.     {
  196.         WriteString(1, "N");
  197.         WriteSymbol(1, NetNumber);
  198.         WriteString(1, "  ");
  199.     }
  200. }
  201.  
  202. /*-----------------------*/
  203.  
  204. WriteNet()
  205. {
  206.     if (net_items == 8)
  207.     {
  208.         WriteString(1, ",");
  209.         WriteCrLf(1);
  210.         WriteString(1, "          ");
  211.  
  212.         net_items = 0;
  213.     }
  214.     else
  215.     {
  216.         WriteString(1, " ");
  217.     }
  218.  
  219.     WriteSymbol(1, ReferenceString);
  220.     WriteString(1, "(");
  221.     WriteSymbol(1, PinNumberString);
  222.     WriteString(1, ")");
  223.  
  224.     net_items = net_items + 1;
  225. }
  226.  
  227. /*-----------------------*/
  228.  
  229. WriteNetEnding()
  230. {
  231.     WriteString(1, ";");
  232.     WriteCrLf(1);
  233. }
  234.  
  235. /*-----------------------*/
  236.  
  237. ProcessFieldStrings()
  238. {
  239. }
  240.  
  241. /*-----------------------*/
  242.  
  243. WriteNetListEnd()
  244. {
  245.     WriteString(0, "Done");
  246.     WriteCrLf(0);
  247. }
  248.  
  249.  
  250.