OK, I just finished (or at least got working) BLUE.EXE. It compares the parts in a PADS-Logic netlist to our MAX parts/inventory database.
It checks that each PADS part on the board has the required attribute fields. A part entry in the PADS-Logic netlist file looks like
PART C50 { "ORIG" JL 7-24-96 "DESC" 0603 SURFACE MOUNT CAPACITOR "HTI" 103-2720 "VALUE" 0.33uF }
Where HTI is our in-house MAX stock number. Pretty ugly, no? PITA to parse.
The program verifies that the DESC, HTI, and VALUE fields are present and look about right, then verifies that the corresponding MAX part actually exists, then verifies the value and package types against what MAX expects. I only process R/L/C parts, since they are the ones that cause the most trouble.
It's done in PowerBasic in the clumsiest way possible... tons of string operations, linear search of all MAX parts for every PADS part, gross stuff like that. Analysis of a 1200 part VME board runs in 0.156 seconds.
Parsing and comparing the values was a little tricky. 0.33uF was not exactly the same as 330nF in floating point, and some people decided that m was milli but M was mega. Sometimes.
And things like "1206" can appear in various places in the DESC field for some PADS parts, like resistor networks. And so on.
560 line source file, 38 kbytes compiled.
PINK.EXE was the one that compares two PADS-Logic or PADS-PCB netlists.
John