home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 13 / 13.iso / p / p080 / 1.img / PCAD.ZIP / PCAD.DIR < prev    next >
Encoding:
File List  |  1992-07-02  |  68.6 KB  |  2,466 lines

  1. *
  2. *   Copyright @1990 P-CAD CADAM, Inc.
  3. *
  4. *   Shell directive file
  5. *
  6. *  This file is read by the executable "pcad_exe" to determine
  7. *  process flow for multiprocess P-CAD tasks.  The "pcad_exe" 
  8. *  executable handles multitasking communication and file
  9. *  I/O requests defined in this directive file.
  10. *
  11. *  Supported command keywords:
  12. *
  13. *  "ADDCFG",     replace a keyword and its value in a config file
  14. *  "CALL",       call a shell directive subroutine
  15. *  "CLOSECFG",   close the current config file
  16. *  "COMMDEF",    begin the definition of a new command
  17. *  "DEBUG",      turn on the debug (verbose) feature for directive execution
  18. *  "COPYCFG",    copy the first argument (file) to the second argument (file)
  19. *  "DELCFG",     delete all occurences of a keyword in a config file
  20. *  "DELFILE",    delete a file from the current directory
  21. *  "DISPLAY",    display a string at specified panel item
  22. *  "ENDIF",      end of "IF" shell directive construct
  23. *  "ENDWHILE",   end of "WHILE" shell directive construct
  24. *  "ELSE",       else shell directive construct
  25. *  "IF",         if shell directive construct
  26. *  "ITEMAPPL",   panel item to be made visible for specified application
  27. *  "OPENCFG",    open (and/or make current) specified config file
  28. *  "PRINT",      print string to standard out
  29. *  "PUTCFG",     put another occurence of keyword and it value in config file
  30. *  "REMOVECFG",  delete the config file
  31. *  "RUN",        spawn a new process and wait until it returns
  32. *  "RUNLOCK",    spawn a new process based on a lock file 
  33. *                             and wait until it returns
  34. *  "SECPORT",    current security device port
  35. *  "SPECIAL",    special shell directives:
  36. *                       DOSSHELL - invoke a DOS shell
  37. *                       DSNNONE - write out current pcad.cfg file
  38. *                       DSNROOT - change to the initial root dir
  39. *                       DSNDIR  - change to the current design dir
  40. *                       DSNINIT - read the current pcad.cfg file
  41. *                       DSNGHOSTED - ghost main PRE-VUE panel
  42. *                       DSNSELECTABLE - make main PRE-VUE panel selectable
  43. *  "SPAWN",      spawn a new process
  44. *  "SPAWNLOCK",  spawn a new process based on a lock file
  45. *  "STATEAPPL",  panel item state to be made visible for specified application
  46. *  "SUBROUTINE", begin definition of a shell directive subroutine
  47. *  "TOTALAPPL",  define the number of applications for the shell
  48. *  "VARSET",     define a vairable and assign a value to it 
  49. *  "WHILE",      while shell directive construct
  50. *                      special conditionals supported:
  51. *                          SHEET - iteration on design sheets
  52. *                          CURRPCB - iteration on design layouts
  53. *
  54. *  Supported directive argument keywords:
  55. *
  56. *  "BASENAME",   retrieve a base name from a filename; the extension
  57. *                is removed if it matches the second argument;
  58. *                take two args: <filename> and <extension>
  59. *  "CFGNEXT",    the next keyword-value pair in a config file
  60. *  "CFGVAL",     the first keyword-value pair for the specified keyword
  61. *  "CURRPCB",    the current PCB Layout database file name
  62. *  "DEPEND",     date dependency test: arg1-target; arg2-dependency
  63. *  "DESIGN",     the current design name (used after FILENAME)
  64. *  "DSNNAME",    the current designdir name (get shell global value)
  65. *  "DIRECTORYNAME",  define a directory name: one arg
  66. *  "EQUAL",      equality test: takes two args
  67. *  "EXISTS",     existence test: takes one arg
  68. *  "FILENAME",   define a file name: take two args: base+ext
  69. *  "HOSTID",     the current machine name
  70. *  "NOTEQUAL",   inequality test: takes two args
  71. *  "NEXTPCB",    returns the next valid pcb id for the current design
  72. *                       WARNING : assumes design.cfg is open
  73. *  "NEXTSCH",    returns the next valid sch id for the current design
  74. *                       WARNING : assumes design.cfg is open
  75. *  "NULLSTR",    null string constant
  76. *  "QUOTE",      begin / end a quoted string
  77. *  "PCB",        the default PCB layout database name for the current design
  78. *                              ( for use with FILENAME)
  79. *  "PCBNAME",    the default PCB layout database name for the current design
  80. *  "PROCESSID",  the process id for the current shell
  81. *  "RETCODE",     the return code of immediately preceding spawned job
  82. *  "SCHNAME",    the current sheet file name
  83. *  "SHEET",      interatively gets all sheet file names for the current
  84. *  "UNIQUENAME",  returns a unique file name
  85. *  "USERID",     the current user login id
  86. *  "VALIDLOCKFILE",     tests for valid lock file 
  87. *  "VARVAL",     returns the value for a shell variable
  88. *
  89. *
  90. *
  91. * HISTORY:
  92. *     10-20-89 | HBS| first version
  93. *     03-13-90 | wfn| updated Design Props., ASCII Mnt., Sch Editor
  94. *              |    |   PCB editor, Library Set Path, Router, ASCIIExt, Runlink
  95. *     04-02-90 | eew| added updates for the router and new changes for drill
  96. *              |    |   and hardcopy ( hardcopy is still not quite done)
  97. *     04-09-90 | RRB| merged SJ and Boston changes; look and feel changes
  98. *     04-14-90 | wfn| new keyword support : NEXTPCB and NEXTSCH to return
  99. *              |    |  next id for database files.  also now CURRPCB can
  100. *              |    |  be used with WHILE to iterate on layout files
  101. *     04-19-90 | RRB| "started" messages reworded, no longer erased explicitly
  102. *     04-19-90 | wfn| added Interfaces application commands and icon
  103. *              |    | added TOTALAPPL keyword
  104. *     04-23-90 | eew| added hardcopy control stuff
  105. *              |    |
  106. *     04-24-90 | mlh| Changed router section so rt_cleanup would unlock files
  107. *              |    | even when an error occurs.
  108. *     04-25-90 | RRB| "started" messages: restored explicit erase IF spawned
  109. *              |    | process; touched up some wording.
  110. *     05-11-90 | wfn| integrated latest hardcopy updates
  111. *     05-13-90 | wfn|
  112. *              | mah| fixed ECO problem (CURRPCB -> PCBNAME)
  113. *     05-17-90 | wfn| fixed DRC problem to init .rul (rules) and .cfg (pass)
  114. *              |    |   file names if not present in drc.cfg
  115. *     05-21-90 | wfn| added logic to do the following:
  116. *              |    |   a. read O_ComponentPaths from <editor>.cfg
  117. *              |    |       and transferring it to design.cfg
  118. *              |    |   b. setting and checking the O_FatalCondition
  119. *              |    |      flag for the editors only
  120. *              |    |   c. correcting the output to <editor>.cfg
  121. *              |    |      when there is no current db file.
  122. *     05-30-90 | wfn| integrated PACKAGE and ECO changes
  123. *     05-30-90 | wfn| added new function BASENAME
  124. *     06-05-90 | wfn| changed ext from DRC pass file from cfg to pas
  125. *     06-05-90 | wfn| added ext mfg for drill manufacturing report
  126. *     06-15-90 | wfn| added more extensions for Maintain Reports
  127. *     06-18-90 | mlh| Changed router section so the retack program will 
  128. *              |    | run to confirm return on interrupted route.
  129. *     07-08-90 | wfn| updated hardcopy directives
  130. *     08-27-90 | wfn| edited form directives; remembered last tool table
  131. *     08-30-90 | wfn| added new command COPYCFG
  132. *     09-03-90 | wfn| used unique config files for each utility thread
  133. *     09-10-90 | wfn| turned on interface application
  134. *     09-14-90 | wfn| fixed bug with VARSET on upd
  135. *     09-14-90 | wfn| moved COPYCFG statements to immediately after HI's
  136. *     09-17-90 | wfn| added LibraryFile parameter handling for caps and cards
  137. *     09-17-90 | wfn| do not set report file after HI for S2S in nlc
  138. *     09-26-90 | wfn| create temporary ppp files after HI for OUTPUT
  139. *     09-27-90 | wfn| added VALIDLOCKFILE
  140. *     09-28-90 | wfn| updated auto router directives
  141. *     12-21-90 | mah| updated default text editor for RS/6000
  142. *     03-26-91 | wfn| updated EDIF netlist directives
  143. *     09-12-91 | mah| added SPICE netlist directives
  144. *     03-18-92 |wingC| split LibraryPath/File for different types:PRT,SYM,NLT
  145. *     03-25-92 | jcm| changed names of EDIF executables for 6.0
  146. *     04-07-92 | jcm| added DELFILE keyword
  147. *     04-08-92 | jcm| initialize .rul (rules) and .cfg (pass) file names if
  148. *              |    | not present in cards.cfg
  149. *     04-08-92 |wingC| dropped Hierarchical_Top_Nodes, used Hierarchical_Symbols
  150. *                      instead.
  151. *     04-13-92 | rrb| upgraded auto router section to 5.0/6.0 level
  152. *     04-20-92 | jcm| added DOSSHELL keyword
  153. *     04-28-92 | jcm| check for O_OnlineDRC, O_UncommPin, O_SaveTime,
  154. *              |    | and O_TraceLength after pccards & pccaps
  155. *     04-28-92 | jcm| change exedif2 to nxedif2
  156. *     05-04-92 | jcm| change pcadcomp to pccomp & pcadlink to pclink
  157. *     05-04-92 |wingC| added forward annotation capability to ECO
  158. *     05-06-92 | jcm| Delete active PCB/Sch if LoadActive is "N".
  159. *     05-17-92 |wingC| combined sch/pcbhdrcpy.cfg to hardcopy.cfg and added
  160. *                      hardcopy RUN's options w/ -cfg for MarkH.
  161. *     06-03-92 |wingC| Forced only forward-annotation on ECO for hierarchical
  162. *                      designs.
  163. *     06-09-92 |wingC| allowed DRC Rule edit w/o a pcb.
  164. *     06-12-92 | jcm | used RUNT keyword for text mode applications
  165. *              |     | to eliminate top shell flashing
  166. *     06-17-92 | jcm | check for O_Filename after caps & cards and
  167. *              |     | transfer to design.cfg
  168. *     06-19-92 | jcm | changed hardcopy messages per Bug # 8896.
  169. *     06-25-92 |wingC| transfer basename(path striped off) of O_Filenaem after
  170. *            caps & cards to design.cfg, and Shell will in turn, 
  171. *            remove it if it doesn't bolong to curr design dir.
  172. *            (Bug#8958).
  173. *     06-30-92 | jcm | added RETCODE for preceding spawned job.
  174. *     06-30-92 |wingC| stops proceeding when ECO fails during Pack.(#8967)
  175. *     06-30-92 | jcm | changes to DSNROOT to run shadprog and returns to DSNDIR
  176. *     06-30-92 |wingC| skips PC-UPD when Packaging Schematic fails(#8783)
  177. *     07-02-92 |wingC| dropped RETCODE for RUNT(TEXTMODE) jobs -- Pcad_exe
  178.             (shdirutl.c) takes care of it based on the assumption
  179.             that nozero TEXTMODE return codes are fatal.
  180. *     07-02-92 | jcm | don't change to DSNDIR before calling shdesign    
  181.  
  182. * DEBUG
  183.  
  184. * Design Properties Command
  185. COMMDEF 310 310
  186. SPECIAL DSNNONE
  187. SPECIAL DSNROOT
  188. SPECIAL DSNGHOSTED
  189. IF VALIDLOCKFILE pcadcfg.lck
  190.   DISPLAY 12 QUOTE This concurrent operation not permitted. Sorry. QUOTE
  191. ELSE
  192.   DISPLAY 12 QUOTE Started Design Maintenance QUOTE
  193.   OPENCFG pcadcfg.lck
  194.   ADDCFG Lock_On_Process QUOTE PROCESSID USERID HOSTID QUOTE
  195.   CLOSECFG
  196. *  SPECIAL DSNDIR
  197.   RUNG QUOTE shdesign pcad.cfg QUOTE
  198. *  SPECIAL DSNROOT
  199.   OPENCFG pcadcfg.lck
  200.   REMOVECFG
  201.   DISPLAY 12 NULLSTR
  202. ENDIF
  203. SPECIAL DSNSELECTABLE
  204. SPECIAL DSNDIR
  205. SPECIAL DSNINIT
  206.  
  207. * Design ASCII file Command
  208. COMMDEF 312 312
  209. IF EXISTS design.cfg
  210.   SPECIAL DSNNONE
  211.   SPECIAL DSNROOT
  212. IF VALIDLOCKFILE pcadcfg.lck
  213.     DISPLAY 12 QUOTE This concurrent operation not permitted. Sorry. QUOTE
  214. ELSE
  215.     DISPLAY 12 QUOTE Started Report Editor QUOTE
  216.     OPENCFG pcadcfg.lck
  217.     ADDCFG Lock_On_Process QUOTE PROCESSID USERID HOSTID QUOTE
  218.     CLOSECFG
  219.     VARSET cfgfile pcad.cfg
  220.     CALL asciifiles
  221.     OPENCFG pcadcfg.lck
  222.     REMOVECFG
  223.     SPECIAL DSNDIR
  224.     RUNG QUOTE shascii pcad.cfg QUOTE
  225.     DISPLAY 12 NULLSTR
  226.   ENDIF
  227.   SPECIAL DSNDIR
  228.   SPECIAL DSNINIT
  229. ELSE
  230.   DISPLAY 12 QUOTE Please create a design first. QUOTE
  231. ENDIF
  232.  
  233.  
  234. * Package Command
  235. COMMDEF 104 104
  236. DISPLAY 12 QUOTE Started Package Schematic QUOTE
  237. VARSET config UNIQUENAME
  238. COPYCFG pack.cfg VARVAL config
  239. OPENCFG VARVAL config
  240. ADDCFG I_UserName DSNNAME
  241. ADDCFG I_NetlistFile FILENAME DESIGN xnl
  242. VARSET cfgval CFGVAL  P_BackAnnotate
  243. IF EQUAL VARVAL cfgval NULLSTR
  244.   ADDCFG P_BackAnnotate Y
  245. ENDIF
  246. DELCFG I_CrossReferenceFile
  247. OPENCFG design.cfg
  248. VARSET cfgval CFGVAL  I_CrossReferenceFile
  249. CLOSECFG
  250. OPENCFG VARVAL config
  251. IF NOTEQUAL VARVAL cfgval NULLSTR
  252.   PUTCFG I_CrossReferenceFile VARVAL cfgval
  253. ENDIF
  254. ADDCFG O_PCBFile FILENAME CURRPCB pcb
  255. ADDCFG O_AnnotatedNetlistFile FILENAME DESIGN bnl
  256. ADDCFG O_UpdateFile FILENAME DESIGN upd
  257. VARSET cfgfile VARVAL config
  258.  CALL initlibvars
  259. VARSET oldlibpath LibraryPath
  260. VARSET symlibpath SYM_LibraryPath
  261. VARSET prtlibpath PRT_LibraryPath
  262. VARSET nltlibpath NLT_LibraryPath
  263. VARSET oldlibfile LibraryFile
  264. VARSET symlibfile SYM_LibraryFile
  265. VARSET prtlibfile PRT_LibraryFile
  266. CALL utillibs
  267. CLOSECFG
  268. RUNN QUOTE shpack VARVAL config QUOTE
  269. COPYCFG VARVAL config pack.cfg
  270. OPENCFG VARVAL config
  271. VARSET cfgval CFGVAL I_RunFlag
  272. VARSET bckval CFGVAL P_BackAnnotate
  273. CLOSECFG
  274. IF EQUAL VARVAL cfgval Yes
  275.   TEXTMODE
  276.   VARSET nodesfil UNIQUENAME
  277.   VARSET linkfil  UNIQUENAME
  278.   CALL runlink
  279.   OPENCFG VARVAL nodesfil
  280.   REMOVECFG
  281.   OPENCFG VARVAL linkfil
  282.   REMOVECFG
  283.   RUNT QUOTE pcpack -cfg VARVAL config QUOTE
  284.   IF EQUAL VARVAL bckval Y
  285. * MD6.0 postmortem should consolidate this pcupd w/ that of ECO. 6-30-92.
  286.     VARSET updfil  UNIQUENAME
  287.     OPENCFG VARVAL updfil
  288.     ADDCFG I_UserName DSNNAME
  289.     ADDCFG I_UpdateFile FILENAME DESIGN upd
  290.     ADDCFG O_UpdateReportFile FILENAME DESIGN rpt
  291.     VARSET cfgfile VARVAL updfil
  292.     CALL initlibvars
  293.       VARSET oldlibpath LibraryPath
  294.       VARSET symlibpath SYM_LibraryPath
  295.       VARSET prtlibpath PRT_LibraryPath
  296.       VARSET oldlibfile LibraryFile
  297.       VARSET symlibfile SYM_LibraryFile
  298.       VARSET prtlibfile PRT_LibraryFile
  299.     CALL utillibs
  300.     CLOSECFG
  301.     RUNT QUOTE pcupd -cfg VARVAL updfil QUOTE
  302.     OPENCFG VARVAL updfil
  303.     REMOVECFG
  304.   ENDIF
  305. ENDIF
  306. OPENCFG VARVAL config
  307. REMOVECFG
  308. RESUME
  309. DISPLAY 12 NULLSTR
  310.  
  311. * ECO Command
  312. COMMDEF 303
  313. DISPLAY 12 QUOTE Started Engineering Change Order QUOTE
  314. * initial setup for back-annotation
  315. OPENCFG eco.cfg
  316. ADDCFG I_UserName DSNNAME
  317. ADDCFG I_Netlist1 FILENAME DESIGN xnl
  318. ADDCFG I_Netlist2 FILENAME CURRPCB pnl
  319. ADDCFG O_ComparisonReportFile FILENAME DESIGN eco 
  320. ADDCFG O_UpdateFile FILENAME DESIGN upd
  321. ADDCFG I_BackupPCBFile FILENAME CURRPCB pbk
  322. ADDCFG P_Hierarchical N
  323. ADDCFG P_RunUpdate Y
  324. DELCFG I_CrossReferenceFile
  325. CLOSECFG
  326. OPENCFG design.cfg
  327. VARSET xreffil CFGVAL I_CrossReferenceFile
  328. VARSET hierarchical CFGVAL Hierarchical_Symbols
  329. CLOSECFG
  330. IF NOTEQUAL VARVAL xreffil NULLSTR
  331.   OPENCFG eco.cfg
  332.   ADDCFG I_CrossReferenceFile VARVAL xreffil
  333.   CLOSECFG
  334. ENDIF
  335. IF NOTEQUAL VARVAL hierarchical NULLSTR
  336.   OPENCFG eco.cfg
  337.   ADDCFG P_Hierarchical Y
  338.   CLOSECFG
  339. ENDIF
  340. RUNN QUOTE sheco eco.cfg QUOTE
  341. OPENCFG eco.cfg
  342. VARSET annoDir CFGVAL P_AnnotationDirection
  343. VARSET ecorunflag CFGVAL I_RunFlag
  344. CLOSECFG
  345. IF EQUAL VARVAL annoDir F
  346. * Forward annotation: Netlist is .bnl. Setup pack.cfg to run pcpack
  347.    CALL bldFrwAnnoCfg
  348. ENDIF
  349. IF EQUAL VARVAL ecorunflag Yes
  350.   VARSET nodesfil eco_node.cfg
  351.   VARSET linkfil  eco_link.cfg
  352.   TEXTMODE
  353.   CALL runlink
  354.   IF EQUAL VARVAL annoDir F
  355.      RUNT QUOTE pcpack -cfg eco_pack.cfg QUOTE
  356.   ENDIF
  357.   VARSET dbname PCBNAME
  358.   CALL pcbnodes
  359.   RUNT QUOTE pccpr -cfg eco.cfg QUOTE
  360.   OPENCFG eco.cfg
  361.   VARSET bckval CFGVAL P_RunUpdate
  362.   CLOSECFG
  363.   IF EQUAL VARVAL bckval Y
  364.     OPENCFG upd.cfg
  365.     ADDCFG I_UserName DSNNAME
  366.     ADDCFG I_UpdateFile FILENAME DESIGN upd
  367.     ADDCFG O_UpdateReportFile FILENAME DESIGN eco
  368.     VARSET cfgfile upd.cfg
  369.     CALL initlibvars
  370.       VARSET oldlibpath LibraryPath
  371.       VARSET symlibpath SYM_LibraryPath
  372.       VARSET prtlibpath PRT_LibraryPath
  373.       VARSET oldlibfile LibraryFile
  374.       VARSET symlibfile SYM_LibraryFile
  375.       VARSET prtlibfile PRT_LibraryFile
  376.     CALL utillibs
  377.     CLOSECFG
  378.     RUNT QUOTE pcupd -cfg upd.cfg QUOTE
  379.   ENDIF
  380. ENDIF
  381. RESUME
  382. DISPLAY 12 NULLSTR
  383.  
  384.  
  385. * Design Forms Command
  386. COMMDEF 320 320
  387. DISPLAY 12 QUOTE Started Report Generator QUOTE
  388. VARSET cfgfile UNIQUENAME
  389. COPYCFG desform.cfg VARVAL cfgfile
  390. VARSET dbname DSNNAME
  391. CALL formsetup
  392. ADDCFG I_Sheet FILENAME SHEET sch
  393. ADDCFG P_AllSheet Y
  394. ADDCFG P_FormsMode S
  395. CLOSECFG
  396. RUNN QUOTE shform VARVAL cfgfile QUOTE
  397. COPYCFG VARVAL cfgfile desform.cfg
  398. OPENCFG VARVAL cfgfile
  399. VARSET cfgval   CFGVAL I_RunFlag
  400. VARSET allshval CFGVAL P_AllSheet
  401. IF EQUAL VARVAL cfgval Yes
  402.   VARSET nodesfil UNIQUENAME
  403.   TEXTMODE
  404.   IF EQUAL VARVAL allshval Y
  405.      VARSET linkfil  UNIQUENAME
  406.      ADDCFG I_NetlistFile FILENAME DESIGN xnl
  407.      CLOSECFG
  408.      VARSET cfgsave VARVAL cfgfile
  409.      CALL runlink
  410.      VARSET cfgfile VARVAL cfgsave
  411.      OPENCFG VARVAL linkfil
  412.      REMOVECFG
  413.   ELSE
  414.      VARSET dbname CFGVAL I_Sheet
  415.      ADDCFG I_NetlistFile FILENAME VARVAL dbname nlt
  416.      CLOSECFG
  417.      CALL runnodes
  418.   ENDIF
  419.   OPENCFG VARVAL nodesfil
  420.   REMOVECFG
  421.   RUNT QUOTE pcform -cfg VARVAL cfgfile QUOTE
  422. ELSE
  423.   CLOSECFG
  424. ENDIF
  425. COPYCFG VARVAL cfgfile desform.cfg
  426. OPENCFG VARVAL cfgfile
  427. REMOVECFG
  428. RESUME
  429. DISPLAY 12 NULLSTR
  430.  
  431. * Net List Compare Command
  432. COMMDEF 321 321
  433. DISPLAY 12 QUOTE Started Netlist Comparison QUOTE
  434. OPENCFG design.cfg
  435. VARSET crossref CFGVAL I_CrossReferenceFile 
  436. CLOSECFG
  437. VARSET config UNIQUENAME
  438. COPYCFG nlc.cfg VARVAL config
  439. OPENCFG VARVAL config
  440. ADDCFG I_UserName DSNNAME
  441. ADDCFG I_CurrentPCB FILENAME CURRPCB pcb
  442. ADDCFG I_CurrentSheet FILENAME SHEET sch
  443. ADDCFG I_Database1 FILENAME SHEET sch
  444. DELCFG I_Database2
  445. DELCFG I_CrossReferenceFile
  446. IF NOTEQUAL VARVAL crossref NULLSTR
  447.   ADDCFG I_CrossReferenceFile VARVAL crossref
  448. ENDIF
  449. ADDCFG O_ComparisonReportFile FILENAME SHEET nlc 
  450. ADDCFG P_AllSheet Y
  451. ADDCFG P_CompareMode S2S
  452. ADDCFG I_RunFlag No
  453. CLOSECFG
  454. RUNN QUOTE shnlc VARVAL config QUOTE
  455. COPYCFG VARVAL config nlc.cfg
  456. OPENCFG VARVAL config
  457. VARSET cfgval CFGVAL I_RunFlag
  458. IF EQUAL VARVAL cfgval Yes
  459.   VARSET comparemode CFGVAL P_CompareMode
  460.   DELCFG I_NetlistFiles
  461.   VARSET nodesfil UNIQUENAME
  462.   VARSET linkfil  UNIQUENAME
  463.   IF EQUAL VARVAL comparemode S2S
  464. *                 sch to sch 
  465.     TEXTMODE
  466.     VARSET dbname1 CFGVAL I_Database1
  467.     PUTCFG I_NetlistFiles FILENAME BASENAME VARVAL dbname1 sch nlt
  468.     VARSET dbname2 CFGVAL I_Database2
  469.     PUTCFG I_NetlistFiles FILENAME BASENAME VARVAL dbname2 sch nlt
  470.     CLOSECFG
  471.     VARSET dbname BASENAME VARVAL dbname1 sch
  472.     CALL runnodes
  473.     VARSET dbname BASENAME VARVAL dbname2 sch
  474.     CALL runnodes
  475.   ENDIF
  476. *                 pcb to pcb
  477.   IF EQUAL VARVAL comparemode P2P
  478.     TEXTMODE
  479.     VARSET dbname1 CFGVAL I_Database1
  480.     PUTCFG I_NetlistFiles FILENAME BASENAME VARVAL dbname1 pcb pnl
  481.     VARSET dbname2 CFGVAL I_Database2
  482.     PUTCFG I_NetlistFiles FILENAME BASENAME VARVAL dbname2 pcb pnl
  483.     CLOSECFG
  484.     VARSET dbname BASENAME VARVAL dbname1 pcb
  485.     CALL pcbnodes
  486.     VARSET dbname BASENAME VARVAL dbname2 pcb
  487.     CALL pcbnodes
  488.   ENDIF
  489. *                 all sch to pcb
  490.   IF EQUAL VARVAL comparemode S2P
  491.     VARSET allshval CFGVAL P_AllSheet
  492.     IF EQUAL VARVAL allshval Y
  493.        PUTCFG I_NetlistFiles FILENAME DESIGN xnl
  494.        VARSET dbname2 CFGVAL I_Database2
  495.        PUTCFG I_NetlistFiles FILENAME BASENAME VARVAL dbname2 pcb pnl
  496.        CLOSECFG
  497.        TEXTMODE
  498.        CALL runlink
  499.        VARSET dbname BASENAME VARVAL dbname2 pcb
  500.        CALL pcbnodes
  501.     ELSE
  502. *                 one sch to pcb
  503.        VARSET dbname1 CFGVAL I_Database1
  504.        PUTCFG I_NetlistFiles FILENAME BASENAME VARVAL dbname1 sch nlt
  505.        VARSET dbname2 CFGVAL I_Database2
  506.        PUTCFG I_NetlistFiles FILENAME BASENAME VARVAL dbname2 pcb pnl
  507.        CLOSECFG
  508.        VARSET dbname BASENAME VARVAL dbname1 sch
  509.        TEXTMODE
  510.        CALL runnodes
  511.        VARSET dbname BASENAME VARVAL dbname2 pcb
  512.        CALL pcbnodes
  513.     ENDIF
  514.   ENDIF
  515.  
  516.   RUNT QUOTE pcnlc -cfg VARVAL config QUOTE
  517. *     RUN QUOTE shbrscr FILENAME DESIGN nlc QUOTE
  518. ELSE
  519.   CLOSECFG
  520. ENDIF
  521. COPYCFG VARVAL config nlc.cfg
  522. OPENCFG VARVAL config
  523. REMOVECFG
  524. RESUME
  525. DISPLAY 12 NULLSTR
  526.  
  527. * System Config Command
  528. COMMDEF 323 323
  529. SPECIAL DSNNONE
  530. SPECIAL DSNROOT
  531. DISPLAY 12 QUOTE Started System Configuration QUOTE
  532. RUNG QUOTE shsystem pcad.cfg QUOTE
  533. DISPLAY 12 NULLSTR
  534. ENDIF
  535. SPECIAL DSNDIR
  536. SPECIAL DSNINIT
  537.  
  538. * DOS Shell Command
  539. COMMDEF 324 324
  540. SPECIAL DOSSHELL
  541.  
  542. * CAE Config Command
  543. COMMDEF 106 106
  544. IF VALIDLOCKFILE capscfg.lck
  545.    DISPLAY 12 QUOTE Already editing the Schematic Configuration. Sorry. QUOTE
  546. ELSE
  547.    DISPLAY 12 QUOTE Started Schematic Editor Configuration QUOTE
  548.    OPENCFG caps.cfg
  549.    ADDCFG I_UserName DSNNAME
  550.    CLOSECFG
  551.    SPAWNLOCK capscfg.lck QUOTE shcaps caps.cfg QUOTE
  552.    DISPLAY 12 NULLSTR
  553. ENDIF
  554.  
  555. * CAE Edit Command
  556. COMMDEF 102 102
  557. IF VALIDLOCKFILE capscfg.lck
  558.     DISPLAY 12 QUOTE Cannot edit while changing configuration. Sorry. QUOTE
  559. ELSE
  560.     DISPLAY 12 QUOTE Started Schematic Editor QUOTE
  561.     OPENCFG capscfg.lck
  562.     OPENCFG caps.cfg
  563.  
  564. *   Add security device port
  565.     DELCFG I_SecDevPort
  566.     ADDCFG I_SecDevPort SECPORT
  567.  
  568.     DELCFG I_Sheet
  569.     WHILE SHEET
  570.       PUTCFG I_Sheet QUOTE SCHNAME FILENAME SHEET sch QUOTE
  571.     ENDWHILE 
  572.     VARSET currsheet SCHNAME
  573.     VARSET cfgval CFGVAL I_LoadActive
  574.     IF NOTEQUAL VARVAL cfgval N
  575.        IF EQUAL VARVAL currsheet NULLSTR
  576.          DELCFG I_CurrentSheet
  577.        ELSE
  578.          ADDCFG I_CurrentSheet QUOTE SCHNAME FILENAME SHEET sch QUOTE
  579.        ENDIF
  580.     ELSE
  581.        DELCFG I_CurrentSheet
  582.     ENDIF
  583.     ADDCFG I_Mode Detail
  584.     ADDCFG I_UserName DSNNAME
  585.  
  586.     ADDCFG O_FatalCondition xxx
  587.  
  588.     VARSET cfgfile caps.cfg
  589.    CALL initlibvars
  590.     VARSET oldlibpath LibraryPath
  591.     VARSET symlibpath SYM_LibraryPath
  592.     VARSET oldlibfile LibraryFile
  593.     VARSET symlibfile SYM_LibraryFile
  594.     CALL utillibs
  595.     CLOSECFG
  596.     OPENCFG capscfg.lck
  597.     REMOVECFG
  598.  
  599.     DISPLAY 12 QUOTE Started Schematic Editor QUOTE
  600.     RUN QUOTE pccaps -cfg caps.cfg QUOTE
  601.  
  602.     OPENCFG caps.cfg
  603.  
  604.     VARSET cfgval CFGVAL O_FatalCondition  
  605.     IF NOTEQUAL VARVAL cfgval NULLSTR
  606.       DISPLAY 12 QUOTE Fatal Error: caps: program abort detected. QUOTE
  607.       PRINT QUOTE Fatal Error: caps: program abort detected. QUOTE
  608.       PRINT QUOTE    Close some windows and try the operation again. QUOTE
  609.     ELSE
  610.       DISPLAY 12 NULLSTR
  611.     ENDIF
  612.  
  613.     VARSET cfgval CFGVAL O_Filename
  614.     WHILE NOTEQUAL VARVAL cfgval NULLSTR
  615.      VARSET schext EXTENSION VARVAL cfgval
  616.      IF EQUAL VARVAL schext NULLSTR
  617.         VARSET schext sch
  618.      ENDIF
  619.      VARSET newsch BASENAME VARVAL cfgval schext
  620.      OPENCFG design.cfg
  621.      ADDSCH VARVAL newsch
  622.      OPENCFG caps.cfg
  623.      VARSET cfgval CFGNEXT O_Filename
  624.     ENDWHILE
  625.     DELCFG O_Filename
  626.     
  627.     VARSET cfgval CFGVAL O_ComponentPaths
  628.     WHILE NOTEQUAL VARVAL cfgval NULLSTR
  629.       OPENCFG design.cfg
  630.       PUTCFG SYM_LibraryPath VARVAL cfgval
  631.       OPENCFG caps.cfg
  632.       VARSET cfgval CFGNEXT O_ComponentPaths
  633.     ENDWHILE
  634.     DELCFG O_ComponentPaths
  635.     
  636.     VARSET cfgval CFGVAL O_ComponentLibraryNames
  637.     WHILE NOTEQUAL VARVAL cfgval NULLSTR
  638.       OPENCFG design.cfg
  639.       PUTCFG SYM_LibraryFile VARVAL cfgval
  640.       OPENCFG caps.cfg
  641.       VARSET cfgval CFGNEXT O_ComponentLibraryNames
  642.     ENDWHILE
  643.     DELCFG O_ComponentLibraryNames
  644.  
  645.     VARSET cfgval CFGVAL O_SaveTime
  646.     IF NOTEQUAL VARVAL cfgval NULLSTR
  647.         PUTCFG I_SaveTime VARVAL cfgval
  648.     ENDIF
  649.     DELCFG O_SaveTime
  650.  
  651.     CLOSECFG
  652.     OPENCFG design.cfg
  653.     CLOSECFG
  654.     SPECIAL DSNINIT
  655. ENDIF
  656.  
  657. * ERC Command
  658. COMMDEF 103 103
  659. DISPLAY 12 QUOTE Started Electrical Rules Check QUOTE
  660. VARSET config UNIQUENAME
  661. COPYCFG erc.cfg VARVAL config
  662. OPENCFG VARVAL config
  663. ADDCFG I_UserName DSNNAME
  664. ADDCFG O_ReportFile FILENAME DESIGN erc
  665. ADDCFG P_AllSheet Y
  666. ADDCFG I_Sheet FILENAME SHEET sch
  667. CLOSECFG
  668. RUNN QUOTE sherc VARVAL config QUOTE
  669. COPYCFG VARVAL config erc.cfg
  670. OPENCFG VARVAL config
  671. VARSET cfgval   CFGVAL I_RunFlag
  672. VARSET allshval CFGVAL P_AllSheet
  673. IF EQUAL VARVAL cfgval Yes
  674.   VARSET nodesfil UNIQUENAME
  675.   VARSET linkfil  UNIQUENAME
  676.   TEXTMODE
  677.   IF EQUAL VARVAL allshval Y
  678.      ADDCFG I_SCHNetlistFile FILENAME DESIGN xnl
  679.      CLOSECFG
  680.      CALL runlink
  681.   ELSE
  682.      VARSET dbname CFGVAL I_Sheet
  683.      ADDCFG I_SCHNetlistFile FILENAME VARVAL dbname nlt
  684.      CLOSECFG
  685.      CALL runnodes
  686.   ENDIF
  687.   OPENCFG VARVAL nodesfil
  688.   REMOVECFG
  689.   OPENCFG VARVAL linkfil
  690.   REMOVECFG
  691.   OPENCFG VARVAL config
  692.   CLOSECFG
  693.   RUNT QUOTE pcerc -cfg VARVAL config QUOTE
  694. ELSE
  695.   CLOSECFG
  696. ENDIF
  697. COPYCFG VARVAL config erc.cfg
  698. OPENCFG VARVAL config
  699. REMOVECFG
  700. RESUME
  701. DISPLAY 12 NULLSTR
  702.  
  703. * CAE PDIF-In
  704. COMMDEF 110 110
  705. DISPLAY 12 QUOTE Started PDIF File Reader QUOTE
  706. VARSET cfgfile UNIQUENAME
  707. COPYCFG pdifin.cfg VARVAL cfgfile
  708. OPENCFG VARVAL cfgfile
  709. ADDCFG I_UserName DSNNAME
  710. ADDCFG I_InputFile  FILENAME SHEET pdf
  711. ADDCFG O_OutputFile FILENAME SHEET sch
  712. CALL initlibvars
  713. VARSET oldlibpath LibraryPath
  714. VARSET symlibpath SYM_LibraryPath
  715. VARSET prtlibpath PRT_LibraryPath
  716. VARSET oldlibfile LibraryFile
  717. VARSET symlibfile SYM_LibraryFile
  718. VARSET prtlibfile PRT_LibraryFile
  719. CALL utillibs
  720. CLOSECFG
  721. RUNN QUOTE shpdifi VARVAL cfgfile QUOTE
  722. COPYCFG VARVAL cfgfile pdifin.cfg
  723. OPENCFG VARVAL cfgfile
  724. VARSET cfgval CFGVAL I_RunFlag
  725. CLOSECFG
  726. IF EQUAL VARVAL cfgval Yes
  727.   RUNT QUOTE pdifin -cfg VARVAL cfgfile QUOTE
  728. ENDIF
  729. OPENCFG VARVAL cfgfile
  730. REMOVECFG
  731. RESUME
  732. DISPLAY 12 NULLSTR
  733.  
  734. * CAE PDIF-Out
  735. COMMDEF 111 111
  736. DISPLAY 12 QUOTE Started PDIF File Writer QUOTE
  737. VARSET cfgfile UNIQUENAME
  738. COPYCFG pdifout.cfg VARVAL cfgfile
  739. OPENCFG VARVAL cfgfile
  740. ADDCFG I_UserName DSNNAME
  741. ADDCFG I_InputFile  FILENAME SHEET sch
  742. ADDCFG O_OutputFile FILENAME SHEET pdf
  743. CALL initlibvars
  744. VARSET oldlibpath LibraryPath
  745. VARSET symlibpath SYM_LibraryPath
  746. VARSET prtlibpath PRT_LibraryPath
  747. VARSET oldlibfile LibraryFile
  748. VARSET symlibfile SYM_LibraryFile
  749. VARSET prtlibfile PRT_LibraryFile
  750. CALL utillibs
  751. CLOSECFG
  752. RUNN QUOTE shpdifo VARVAL cfgfile QUOTE
  753. COPYCFG VARVAL cfgfile pdifout.cfg
  754. OPENCFG VARVAL cfgfile
  755. VARSET cfgval CFGVAL I_RunFlag
  756. CLOSECFG
  757. IF EQUAL VARVAL cfgval Yes
  758.   RUNT QUOTE pdifout -cfg VARVAL cfgfile QUOTE
  759. ENDIF
  760. OPENCFG VARVAL cfgfile
  761. REMOVECFG
  762. RESUME
  763. DISPLAY 12 NULLSTR
  764.  
  765. * CAE Output
  766. COMMDEF 120
  767. DISPLAY 12 QUOTE Started Hardcopy QUOTE
  768. VARSET cfgfile UNIQUENAME
  769. IF EXISTS hardcopy.cfg
  770. ELSE
  771.   OPENCFG hardcopy.cfg
  772.   ADDCFG I_PlotCFGFile FILENAME DESIGN ppp
  773.   CLOSECFG
  774. ENDIF
  775. COPYCFG hardcopy.cfg VARVAL cfgfile
  776. OPENCFG VARVAL cfgfile
  777. ADDCFG I_UserName DSNNAME
  778. VARSET cfgval CFGVAL I_PlotFile
  779. IF EQUAL VARVAL cfgval NULLSTR
  780.   ADDCFG I_PlotFile FILENAME SHEET plt
  781. ENDIF
  782. VARSET cfgval CFGVAL I_PlotCFGFile
  783. IF EQUAL VARVAL cfgval NULLSTR
  784.   ADDCFG I_PlotCFGFile FILENAME DESIGN ppp
  785. ENDIF
  786. VARSET cfgval CFGVAL I_OutputFormat
  787. IF EQUAL VARVAL cfgval NULLSTR
  788.   ADDCFG I_OutputFormat PRINT
  789. ENDIF
  790. CLOSECFG
  791.  
  792. RUNN QUOTE shhrdcpy VARVAL cfgfile QUOTE
  793.  
  794. VARSET pppfile UNIQUENAME
  795.  
  796. COPYCFG VARVAL cfgfile hardcopy.cfg
  797.  
  798. OPENCFG VARVAL cfgfile
  799.  
  800. VARSET plotpppfile CFGVAL I_PlotCFGFile
  801. ADDCFG I_PlotCFGFile VARVAL pppfile
  802.  
  803. VARSET runval      CFGVAL I_RunFlag
  804. VARSET pltval      CFGVAL I_OutputFormat
  805. VARSET program     CFGVAL I_Program
  806. VARSET spool       CFGVAL I_SpoolOutput
  807. VARSET lprcommand  CFGVAL I_LPRCommand
  808. VARSET plotoutput  CFGVAL O_PlotOutput
  809.  
  810. CLOSECFG
  811. COPYCFG VARVAL plotpppfile VARVAL pppfile
  812.  
  813. IF EQUAL VARVAL runval Yes
  814.   TEXTMODE
  815.   IF NOTEQUAL VARVAL program NULLSTR
  816. *   DISPLAY 12 QUOTE Printing or Plotting File. QUOTE
  817.     RUNT QUOTE VARVAL program -cfg VARVAL cfgfile QUOTE
  818.     IF EQUAL VARVAL spool Yes
  819. *     DISPLAY 12 QUOTE Spooling Print or Plot File. QUOTE
  820.       DISPLAY 12 QUOTE Copying to Printing or Plotting Device. QUOTE
  821.       RUNT QUOTE VARVAL lprcommand VARVAL plotoutput QUOTE
  822.     ENDIF
  823.   ENDIF
  824. ENDIF
  825. DELFILE VARVAL cfgfile
  826. DELFILE VARVAL pppfile
  827. RESUME
  828. DISPLAY 12 NULLSTR
  829.  
  830.  
  831.  
  832. * CAE Forms Command
  833. COMMDEF 121 121
  834. DISPLAY 12 QUOTE Started Report Generator QUOTE
  835. VARSET cfgfile UNIQUENAME
  836. COPYCFG schform.cfg VARVAL cfgfile
  837. VARSET dbname SCHNAME
  838. CALL formsetup
  839. ADDCFG I_Sheet FILENAME SHEET sch
  840. ADDCFG P_AllSheet N
  841. ADDCFG P_FormsMode S
  842. CLOSECFG
  843. RUNN QUOTE shform VARVAL cfgfile QUOTE
  844. COPYCFG VARVAL cfgfile schform.cfg
  845. OPENCFG VARVAL cfgfile
  846. VARSET cfgval   CFGVAL I_RunFlag
  847. VARSET allshval CFGVAL P_AllSheet
  848. IF EQUAL VARVAL cfgval Yes
  849.   TEXTMODE
  850.   VARSET nodesfil UNIQUENAME
  851.   VARSET linkfil  UNIQUENAME
  852.   IF EQUAL VARVAL allshval Y
  853.      ADDCFG I_NetlistFile FILENAME DESIGN xnl
  854.      CLOSECFG
  855.      VARSET cfgsave VARVAL cfgfile
  856.      CALL runlink
  857.      VARSET cfgfile VARVAL cfgsave
  858.   ELSE
  859.      VARSET dbname CFGVAL I_Sheet
  860.      ADDCFG I_NetlistFile FILENAME VARVAL dbname nlt
  861.      CLOSECFG
  862.      CALL runnodes
  863.   ENDIF
  864.   OPENCFG VARVAL nodesfil
  865.   REMOVECFG
  866.   OPENCFG VARVAL linkfil
  867.   REMOVECFG
  868.   RUNT QUOTE pcform -cfg VARVAL cfgfile QUOTE
  869. ELSE
  870.   CLOSECFG
  871. ENDIF
  872. COPYCFG VARVAL cfgfile schform.cfg
  873. OPENCFG VARVAL cfgfile
  874. REMOVECFG
  875. RESUME
  876. DISPLAY 12 NULLSTR
  877.  
  878. * PCB Config Command
  879. COMMDEF 207 207
  880. IF VALIDLOCKFILE cardscfg.lck
  881.    DISPLAY 12 QUOTE Already editing the Editor Configuration. Sorry. QUOTE
  882. ELSE
  883.    DISPLAY 12 QUOTE Started PCB Editor Configuration QUOTE
  884.    OPENCFG cards.cfg
  885.    ADDCFG I_UserName DSNNAME
  886.  
  887.    VARSET cfgval CFGVAL I_RulesSetsFile
  888.    IF EQUAL VARVAL cfgval NULLSTR
  889.      ADDCFG I_RulesSetsFile FILENAME CURRPCB rul
  890.    ENDIF
  891.  
  892.    VARSET cfgval CFGVAL I_CheckPassFile
  893.    IF EQUAL VARVAL cfgval NULLSTR
  894.      ADDCFG I_CheckPassFile FILENAME CURRPCB pas
  895.    ENDIF
  896.  
  897.    CLOSECFG
  898.    SPAWNLOCK cardscfg.lck QUOTE shcards cards.cfg QUOTE
  899.    DISPLAY 12 NULLSTR
  900. ENDIF
  901.  
  902. * PCB Edit Command
  903. COMMDEF 201 201
  904.  
  905.  
  906. IF VALIDLOCKFILE cardscfg.lck
  907.   DISPLAY 12 QUOTE Cannot edit while changing configuration. Sorry. QUOTE
  908. ELSE
  909.   DISPLAY 12 QUOTE Started PCB Editor QUOTE
  910.  
  911.   OPENCFG cardscfg.lck
  912.   OPENCFG cards.cfg
  913.  
  914. * Add security device port
  915.   DELCFG I_SecDevPort
  916.   ADDCFG I_SecDevPort SECPORT
  917.  
  918.   VARSET currpcb PCBNAME
  919.   VARSET cfgval CFGVAL I_LoadActive
  920.   IF NOTEQUAL VARVAL cfgval N
  921.      IF EQUAL VARVAL currpcb NULLSTR
  922.        DELCFG I_PCBDataBase
  923.      ELSE
  924.        ADDCFG I_PCBDataBase FILENAME CURRPCB pcb
  925.      ENDIF
  926.   ELSE
  927.      DELCFG I_PCBDataBase
  928.   ENDIF
  929.      
  930.  
  931.   ADDCFG I_UserName DSNNAME
  932.   ADDCFG I_Mode Detail
  933.  
  934.  
  935.   ADDCFG O_FatalCondition xxx
  936.  
  937.   VARSET cfgfile cards.cfg
  938.     CALL initlibvars
  939.    VARSET oldlibpath LibraryPath
  940.    VARSET prtlibpath PRT_LibraryPath
  941.    VARSET oldlibfile LibraryFile
  942.    VARSET prtlibfile PRT_LibraryFile
  943.   CALL utillibs
  944.   CLOSECFG
  945.   OPENCFG cardscfg.lck
  946.   REMOVECFG
  947.  
  948.   RUNG QUOTE pccards -cfg cards.cfg QUOTE
  949.  
  950.   OPENCFG cards.cfg
  951.  
  952.   VARSET cfgval CFGVAL O_FatalCondition  
  953.   IF NOTEQUAL VARVAL cfgval NULLSTR
  954.       DISPLAY 12 QUOTE Fatal Error: cards: program abort detected. QUOTE
  955.       PRINT QUOTE Fatal Error: cards: program abort detected. QUOTE
  956.       PRINT QUOTE    Close some windows and try the operation again. QUOTE
  957.   ELSE
  958.       DISPLAY 12 NULLSTR
  959.   ENDIF
  960.  
  961.   VARSET cfgval CFGVAL O_Filename
  962.   WHILE NOTEQUAL VARVAL cfgval NULLSTR
  963.      VARSET pcbext EXTENSION VARVAL cfgval
  964.      IF EQUAL VARVAL pcbext NULLSTR
  965.         VARSET pcbext pcb
  966.      ENDIF
  967.      VARSET newpcb BASENAME VARVAL cfgval pcbext
  968.      OPENCFG design.cfg
  969.      ADDPCB VARVAL newpcb
  970.      OPENCFG cards.cfg
  971.      VARSET cfgval CFGNEXT O_Filename
  972.   ENDWHILE
  973.   DELCFG O_Filename
  974.     
  975.   VARSET cfgval CFGVAL O_ComponentPaths
  976.   WHILE NOTEQUAL VARVAL cfgval NULLSTR
  977.       OPENCFG design.cfg
  978.       PUTCFG PRT_LibraryPath VARVAL cfgval
  979.       OPENCFG cards.cfg
  980.       VARSET cfgval CFGNEXT O_ComponentPaths
  981.   ENDWHILE
  982.   DELCFG O_ComponentPaths
  983.  
  984.   VARSET cfgval CFGVAL O_ComponentLibraryNames
  985.   WHILE NOTEQUAL VARVAL cfgval NULLSTR
  986.       OPENCFG design.cfg
  987.       PUTCFG PRT_LibraryFile VARVAL cfgval
  988.       OPENCFG cards.cfg
  989.       VARSET cfgval CFGNEXT O_ComponentLibraryNames
  990.   ENDWHILE
  991.   DELCFG O_ComponentLibraryNames
  992.  
  993.  
  994.   VARSET cfgval CFGVAL O_OnlineDRC
  995.   IF NOTEQUAL VARVAL cfgval NULLSTR
  996.       PUTCFG I_OnlineDRC VARVAL cfgval
  997.   ENDIF
  998.   DELCFG O_OnlineDRC
  999.  
  1000.   VARSET cfgval CFGVAL O_UncommPin
  1001.   IF NOTEQUAL VARVAL cfgval NULLSTR
  1002.       PUTCFG I_UncommPin VARVAL cfgval
  1003.   ENDIF
  1004.   DELCFG O_UncommPin
  1005.  
  1006.   VARSET cfgval CFGVAL O_SaveTime
  1007.   IF NOTEQUAL VARVAL cfgval NULLSTR
  1008.       PUTCFG I_SaveTime VARVAL cfgval
  1009.   ENDIF
  1010.   DELCFG O_SaveTime
  1011.  
  1012.   VARSET cfgval CFGVAL O_TraceLength
  1013.   IF NOTEQUAL VARVAL cfgval NULLSTR
  1014.       PUTCFG I_TraceLength VARVAL cfgval
  1015.   ENDIF
  1016.   DELCFG O_TraceLength
  1017.  
  1018.  
  1019.   CLOSECFG
  1020.   OPENCFG design.cfg
  1021.   CLOSECFG
  1022.   SPECIAL DSNINIT
  1023. ENDIF
  1024.  
  1025. * PCB Autorouter Command
  1026. COMMDEF 202 202
  1027. DISPLAY 12 QUOTE Started Autorouter QUOTE
  1028. SUSPEND
  1029. * Get config file for input parameters to route 1
  1030. VARSET config pcad1.cfg
  1031. *-- VARSET config UNIQUENAME
  1032. OPENCFG VARVAL config
  1033. ADDCFG I_InPCBfile FILENAME CURRPCB pcb
  1034. ADDCFG I_UserName DSNNAME
  1035. ADDCFG I_RunFlag Error
  1036. ADDCFG O_ErrorMessage QUOTE Fatal error: route1: program abort detected. QUOTE
  1037. CLOSECFG
  1038. *-- DISPLAY 12 NULLSTR
  1039. * Run route 1 (which creates the first rcf file)
  1040. RUNN QUOTE route1 VARVAL config QUOTE
  1041. OPENCFG VARVAL config
  1042. VARSET run_flag CFGVAL I_RunFlag
  1043. VARSET error_message CFGVAL O_ErrorMessage
  1044. VARSET rcf_file CFGVAL I_RCFfile
  1045. CLOSECFG
  1046. IF EQUAL VARVAL run_flag Yes
  1047.   OPENCFG VARVAL rcf_file
  1048.   VARSET utility CFGVAL I_DoNext
  1049.   CLOSECFG
  1050. ENDIF
  1051.  
  1052. WHILE EQUAL VARVAL run_flag Yes
  1053.  
  1054.   IF NOTEQUAL VARVAL utility NULLSTR
  1055.     IF NOTEQUAL VARVAL utility route1
  1056.       * run the utility
  1057.       OPENCFG VARVAL rcf_file
  1058.       ADDCFG I_RunFlag Error
  1059.       ADDCFG O_ErrorMessage QUOTE Fatal error: utility: program abort detected. QUOTE
  1060.       CLOSECFG
  1061.       RUNN QUOTE VARVAL utility VARVAL rcf_file QUOTE
  1062.       VARSET utility route1
  1063.     ENDIF
  1064.     IF EQUAL VARVAL utility route1
  1065.       OPENCFG VARVAL config
  1066.       ADDCFG I_RunFlag Error
  1067.       ADDCFG O_ErrorMessage QUOTE Fatal error: route1: program abort detected. QUOTE
  1068.       CLOSECFG
  1069.       * Unlock input and output database files
  1070.       RUNN QUOTE rt_clean VARVAL rcf_file QUOTE
  1071.       * Run route 1
  1072.       RUNN QUOTE route1 VARVAL config QUOTE
  1073.       OPENCFG VARVAL config
  1074.       VARSET run_flag CFGVAL I_RunFlag
  1075.       VARSET error_message CFGVAL O_ErrorMessage
  1076.       VARSET rcf_file CFGVAL I_RCFfile
  1077.       CLOSECFG
  1078.       OPENCFG VARVAL rcf_file
  1079.       ADDCFG I_RunFlag VARVAL run_flag
  1080.       CLOSECFG
  1081.     ENDIF
  1082.     OPENCFG VARVAL rcf_file
  1083.     VARSET run_flag CFGVAL I_RunFlag
  1084.     VARSET utility  CFGVAL I_DoNext
  1085.     VARSET error_message CFGVAL O_ErrorMessage
  1086.     CLOSECFG
  1087.   ENDIF
  1088.  
  1089.   IF EQUAL VARVAL utility NULLSTR
  1090.     * run the extractor
  1091.     IF EQUAL VARVAL run_flag Yes
  1092.       OPENCFG VARVAL rcf_file
  1093.       VARSET extract CFGVAL I_DoExtract
  1094.       CLOSECFG
  1095.       IF NOTEQUAL VARVAL extract No 
  1096.         OPENCFG VARVAL rcf_file
  1097.         ADDCFG I_RunFlag Error
  1098.         ADDCFG O_ErrorMessage QUOTE Fatal error: route2: program abort detected. QUOTE
  1099.         CLOSECFG
  1100.         RUNN QUOTE route2 VARVAL rcf_file QUOTE
  1101.       ELSE
  1102.         OPENCFG VARVAL rcf_file
  1103.         ADDCFG I_RunFlag Yes
  1104.         CLOSECFG
  1105.       ENDIF
  1106.       OPENCFG VARVAL rcf_file
  1107.       VARSET run_flag CFGVAL I_RunFlag
  1108.       VARSET error_message CFGVAL O_ErrorMessage
  1109.       CLOSECFG
  1110.     ENDIF
  1111.     * run the router
  1112.     IF EQUAL VARVAL run_flag Yes
  1113.       OPENCFG VARVAL rcf_file
  1114.       VARSET route CFGVAL I_DoRoute
  1115.       CLOSECFG
  1116.       IF NOTEQUAL VARVAL route completed
  1117.         IF NOTEQUAL VARVAL route no
  1118.           OPENCFG VARVAL rcf_file
  1119.           ADDCFG I_RunFlag Error
  1120.           ADDCFG O_ErrorMessage QUOTE Fatal error: route3: program abort detected. QUOTE
  1121.           CLOSECFG    
  1122.           RUNN QUOTE route3 VARVAL rcf_file QUOTE
  1123.         ENDIF
  1124.       ENDIF
  1125.       OPENCFG VARVAL rcf_file
  1126.       VARSET run_flag CFGVAL I_RunFlag
  1127.       VARSET error_message CFGVAL O_ErrorMessage
  1128.       CLOSECFG
  1129.     ENDIF 
  1130.     * run the returner
  1131.     IF EQUAL VARVAL run_flag Yes 
  1132.       OPENCFG VARVAL rcf_file 
  1133.       VARSET return CFGVAL I_DoReturn
  1134.       CLOSECFG   
  1135.       IF NOTEQUAL VARVAL return completed
  1136.         * if the route was interrupted, ask user if returner should run
  1137.         IF EQUAL VARVAL return Yes
  1138.           OPENCFG VARVAL rcf_file
  1139.           VARSET route CFGVAL I_DoRoute
  1140.           CLOSECFG
  1141.           IF EQUAL VARVAL route restart
  1142.             RUNN QUOTE retack VARVAL rcf_file QUOTE
  1143.             OPENCFG VARVAL rcf_file 
  1144.             VARSET return CFGVAL I_DoReturn
  1145.             CLOSECFG   
  1146.           ENDIF
  1147.         ENDIF
  1148.         IF NOTEQUAL VARVAL return No 
  1149.           OPENCFG VARVAL rcf_file 
  1150.           ADDCFG I_RunFlag Error 
  1151.           ADDCFG O_ErrorMessage QUOTE Fatal error: route4: program abort detected. QUOTE
  1152.           CLOSECFG     
  1153.           RUNN QUOTE route4 VARVAL rcf_file QUOTE
  1154.         ENDIF 
  1155.         OPENCFG VARVAL rcf_file 
  1156.         VARSET run_flag CFGVAL I_RunFlag 
  1157.         VARSET error_message CFGVAL O_ErrorMessage 
  1158.         CLOSECFG 
  1159.       ENDIF  
  1160.     ENDIF  
  1161.  
  1162.     VARSET utility route1
  1163.   ENDIF
  1164. ENDWHILE
  1165.  
  1166. * display error message or clear display area
  1167. RESUME
  1168. IF EQUAL VARVAL run_flag Error
  1169.   DISPLAY 12 QUOTE VARVAL error_message QUOTE
  1170. ELSE
  1171.   DISPLAY 12 NULLSTR
  1172.   *--  RUN QUOTE rm VARVAL config QUOTE
  1173. ENDIF
  1174. * Unlock input and output database files
  1175. RUNN QUOTE rt_clean VARVAL rcf_file QUOTE
  1176. * end of Autorouter Command
  1177.  
  1178. * PCB DRC Command
  1179. COMMDEF 203 203
  1180. DISPLAY 12 QUOTE Started Design Rules Check QUOTE
  1181. VARSET cfgfile UNIQUENAME
  1182. COPYCFG drc.cfg VARVAL cfgfile
  1183. OPENCFG VARVAL cfgfile
  1184.    ADDCFG I_UserName DSNNAME
  1185.    DELCFG I_PCBFile
  1186.    IF NOTEQUAL PCBNAME NULLSTR
  1187.       ADDCFG I_PCBFile FILENAME PCBNAME pcb
  1188.       VARSET fname PCBNAME
  1189.    ELSE
  1190.       VARSET fname DSNNAME
  1191.    ENDIF
  1192.    VARSET cfgval CFGVAL I_RulesSetsFile
  1193.    IF EQUAL VARVAL cfgval NULLSTR
  1194.      ADDCFG I_RulesSetsFile FILENAME VARVAL fname rul
  1195.    ENDIF
  1196.    VARSET cfgval CFGVAL I_CheckPassFile
  1197.    IF EQUAL VARVAL cfgval NULLSTR
  1198.      ADDCFG I_CheckPassFile FILENAME VARVAL fname pas
  1199.    ENDIF
  1200.    VARSET cfgval CFGVAL O_DRCReportFile
  1201.    IF EQUAL VARVAL cfgval NULLSTR
  1202.      ADDCFG O_DRCReportFile FILENAME VARVAL fname drc
  1203.    ENDIF
  1204. CLOSECFG
  1205. RUNN QUOTE shdrc VARVAL cfgfile QUOTE
  1206. COPYCFG VARVAL cfgfile drc.cfg
  1207. OPENCFG VARVAL cfgfile
  1208. VARSET cfgval CFGVAL I_RunFlag
  1209. CLOSECFG
  1210. IF EQUAL VARVAL cfgval Yes
  1211.   RUNT QUOTE pcdrc -cfg VARVAL cfgfile QUOTE
  1212. ENDIF
  1213. OPENCFG VARVAL cfgfile
  1214. REMOVECFG
  1215. RESUME
  1216. DISPLAY 12 NULLSTR
  1217.  
  1218. * PCB PDIF-In
  1219. COMMDEF 210 210
  1220. DISPLAY 12 QUOTE Started PDIF File Reader QUOTE
  1221. VARSET cfgfile UNIQUENAME
  1222. COPYCFG pdifin.cfg VARVAL cfgfile
  1223. OPENCFG VARVAL cfgfile
  1224. ADDCFG I_UserName DSNNAME
  1225. ADDCFG I_InputFile  FILENAME CURRPCB pdf
  1226. ADDCFG O_OutputFile FILENAME CURRPCB pcb
  1227. CALL initlibvars
  1228. VARSET oldlibpath LibraryPath
  1229. VARSET symlibpath SYM_LibraryPath
  1230. VARSET prtlibpath PRT_LibraryPath
  1231. VARSET oldlibfile LibraryFile
  1232. VARSET symlibfile SYM_LibraryFile
  1233. VARSET prtlibfile PRT_LibraryFile
  1234. CALL utillibs
  1235. CLOSECFG
  1236. RUNN QUOTE shpdifi VARVAL cfgfile QUOTE
  1237. COPYCFG VARVAL cfgfile pdifin.cfg
  1238. OPENCFG VARVAL cfgfile
  1239. VARSET cfgval CFGVAL I_RunFlag
  1240. CLOSECFG
  1241. IF EQUAL VARVAL cfgval Yes
  1242.   RUNT QUOTE pdifin -cfg VARVAL cfgfile QUOTE
  1243. ENDIF
  1244. OPENCFG VARVAL cfgfile
  1245. REMOVECFG
  1246. RESUME
  1247. DISPLAY 12 NULLSTR
  1248.  
  1249. * PCB PDIF-Out
  1250. COMMDEF 211 211
  1251. DISPLAY 12 QUOTE Started PDIF File Writer QUOTE
  1252. VARSET cfgfile UNIQUENAME
  1253. COPYCFG pdifout.cfg VARVAL cfgfile
  1254. OPENCFG VARVAL cfgfile
  1255. ADDCFG I_UserName DSNNAME
  1256. ADDCFG I_InputFile  FILENAME CURRPCB pcb
  1257. ADDCFG O_OutputFile FILENAME CURRPCB pdf
  1258.  CALL initlibvars
  1259. VARSET oldlibpath LibraryPath
  1260. VARSET symlibpath SYM_LibraryPath
  1261. VARSET prtlibpath PRT_LibraryPath
  1262. VARSET oldlibfile LibraryFile
  1263. VARSET symlibfile SYM_LibraryFile
  1264. VARSET prtlibfile PRT_LibraryFile
  1265. CALL utillibs
  1266. CLOSECFG
  1267. RUNN QUOTE shpdifo VARVAL cfgfile QUOTE
  1268. COPYCFG VARVAL cfgfile pdifout.cfg
  1269. OPENCFG VARVAL cfgfile
  1270. VARSET cfgval CFGVAL I_RunFlag
  1271. CLOSECFG
  1272. IF EQUAL VARVAL cfgval Yes
  1273.   RUNT QUOTE pdifout -cfg VARVAL cfgfile QUOTE
  1274. ENDIF
  1275. OPENCFG VARVAL cfgfile
  1276. REMOVECFG
  1277. RESUME
  1278. DISPLAY 12 NULLSTR
  1279.  
  1280. * Net List Interface
  1281. COMMDEF 212 212
  1282. DISPLAY 12 QUOTE Started Netlist Conversion QUOTE
  1283. VARSET cfgfile UNIQUENAME
  1284. COPYCFG nlt.cfg VARVAL cfgfile
  1285. OPENCFG VARVAL cfgfile
  1286. ADDCFG I_UserName DSNNAME
  1287. ADDCFG O_PCBFile FILENAME CURRPCB pcb
  1288. ADDCFG I_AsciiNetlistFile FILENAME CURRPCB alt
  1289. ADDCFG O_RefdesReportFile FILENAME CURRPCB rp1
  1290. ADDCFG O_PartTypeReportFile FILENAME CURRPCB rp2
  1291. ADDCFG O_NetNameReportFile FILENAME CURRPCB rp3
  1292. ADDCFG O_NetSheetReportFile FILENAME CURRPCB rp4
  1293.  CALL initlibvars
  1294. VARSET oldlibpath LibraryPath
  1295. VARSET prtlibpath PRT_LibraryPath
  1296. VARSET nltlibpath NLT_LibraryPath
  1297. VARSET oldlibfile LibraryFile
  1298. VARSET prtlibfile PRT_LibraryFile
  1299. CALL utillibs
  1300. CLOSECFG
  1301. RUNN QUOTE shnlt VARVAL cfgfile QUOTE
  1302. COPYCFG VARVAL cfgfile nlt.cfg
  1303. OPENCFG VARVAL cfgfile
  1304. VARSET cfgval CFGVAL I_RunFlag
  1305. CLOSECFG
  1306. IF EQUAL VARVAL cfgval Yes
  1307.    RUNT QUOTE pcnlt -cfg VARVAL cfgfile QUOTE
  1308. ENDIF
  1309. OPENCFG VARVAL cfgfile
  1310. REMOVECFG
  1311. RESUME
  1312. DISPLAY 12 NULLSTR
  1313.  
  1314. * Drill Command
  1315. COMMDEF 230 230
  1316. DISPLAY 12 QUOTE Started Drill QUOTE
  1317. VARSET cfgfile UNIQUENAME
  1318. COPYCFG drill.cfg VARVAL cfgfile
  1319. OPENCFG VARVAL cfgfile
  1320. ADDCFG I_UserName DSNNAME
  1321. ADDCFG I_PCBFile FILENAME CURRPCB pcb
  1322. ADDCFG O_DrillFile FILENAME CURRPCB drl
  1323. ADDCFG O_ReportFile FILENAME CURRPCB mfg
  1324. VARSET cfgval CFGVAL I_ToolTableFile
  1325. IF EQUAL VARVAL cfgval NULLSTR
  1326.   ADDCFG I_ToolTableFile FILENAME CURRPCB tbl
  1327. ENDIF
  1328. ADDCFG O_PlotFile FILENAME CURRPCB plt
  1329. CLOSECFG
  1330. RUNN QUOTE shdrill VARVAL cfgfile QUOTE
  1331. COPYCFG VARVAL cfgfile drill.cfg
  1332. OPENCFG VARVAL cfgfile
  1333. VARSET cfgval CFGVAL I_RunFlag
  1334. CLOSECFG
  1335. IF EQUAL VARVAL cfgval Yes
  1336.   RUNT QUOTE pcdrill -cfg VARVAL cfgfile QUOTE
  1337. ENDIF
  1338. OPENCFG VARVAL cfgfile
  1339. REMOVECFG
  1340. RESUME
  1341. DISPLAY 12 NULLSTR
  1342.  
  1343. * Insert Command
  1344. COMMDEF 231 231
  1345. DISPLAY 12 QUOTE Started Auto-Insertion QUOTE
  1346. VARSET cfgfile UNIQUENAME
  1347. COPYCFG insert.cfg VARVAL cfgfile
  1348. OPENCFG VARVAL cfgfile
  1349. ADDCFG I_UserName DSNNAME
  1350. ADDCFG I_PCBFile FILENAME CURRPCB pcb
  1351.  CALL initlibvars
  1352. VARSET oldlibpath LibraryPath
  1353. VARSET prtlibpath PRT_LibraryPath
  1354. VARSET oldlibfile LibraryFile
  1355. VARSET prtlibfile PRT_LibraryFile
  1356. CALL utillibs
  1357. ADDCFG O_InsertReportFile FILENAME CURRPCB ins
  1358. CLOSECFG
  1359. RUNN QUOTE shinsert VARVAL cfgfile QUOTE
  1360. COPYCFG VARVAL cfgfile insert.cfg
  1361. OPENCFG VARVAL cfgfile
  1362. VARSET cfgval CFGVAL I_RunFlag
  1363. CLOSECFG
  1364. IF EQUAL VARVAL cfgval Yes
  1365.   RUNT QUOTE pcinsert -cfg VARVAL cfgfile QUOTE
  1366. ENDIF
  1367. OPENCFG VARVAL cfgfile
  1368. REMOVECFG
  1369. RESUME
  1370. DISPLAY 12 NULLSTR
  1371.  
  1372.  
  1373. * PCB Output
  1374. COMMDEF 220
  1375. DISPLAY 12 QUOTE Started Hardcopy QUOTE
  1376. IF EXISTS hardcopy.cfg
  1377. ELSE
  1378.   OPENCFG hardcopy.cfg
  1379.   ADDCFG I_PlotCFGFile FILENAME DESIGN ppp
  1380.   CLOSECFG
  1381. ENDIF
  1382. VARSET cfgfile UNIQUENAME
  1383. COPYCFG hardcopy.cfg VARVAL cfgfile
  1384. OPENCFG VARVAL cfgfile
  1385. ADDCFG I_UserName DSNNAME
  1386. VARSET cfgval CFGVAL I_PlotFile
  1387. IF EQUAL VARVAL cfgval NULLSTR
  1388.   ADDCFG I_PlotFile FILENAME CURRPCB plt
  1389. ENDIF
  1390. VARSET cfgval CFGVAL I_PlotCFGFile
  1391. IF EQUAL VARVAL cfgval NULLSTR
  1392.   ADDCFG I_PlotCFGFile FILENAME DESIGN ppp
  1393. ENDIF
  1394. VARSET cfgval CFGVAL I_OutputFormat
  1395. IF EQUAL VARVAL cfgval NULLSTR
  1396.   ADDCFG I_OutputFormat PRINT
  1397. ENDIF
  1398. CLOSECFG
  1399.  
  1400. RUNN QUOTE shhrdcpy VARVAL cfgfile QUOTE
  1401.  
  1402. VARSET pppfile UNIQUENAME
  1403.  
  1404. COPYCFG VARVAL cfgfile hardcopy.cfg
  1405.  
  1406. OPENCFG VARVAL cfgfile
  1407.  
  1408. VARSET plotpppfile CFGVAL I_PlotCFGFile
  1409. ADDCFG I_PlotCFGFile VARVAL pppfile
  1410. *ADDCFG I_PlotCFGFile pppfile
  1411.  
  1412. VARSET runval      CFGVAL I_RunFlag
  1413. VARSET pltval      CFGVAL I_OutputFormat
  1414. VARSET program     CFGVAL I_Program
  1415. VARSET spool       CFGVAL I_SpoolOutput
  1416. VARSET lprcommand  CFGVAL I_LPRCommand
  1417. VARSET plotoutput  CFGVAL O_PlotOutput
  1418.  
  1419. CLOSECFG
  1420.  
  1421.  
  1422. COPYCFG VARVAL plotpppfile VARVAL pppfile
  1423.  
  1424. IF EQUAL VARVAL runval Yes
  1425.   IF NOTEQUAL VARVAL program NULLSTR
  1426.     TEXTMODE
  1427. *   DISPLAY 12 QUOTE Printing or Plotting File. QUOTE
  1428.     RUNT QUOTE VARVAL program -cfg VARVAL cfgfile QUOTE
  1429.     IF EQUAL VARVAL spool Yes
  1430. *     DISPLAY 12 QUOTE Spooling Print or Plot File. QUOTE
  1431.       DISPLAY 12 QUOTE Copying to Printing or Plotting Device. QUOTE
  1432.       RUNT QUOTE VARVAL lprcommand VARVAL plotoutput QUOTE
  1433.     ENDIF
  1434.   ENDIF
  1435. ENDIF
  1436. DELFILE VARVAL cfgfile
  1437. DELFILE VARVAL pppfile
  1438. RESUME
  1439. DISPLAY 12 NULLSTR
  1440.  
  1441. * PCB Form Command
  1442. COMMDEF 221 221
  1443. DISPLAY 12 QUOTE Started Report Generator QUOTE
  1444. VARSET cfgfile UNIQUENAME
  1445. COPYCFG pcbform.cfg VARVAL cfgfile
  1446. VARSET dbname PCBNAME
  1447. CALL formsetup
  1448. ADDCFG I_PCBFile FILENAME CURRPCB pcb
  1449. ADDCFG P_FormsMode P
  1450. CLOSECFG
  1451. RUNN QUOTE shform VARVAL cfgfile QUOTE
  1452. COPYCFG VARVAL cfgfile pcbform.cfg
  1453. OPENCFG VARVAL cfgfile
  1454. VARSET cfgval CFGVAL I_RunFlag
  1455. IF EQUAL VARVAL cfgval Yes
  1456.   TEXTMODE
  1457.   VARSET nodesfil UNIQUENAME
  1458.   VARSET dbname CFGVAL I_PCBFile
  1459.   ADDCFG I_NetlistFile FILENAME BASENAME VARVAL dbname pcb pnl
  1460.   CLOSECFG
  1461.   IF DEPEND FILENAME VARVAL dbname pnl FILENAME VARVAL dbname pcb
  1462.     OPENCFG VARVAL nodesfil
  1463.     ADDCFG I_DatabaseFile FILENAME VARVAL dbname pcb
  1464.     ADDCFG O_NetlistFile FILENAME VARVAL dbname pnl
  1465.     CLOSECFG
  1466.     RUNT QUOTE pcnodes -cfg VARVAL nodesfil QUOTE
  1467.   ENDIF
  1468.   OPENCFG VARVAL nodesfil
  1469.   REMOVECFG
  1470.   RUNT QUOTE pcform -cfg VARVAL cfgfile QUOTE
  1471. ELSE
  1472.   CLOSECFG
  1473. ENDIF
  1474. COPYCFG VARVAL cfgfile pcbform.cfg
  1475. OPENCFG VARVAL cfgfile
  1476. REMOVECFG
  1477. RESUME
  1478. DISPLAY 12 NULLSTR
  1479.  
  1480. * Library Set Path Command
  1481. COMMDEF 401 401
  1482. SPECIAL DSNNONE
  1483. SPECIAL DSNROOT
  1484. IF VALIDLOCKFILE pcadcfg.lck
  1485.   DISPLAY 12 QUOTE This concurrent operation not permitted. Sorry. QUOTE
  1486. ELSE
  1487.   DISPLAY 12 QUOTE Started Libs. and Search Paths QUOTE
  1488.   OPENCFG pcadcfg.lck
  1489.   ADDCFG Lock_On_Process QUOTE PROCESSID USERID HOSTID QUOTE
  1490.   CLOSECFG
  1491.   SPECIAL DSNDIR
  1492.   RUNG QUOTE shlibcfg pcad.cfg QUOTE
  1493.   SPECIAL DSNROOT
  1494.   OPENCFG pcadcfg.lck
  1495.   REMOVECFG
  1496.   DISPLAY 12 NULLSTR
  1497. ENDIF
  1498. SPECIAL DSNDIR
  1499. SPECIAL DSNINIT
  1500.  
  1501. * Library Maintenance Command
  1502. COMMDEF 403 403
  1503. DISPLAY 12 QUOTE Started Library Maintenance QUOTE
  1504. OPENCFG lib.cfg
  1505. CALL initlibvars
  1506. VARSET cfgfile lib.cfg
  1507. VARSET oldlibpath LibraryPath
  1508. VARSET symlibpath SYM_LibraryPath
  1509. VARSET prtlibpath PRT_LibraryPath
  1510. VARSET oldlibfile LibraryFile
  1511. VARSET symlibfile SYM_LibraryFile
  1512. VARSET prtlibfile PRT_LibraryFile
  1513. CALL utillibs
  1514. CLOSECFG
  1515. RUN QUOTE pclib -cfg lib.cfg QUOTE
  1516. DISPLAY 12 NULLSTR
  1517.  
  1518. * Symbol Edit Command
  1519. COMMDEF 410 410
  1520. IF VALIDLOCKFILE capscfg.lck
  1521.     DISPLAY 12 QUOTE Cannot edit while changing configuration. Sorry. QUOTE
  1522. ELSE
  1523.     DISPLAY 12 QUOTE Started Symbol Editor QUOTE
  1524.     OPENCFG caps.cfg
  1525.     ADDCFG I_Mode Symbol
  1526.     ADDCFG O_FatalCondition xxx
  1527.     VARSET cfgfile caps.cfg
  1528.     DELCFG I_CurrentSheet 
  1529.     CALL initlibvars
  1530.       VARSET oldlibpath LibraryPath
  1531.       VARSET symlibpath SYM_LibraryPath
  1532.       VARSET oldlibfile LibraryFile
  1533.       VARSET symlibfile SYM_LibraryFile
  1534.     CALL utillibs
  1535.     CLOSECFG
  1536.     RUNG QUOTE pccaps -cfg caps.cfg QUOTE
  1537.  
  1538.     OPENCFG caps.cfg
  1539.  
  1540.     VARSET cfgval CFGVAL O_FatalCondition  
  1541.     IF NOTEQUAL VARVAL cfgval NULLSTR
  1542.       DISPLAY 12 QUOTE Fatal Error: caps: program abort detected. QUOTE
  1543.       PRINT QUOTE Fatal Error: caps: program abort detected. QUOTE
  1544.       PRINT QUOTE    Close some windows and try the operation again. QUOTE
  1545.     ELSE
  1546.       DISPLAY 12 NULLSTR
  1547.     ENDIF
  1548.  
  1549.     VARSET cfgval CFGVAL O_ComponentPaths
  1550.     WHILE NOTEQUAL VARVAL cfgval NULLSTR
  1551.       OPENCFG design.cfg
  1552.       PUTCFG SYM_LibraryPath VARVAL cfgval
  1553.       OPENCFG caps.cfg
  1554.       VARSET cfgval CFGNEXT O_ComponentPaths
  1555.     ENDWHILE
  1556.     DELCFG O_ComponentPaths
  1557.  
  1558.     VARSET cfgval CFGVAL O_SaveTime
  1559.     IF NOTEQUAL VARVAL cfgval NULLSTR
  1560.         PUTCFG I_SaveTime VARVAL cfgval
  1561.     ENDIF
  1562.     DELCFG O_SaveTime
  1563.  
  1564.     CLOSECFG
  1565.     OPENCFG design.cfg
  1566.     CLOSECFG
  1567. ENDIF
  1568.     
  1569.  
  1570. * Part Edit Command
  1571. COMMDEF 411 411
  1572. IF VALIDLOCKFILE cardscfg.lck
  1573.     DISPLAY 12 QUOTE Cannot edit while changing configuration. Sorry. QUOTE
  1574. ELSE
  1575.     DISPLAY 12 QUOTE Started Part Editor QUOTE
  1576.     OPENCFG cards.cfg
  1577.     ADDCFG I_Mode Symbol
  1578.     ADDCFG O_FatalCondition xxx
  1579.     VARSET cfgfile cards.cfg
  1580.     DELCFG I_PCBDataBase 
  1581.     CALL initlibvars
  1582.       VARSET oldlibpath LibraryPath
  1583.       VARSET prtlibpath PRT_LibraryPath
  1584.       VARSET oldlibfile LibraryFile
  1585.       VARSET prtlibfile PRT_LibraryFile
  1586.     CALL utillibs
  1587.     CLOSECFG
  1588.     RUNG QUOTE pccards -cfg cards.cfg QUOTE
  1589.  
  1590.     OPENCFG cards.cfg
  1591.  
  1592.     VARSET cfgval CFGVAL O_FatalCondition  
  1593.     IF NOTEQUAL VARVAL cfgval NULLSTR
  1594.       DISPLAY 12 QUOTE Fatal Error: cards: program abort detected. QUOTE
  1595.       PRINT QUOTE Fatal Error: cards: program abort detected. QUOTE
  1596.       PRINT QUOTE    Close some windows and try the operation again. QUOTE
  1597.     ELSE
  1598.       DISPLAY 12 NULLSTR
  1599.     ENDIF
  1600.  
  1601.     VARSET cfgval CFGVAL O_ComponentPaths
  1602.     WHILE NOTEQUAL VARVAL cfgval NULLSTR
  1603.       OPENCFG design.cfg
  1604.       PUTCFG PRT_LibraryPath VARVAL cfgval
  1605.       OPENCFG cards.cfg
  1606.       VARSET cfgval CFGNEXT O_ComponentPaths
  1607.     ENDWHILE
  1608.     DELCFG O_ComponentPaths
  1609.  
  1610.     VARSET cfgval CFGVAL O_OnlineDRC
  1611.     IF NOTEQUAL VARVAL cfgval NULLSTR
  1612.         PUTCFG I_OnlineDRC VARVAL cfgval
  1613.     ENDIF
  1614.     DELCFG O_OnlineDRC
  1615.  
  1616.     VARSET cfgval CFGVAL O_UncommPin
  1617.     IF NOTEQUAL VARVAL cfgval NULLSTR
  1618.         PUTCFG I_UncommPin VARVAL cfgval
  1619.     ENDIF
  1620.     DELCFG O_UncommPin
  1621.  
  1622.     VARSET cfgval CFGVAL O_SaveTime
  1623.     IF NOTEQUAL VARVAL cfgval NULLSTR
  1624.         PUTCFG I_SaveTime VARVAL cfgval
  1625.     ENDIF
  1626.     DELCFG O_SaveTime
  1627.  
  1628.     VARSET cfgval CFGVAL O_TraceLength
  1629.     IF NOTEQUAL VARVAL cfgval NULLSTR
  1630.         PUTCFG I_TraceLength VARVAL cfgval
  1631.     ENDIF
  1632.     DELCFG O_TraceLength
  1633.  
  1634.     CLOSECFG
  1635.     OPENCFG design.cfg
  1636.     CLOSECFG
  1637. ENDIF
  1638.     
  1639.  
  1640. * Component Edit Command
  1641. COMMDEF 412 412
  1642. DISPLAY 12 QUOTE Started Component Editor QUOTE
  1643. OPENCFG comp.cfg
  1644. VARSET cfgfile comp.cfg
  1645. CALL initlibvars
  1646. VARSET oldlibpath LibraryPath
  1647. VARSET symlibpath SYM_LibraryPath
  1648. VARSET prtlibpath PRT_LibraryPath
  1649. VARSET oldlibfile LibraryFile
  1650. VARSET symlibfile SYM_LibraryFile
  1651. VARSET prtlibfile PRT_LibraryFile
  1652. CALL utillibs
  1653. CLOSECFG
  1654. SPAWN QUOTE pccomp -cfg comp.cfg QUOTE
  1655. DISPLAY 12 NULLSTR
  1656.  
  1657.  
  1658. * Interface commands
  1659.  
  1660. * Add Program Command
  1661. COMMDEF 501 501
  1662. DISPLAY 12 QUOTE Started Add Program Command QUOTE
  1663. SPECIAL DSNROOT
  1664. RUNG QUOTE shadprog QUOTE
  1665. SPECIAL DSNBUTN
  1666. SPECIAL DSNDIR
  1667. DISPLAY 12 NULLSTR
  1668.  
  1669. * GERBER-CAM Command
  1670. *COMMDEF 501 501
  1671. *IF EXISTS design.cfg
  1672. *   DISPLAY 12 QUOTE Started Gerber CAM Command QUOTE
  1673. *   SPAWN QUOTE cam QUOTE
  1674. *   DISPLAY 12 NULLSTR
  1675. *ELSE
  1676. *  DISPLAY 12 QUOTE Please create a design first. QUOTE
  1677. *ENDIF
  1678.  
  1679. * GERBER-EDIT CAM Command
  1680. *COMMDEF 502 502
  1681. *IF EXISTS design.cfg
  1682. *   DISPLAY 12 QUOTE Gerber Edit File/CAM not available QUOTE
  1683. *   SPAWN QUOTE ecam QUOTE
  1684. *   DISPLAY 12 NULLSTR
  1685. *ELSE
  1686. *  DISPLAY 12 QUOTE Please create a design first. QUOTE
  1687. *ENDIF
  1688.  
  1689. * GPLOT Command
  1690. *COMMDEF 503 503
  1691. *IF EXISTS design.cfg
  1692. *   DISPLAY 12 QUOTE Started Print Gerber File QUOTE
  1693. *   SPAWN QUOTE gplot QUOTE
  1694. *   DISPLAY 12 NULLSTR
  1695. *ELSE
  1696. *  DISPLAY 12 QUOTE Please create a design first. QUOTE
  1697. *ENDIF
  1698.  
  1699. *
  1700. * EDIF to PCB Converter 
  1701. *
  1702. *  Cfg Keywords
  1703. *    
  1704. *    I_UserName    - the name of the current design
  1705. *    I_InputFile    - the EDIF input file name (.edf)
  1706. *    I_start_database - the start PCB database
  1707. *    O_AltFile    - the ASCII netlist intermediate file name (.alt)
  1708. *    O_PCBFile    - the PCB layout output file name (.pcb)
  1709. *    I_RunFlag    - run flag (Yes or No)
  1710. *    I_ComponentPaths - design pcad library path
  1711. *    I_ComponentLibraryNames - design pcad library name
  1712. *
  1713. COMMDEF 502 502
  1714. IF EXISTS design.cfg
  1715.   DISPLAY 12 QUOTE Started EDIF Netlist Reader QUOTE
  1716.   VARSET cfgfile UNIQUENAME
  1717.   COPYCFG edif2alt.cfg VARVAL cfgfile
  1718.   OPENCFG VARVAL cfgfile
  1719. *
  1720.   DELCFG I_CrossReferenceFile
  1721.   OPENCFG design.cfg
  1722.   VARSET cfgval CFGVAL  I_CrossReferenceFile
  1723.   CLOSECFG
  1724.   OPENCFG VARVAL cfgfile
  1725.   IF NOTEQUAL VARVAL cfgval NULLSTR
  1726.     PUTCFG I_CrossReferenceFile VARVAL cfgval
  1727.   ENDIF
  1728. *
  1729.   ADDCFG I_UserName DSNNAME
  1730.  
  1731.   VARSET cfgval CFGVAL I_InputFile
  1732.   IF EQUAL VARVAL cfgval NULLSTR
  1733.     IF EQUAL FILENAME CURRPCB NULLSTR .
  1734.        ADDCFG I_InputFile  FILENAME DSNNAME edf       
  1735.     ELSE
  1736.        ADDCFG I_InputFile  FILENAME CURRPCB edf
  1737.     ENDIF
  1738.   ELSE
  1739.     IF EXISTS VARVAL cfgval
  1740.     ELSE
  1741.        IF EQUAL FILENAME CURRPCB NULLSTR .
  1742.           ADDCFG I_InputFile  FILENAME DSNNAME edf       
  1743.        ELSE
  1744.           ADDCFG I_InputFile  FILENAME CURRPCB edf
  1745.        ENDIF
  1746.     ENDIF
  1747.   ENDIF
  1748.  
  1749.   VARSET cfgval CFGVAL I_start_database
  1750.   IF EQUAL VARVAL cfgval NULLSTR
  1751.     IF NOTEQUAL FILENAME CURRPCB NULLSTR .
  1752.        ADDCFG I_start_database  FILENAME CURRPCB pcb
  1753.     ENDIF
  1754.   ELSE
  1755.     IF EXISTS VARVAL cfgval
  1756.     ELSE
  1757.        IF NOTEQUAL FILENAME CURRPCB NULLSTR .
  1758.           ADDCFG I_start_database  FILENAME CURRPCB pcb
  1759.        ENDIF
  1760.     ENDIF
  1761.   ENDIF
  1762.  
  1763.   VARSET cfgval CFGVAL O_AltFile
  1764.   IF EQUAL VARVAL cfgval NULLSTR
  1765.     IF EQUAL FILENAME CURRPCB NULLSTR .
  1766.        ADDCFG O_AltFile FILENAME DSNNAME alt
  1767.     ELSE
  1768.        ADDCFG O_AltFile FILENAME CURRPCB alt
  1769.     ENDIF
  1770.   ENDIF
  1771.  
  1772.  
  1773.   VARSET cfgval CFGVAL O_OutputFile
  1774.   IF EQUAL VARVAL cfgval NULLSTR
  1775.     IF NOTEQUAL FILENAME CURRPCB NULLSTR .
  1776.         ADDCFG O_OutputFile FILENAME CURRPCB pcb
  1777.     ENDIF
  1778.   ENDIF
  1779.  
  1780. *
  1781. * replaced above "O_OutputFile" with "O_PCBFile" since user interface is 
  1782. * updated to accept PCB file name for output instead of
  1783. * ALT file name.
  1784. *
  1785.    CALL initlibvars
  1786.    VARSET oldlibpath LibraryPath
  1787.    VARSET symlibpath SYM_LibraryPath
  1788.    VARSET prtlibpath PRT_LibraryPath
  1789.    VARSET nltlibpath NLT_LibraryPath
  1790.    VARSET oldlibfile LibraryFile
  1791.    VARSET symlibfile SYM_LibraryFile
  1792.    VARSET prtlibfile PRT_LibraryFile
  1793.   CALL utillibs
  1794.   CLOSECFG
  1795.   RUNG QUOTE shedfalt VARVAL cfgfile QUOTE
  1796.   OPENCFG edif2alt.cfg
  1797.   REMOVECFG
  1798.   COPYCFG VARVAL cfgfile edif2alt.cfg
  1799.   OPENCFG VARVAL cfgfile
  1800.   VARSET cfgval CFGVAL I_RunFlag
  1801.   CLOSECFG
  1802.   IF EQUAL VARVAL cfgval Yes
  1803.      RUN QUOTE edif2alt -cfg VARVAL cfgfile QUOTE
  1804.     OPENCFG VARVAL cfgfile
  1805.     VARSET cfgval CFGVAL I_RunFlag
  1806.     VARSET inputfile CFGVAL O_AltFile
  1807.     VARSET outputfile CFGVAL O_PCBFile
  1808.     CLOSECFG
  1809.     IF EQUAL VARVAL cfgval Yes
  1810.       DISPLAY 12 QUOTE Converting alt file to pcb file QUOTE
  1811.       VARSET cfgfile UNIQUENAME
  1812.       OPENCFG VARVAL cfgfile
  1813.       ADDCFG I_UserName DSNNAME
  1814.       ADDCFG O_PCBFile FILENAME VARVAL outputfile pcb
  1815.       ADDCFG I_AsciiNetlistFile FILENAME VARVAL inputfile alt
  1816.       ADDCFG O_RefdesReportFile FILENAME VARVAL outputfile rp1
  1817.       ADDCFG O_PartTypeReportFile FILENAME VARVAL outputfile rp2
  1818.       ADDCFG O_NetNameReportFile FILENAME VARVAL outputfile rp3
  1819.       ADDCFG O_NetSheetReportFile FILENAME VARVAL outputfile rp4
  1820.       CALL initlibvars
  1821.       VARSET oldlibpath LibraryPath
  1822.       VARSET symlibpath SYM_LibraryPath
  1823.       VARSET prtlibpath PRT_LibraryPath
  1824.       VARSET nltlibpath NLT_LibraryPath
  1825.       VARSET oldlibfile LibraryFile
  1826.       VARSET symlibfile SYM_LibraryFile
  1827.       VARSET prtlibfile PRT_LibraryFile
  1828.       CALL utillibs
  1829.       CLOSECFG
  1830.  
  1831.       RUN QUOTE pcnlt -cfg VARVAL cfgfile QUOTE
  1832.       COPYCFG VARVAL cfgfile nlt.cfg
  1833.  
  1834.       DISPLAY 12 NULLSTR
  1835.  
  1836.     ENDIF
  1837.   ELSE
  1838.     DISPLAY 12 NULLSTR
  1839.   ENDIF
  1840.   OPENCFG VARVAL cfgfile
  1841.   REMOVECFG
  1842. ELSE
  1843.   DISPLAY 12 QUOTE Please create a design first. QUOTE
  1844. ENDIF
  1845.  
  1846.  
  1847. * EDIF Netlist Writer Command
  1848. *
  1849. *  Cfg Keywords
  1850. *    
  1851. *    I_UserName    - the name of the current design
  1852. *    I_InputFile    - the sheet file name (.sch)
  1853. *    I_NetlistFile    - the derived netlist file name (.nlt or .xnl)
  1854. *       NOTE: this parm should be used by "nxedif2" for the netlist
  1855. *         input file name.
  1856. *
  1857. *    P_AllSheet    - boolean on all or one sheets (Y or N)
  1858. *    O_OutputFile    - the EDIF output file name (.edf)
  1859. *    I_hierarchy_comp_exp - Hierarchical expand file (YES or NO)
  1860. *    I_alias        - Alias flag (YES or NO)
  1861. *    I_prop_mapping  - property mapping file name
  1862. *    I_external_lib  - external EDIF library definition
  1863. *    I_RunFlag    - run flag (Yes or No)
  1864. *    I_ComponentPaths - design pcad library path
  1865. *    I_ComponentLibraryNames - design pcad library name
  1866. *
  1867. COMMDEF 503 503
  1868. IF EXISTS design.cfg
  1869.   DISPLAY 12 QUOTE Started EDIF Netlist Writer QUOTE
  1870.   VARSET cfgfile UNIQUENAME
  1871.   COPYCFG nxedif2.cfg VARVAL cfgfile
  1872.   OPENCFG VARVAL cfgfile
  1873.   ADDCFG I_UserName DSNNAME
  1874. *
  1875.   VARSET cfgval CFGVAL I_InputFile
  1876.   IF EQUAL VARVAL cfgval NULLSTR
  1877.     ADDCFG I_InputFile FILENAME SHEET sch
  1878.   ENDIF
  1879. *
  1880. *  The above variable "I_InputFile" should be the name
  1881. *  of an individual sheet when P_AllSheet is "N".
  1882. *  It is ignored (defaulted to DESIGN.xnl) when all
  1883. *  sheets of the design are linked (e.g. P_AllSheet is "Y").
  1884. *  See "Generate Reports" for an example.
  1885. *
  1886.   VARSET cfgval CFGVAL P_AllSheet
  1887.   IF EQUAL VARVAL cfgval NULLSTR
  1888.     ADDCFG P_AllSheet Y
  1889.   ENDIF
  1890. *     
  1891. *  The above parameter "P_AllSheet" is a new checkbox on
  1892. *  the panel for shnxedif2.  If P_AllSheet is "Y" then 
  1893. *  all the design sheets are compiled and linked and the
  1894. *  input file for nxedif2 is the expanded net list.
  1895. *
  1896.   VARSET cfgval CFGVAL O_OutputFile
  1897.   IF EQUAL VARVAL cfgval NULLSTR
  1898.     VARSET dbname DSNNAME
  1899.     ADDCFG O_OutputFile FILENAME DESIGN edf
  1900.   ENDIF
  1901.     CALL initlibvars
  1902.    VARSET oldlibpath LibraryPath
  1903.    VARSET symlibpath SYM_LibraryPath
  1904.    VARSET oldlibfile LibraryFile
  1905.    VARSET symlibfile SYM_LibraryFile
  1906.   CALL utillibs
  1907.   CLOSECFG
  1908.   RUNG QUOTE shnxedf2 VARVAL cfgfile QUOTE
  1909.   OPENCFG VARVAL cfgfile
  1910.   VARSET cfgval CFGVAL I_RunFlag
  1911.   VARSET allshval CFGVAL P_AllSheet
  1912.   IF EQUAL VARVAL cfgval Yes
  1913.   VARSET nodesfil UNIQUENAME
  1914.     IF EQUAL VARVAL allshval Y
  1915.        VARSET linkfil  UNIQUENAME
  1916.        ADDCFG I_NetlistFile FILENAME DESIGN xnl
  1917.        CLOSECFG
  1918.        VARSET cfgsave VARVAL cfgfile
  1919.        CALL runlink
  1920.        VARSET cfgfile VARVAL cfgsave
  1921.        OPENCFG VARVAL linkfil
  1922.        REMOVECFG
  1923.     ELSE
  1924.        VARSET dbname CFGVAL I_InputFile
  1925.        ADDCFG I_NetlistFile FILENAME VARVAL dbname nlt
  1926.        CLOSECFG
  1927.        CALL runnodes
  1928.     ENDIF
  1929.     OPENCFG VARVAL nodesfil
  1930.     REMOVECFG
  1931.     OPENCFG nxedif2.cfg
  1932.     REMOVECFG
  1933.     COPYCFG VARVAL cfgfile nxedif2.cfg
  1934.   RUN QUOTE nxedif2 -cfg VARVAL cfgfile QUOTE
  1935.   ELSE
  1936.     OPENCFG nxedif2.cfg
  1937.     REMOVECFG
  1938.     COPYCFG VARVAL cfgfile nxedif2.cfg
  1939.     CLOSECFG
  1940.   ENDIF
  1941.   OPENCFG VARVAL cfgfile
  1942.   REMOVECFG
  1943.   DISPLAY 12 NULLSTR
  1944. ELSE
  1945.   DISPLAY 12 QUOTE Please create a design first. QUOTE
  1946. ENDIF
  1947.  
  1948.  
  1949. * EDIF Schematic Reader Command
  1950. *COMMDEF 506 506
  1951. *IF EXISTS design.cfg
  1952. *   DISPLAY 12 QUOTE EDIF Schematic Reader not available QUOTE
  1953. *   SPAWN QUOTE edifschin QUOTE
  1954. *   DISPLAY 12 NULLSTR
  1955. *ELSE
  1956. *  DISPLAY 12 QUOTE Please create a design first. QUOTE
  1957. *ENDIF
  1958.  
  1959. * EDIF Schematic Writer Command
  1960. *COMMDEF 507 507
  1961. *IF EXISTS design.cfg
  1962. *   DISPLAY 12 QUOTE EDIF Schematic Writer not available QUOTE
  1963. *   SPAWN QUOTE edifschout QUOTE
  1964. *   DISPLAY 12 NULLSTR
  1965. *ELSE
  1966. *  DISPLAY 12 QUOTE Please create a design first. QUOTE
  1967. *ENDIF
  1968.  
  1969. * UNX-SPICE Netlist Writer Command
  1970. COMMDEF 504 504
  1971. DISPLAY 12 QUOTE Started SPICE Circuit Writer QUOTE
  1972. VARSET config UNIQUENAME
  1973. COPYCFG nxspice.cfg VARVAL config
  1974. OPENCFG VARVAL config
  1975. ADDCFG I_UserName DSNNAME
  1976. ADDCFG I_NetlistFile FILENAME DESIGN xnl
  1977. DELCFG I_CrossReferenceFile
  1978. OPENCFG design.cfg
  1979. VARSET cfgval CFGVAL  I_CrossReferenceFile
  1980. CLOSECFG
  1981. OPENCFG VARVAL config
  1982. IF NOTEQUAL VARVAL cfgval NULLSTR
  1983.   PUTCFG I_CrossReferenceFile VARVAL cfgval
  1984. ENDIF
  1985. * set default parameters
  1986. VARSET cfgval CFGVAL  P_NumericNames
  1987. IF EQUAL VARVAL cfgval NULLSTR
  1988.   ADDCFG P_NumericNames Y
  1989. ENDIF
  1990. VARSET cfgval CFGVAL  P_ReportNonNumNam
  1991. IF EQUAL VARVAL cfgval NULLSTR
  1992.   ADDCFG P_ReportNonNumNam N
  1993. ENDIF
  1994. VARSET cfgval CFGVAL  P_CorrectCompNames
  1995. IF EQUAL VARVAL cfgval NULLSTR
  1996.   ADDCFG P_CorrectCompNames Y
  1997. ENDIF
  1998. VARSET cfgval CFGVAL  P_LineNumbers
  1999. IF EQUAL VARVAL cfgval NULLSTR
  2000.   ADDCFG P_LineNumbers Y
  2001. ENDIF
  2002. VARSET cfgval CFGVAL  P_SupPreGues
  2003. IF EQUAL VARVAL cfgval NULLSTR
  2004.   ADDCFG P_SupPreGues N
  2005. ENDIF
  2006. VARSET cfgval CFGVAL  P_SupPrefix
  2007. IF EQUAL VARVAL cfgval NULLSTR
  2008.   ADDCFG P_SupPrefix N
  2009. ENDIF
  2010. VARSET cfgval CFGVAL  P_SupPreWarn
  2011. IF EQUAL VARVAL cfgval NULLSTR
  2012.   ADDCFG P_SupPreWarn N
  2013. ENDIF
  2014. VARSET cfgval CFGVAL  P_SupCompPrefix
  2015. IF EQUAL VARVAL cfgval NULLSTR
  2016.   ADDCFG P_SupCompPrefix N
  2017. ENDIF
  2018. VARSET cfgval CFGVAL  I_BASEGLOB
  2019. IF EQUAL VARVAL cfgval NULLSTR
  2020.   ADDCFG I_BASEGLOB 9000
  2021. ENDIF
  2022. VARSET cfgval CFGVAL  I_BASELOC
  2023. IF EQUAL VARVAL cfgval NULLSTR
  2024.   ADDCFG I_BASELOC 8000
  2025. ENDIF
  2026. OPENCFG design.cfg
  2027. VARSET cfgval CFGVAL  O_CrossReferenceFile
  2028. CLOSECFG
  2029. OPENCFG VARVAL config
  2030. IF NOTEQUAL VARVAL cfgval NULLSTR
  2031.   PUTCFG O_CrossReferenceFile VARVAL cfgval
  2032. ENDIF
  2033. * reinstance hierarchy in case it changed
  2034. * PREMIER 1.2 hierarchy definition
  2035. DELCFG I_HierarchicalTopNodes
  2036. OPENCFG design.cfg
  2037. VARSET cfgval CFGVAL Hierarchical_Top_Nodes
  2038. WHILE NOTEQUAL VARVAL cfgval NULLSTR
  2039.   OPENCFG VARVAL config
  2040.   PUTCFG I_HierarchicalTopNodes FILENAME VARVAL cfgval sch
  2041.   OPENCFG design.cfg
  2042.   VARSET cfgval CFGNEXT Hierarchical_Top_Nodes
  2043. ENDWHILE
  2044. CLOSECFG
  2045. * MD6.0 hierarchy definition
  2046. DELCFG I_HierarchicalSymbols
  2047. OPENCFG design.cfg
  2048. VARSET cfgval CFGVAL Hierarchical_Symbols
  2049. IF NOTEQUAL VARVAL cfgval NULLSTR
  2050.   OPENCFG VARVAL config
  2051.   WHILE SHEET
  2052.     PUTCFG I_HierarchicalTopNodes FILENAME SHEET sch
  2053.   ENDWHILE
  2054. ENDIF
  2055. CLOSECFG
  2056. CLOSECFG
  2057. * Test for any kind of hierarchical definition
  2058. OPENCFG VARVAL config
  2059. VARSET cfgval CFGVAL  P_FlatHier
  2060. IF EQUAL VARVAL cfgval NULLSTR
  2061.   VARSET hierset false
  2062.   VARSET cfgval CFGVAL I_HierarchicalTopNodes
  2063.   IF NOTEQUAL VARVAL cfgval NULLSTR
  2064.     VARSET hierset true
  2065.   ENDIF
  2066.   IF EQUAL VARVAL hierset false
  2067.     ADDCFG P_FlatHier Y
  2068.   ELSE
  2069.     ADDCFG P_FlatHier N
  2070.   ENDIF
  2071. ENDIF
  2072. CLOSECFG
  2073. * remap header sheet to sch
  2074. OPENCFG VARVAL config
  2075. VARSET cfgval CFGVAL I_HeaderSheet
  2076. DELCFG I_HeaderSheet
  2077. PUTCFG I_HeaderSheet FILENAME BASENAME VARVAL cfgval nlt sch
  2078. DELCFG I_NetlistFile
  2079. OPENCFG design.cfg
  2080. OPENCFG VARVAL config
  2081. WHILE SHEET
  2082.   PUTCFG I_NetlistFile FILENAME SHEET sch
  2083. ENDWHILE
  2084. VARSET cfgfile VARVAL config
  2085. CALL initlibvars
  2086. VARSET oldlibpath LibraryPath
  2087. VARSET symlibpath SYM_LibraryPath
  2088. VARSET nltlibpath NLT_LibraryPath
  2089. VARSET oldlibfile LibraryFile
  2090. VARSET symlibfile SYM_LibraryFile
  2091. CALL utillibs
  2092. CLOSECFG
  2093. CLOSECFG
  2094. * get user input though utility shell
  2095. RUN QUOTE shnxspce VARVAL config QUOTE
  2096. COPYCFG VARVAL config nxspice.cfg
  2097. OPENCFG VARVAL config
  2098. VARSET cfgval CFGVAL I_RunFlag
  2099. VARSET lnkval CFGVAL P_FlatHier
  2100. DELCFG I_NetlistFile
  2101. PUTCFG I_NetlistFile FILENAME DESIGN xnl
  2102. CLOSECFG
  2103. IF EQUAL VARVAL cfgval Yes
  2104.   VARSET nodesfil UNIQUENAME
  2105.   IF EQUAL VARVAL lnkval Y
  2106.     VARSET linkfil  UNIQUENAME
  2107.     CALL runlink
  2108.     OPENCFG VARVAL linkfil
  2109.     REMOVECFG
  2110.   ELSE
  2111.     VARSET runlink no
  2112.     WHILE SHEET
  2113.       VARSET dbname SCHNAME
  2114.       CALL runnodes
  2115.       IF DEPEND FILENAME DESIGN cir FILENAME SCHNAME nlt
  2116.         VARSET runlink yes
  2117.       ENDIF
  2118.     ENDWHILE
  2119. * handle hierarch. symbols if any
  2120.     OPENCFG design.cfg
  2121.     VARSET hiersym CFGVAL Hierarchical_Symbols
  2122.     WHILE NOTEQUAL VARVAL hiersym NULLSTR
  2123.       VARSET symext EXTENSION VARVAL hiersym
  2124.       VARSET dbname BASENAME VARVAL hiersym VARVAL symext
  2125.       CALL hsymnodes
  2126.       VARSET hiersym CFGNEXT Hierarchical_Symbols
  2127.     ENDWHILE
  2128.     CLOSECFG
  2129. * set names for nxspice engine
  2130.     OPENCFG design.cfg
  2131.     VARSET cfgval CFGVAL Hierarchical_Top_Nodes
  2132.     CLOSECFG
  2133.     OPENCFG VARVAL config
  2134.     DELCFG I_NetlistFile
  2135.     VARSET cfgval CFGVAL I_HierarchicalTopNodes
  2136.     IF EQUAL VARVAL cfgval NULLSTR     
  2137.       WHILE SHEET
  2138.         PUTCFG I_NetlistFile FILENAME SHEET nlt
  2139.       ENDWHILE
  2140.     ELSE
  2141.       OPENCFG design.cfg
  2142.       VARSET cfgval CFGVAL Hierarchical_Top_Nodes
  2143.       IF NOTEQUAL VARVAL cfgval NULLSTR
  2144.         WHILE NOTEQUAL VARVAL cfgval NULLSTR
  2145.           OPENCFG VARVAL config
  2146.           PUTCFG I_NetlistFile FILENAME VARVAL cfgval nlt
  2147.           OPENCFG design.cfg
  2148.           VARSET cfgval CFGNEXT Hierarchical_Top_Nodes
  2149.         ENDWHILE
  2150.       ELSE
  2151.         OPENCFG VARVAL config
  2152.         WHILE SHEET
  2153.           PUTCFG I_NetlistFile FILENAME SHEET nlt
  2154.         ENDWHILE
  2155.       ENDIF
  2156.       CLOSECFG
  2157.      
  2158.       VARSET cfgfile VARVAL config
  2159.        CALL initlibvars
  2160.       VARSET oldlibpath LibraryPath
  2161.       VARSET symlibpath SYM_LibraryPath
  2162.       VARSET nltlibpath NLT_LibraryPath
  2163.       VARSET oldlibfile LibraryFile
  2164.       VARSET symlibfile SYM_LibraryFile
  2165.       CALL utillibs
  2166.       CLOSECFG
  2167.     ENDIF
  2168.   ENDIF
  2169.   OPENCFG VARVAL nodesfil
  2170.   REMOVECFG
  2171.   OPENCFG nxspice.cfg
  2172.   REMOVECFG
  2173.   COPYCFG VARVAL config nxspice.cfg
  2174.   RUN QUOTE nxspice -cfg VARVAL config QUOTE
  2175. ENDIF
  2176. OPENCFG VARVAL config
  2177. REMOVECFG
  2178. DISPLAY 12 NULLSTR
  2179.  
  2180. * Subroutine Declarations 
  2181.  
  2182. * Run Link Subroutine
  2183. SUBROUTINE runlink
  2184. VARSET runlink no
  2185. * re-extract .nlt if any top sheets are updated
  2186. WHILE SHEET
  2187.   VARSET dbname SCHNAME
  2188.   CALL runnodes
  2189.   IF DEPEND FILENAME DESIGN xnl FILENAME SHEET nlt
  2190.     VARSET runlink yes
  2191.   ENDIF
  2192. ENDWHILE
  2193. * handle hierarch. symbols if any
  2194.  OPENCFG design.cfg
  2195.  VARSET hiersym CFGVAL Hierarchical_Symbols
  2196.  WHILE NOTEQUAL VARVAL hiersym NULLSTR
  2197.    VARSET symext EXTENSION VARVAL hiersym
  2198.    VARSET dbname BASENAME VARVAL hiersym VARVAL symext
  2199.    CALL hsymnodes
  2200.      IF DEPEND FILENAME DESIGN xnl FILENAME VARVAL dbname nlt
  2201.        VARSET runlink yes
  2202.      ENDIF
  2203.    VARSET hiersym CFGNEXT Hierarchical_Symbols
  2204.  ENDWHILE
  2205.  CLOSECFG
  2206. * need to re-extract .xnl if runlink is yes ie. any sheets or hier sym got
  2207. * updated
  2208. IF EQUAL VARVAL runlink yes
  2209.   OPENCFG VARVAL linkfil
  2210.   DELCFG I_NetlistFiles
  2211. * build linkfil's I_NetlistFiles rec.
  2212.   WHILE SHEET
  2213.     PUTCFG I_NetlistFiles FILENAME SHEET nlt
  2214.   ENDWHILE
  2215.   ADDCFG O_NetlistFile FILENAME DESIGN xnl
  2216. * port nlt path from design.cfg to link cfg
  2217.   VARSET cfgfile VARVAL linkfil
  2218.   CALL initlibvars
  2219.   VARSET oldlibpath LibraryPath
  2220.   VARSET nltlibpath NLT_LibraryPath
  2221.   CALL utillibs
  2222.   CLOSECFG
  2223.   RUNT QUOTE pclink -cfg VARVAL linkfil QUOTE
  2224. ENDIF
  2225.  
  2226. * Run Nodes Subroutine
  2227. SUBROUTINE runnodes
  2228. IF DEPEND FILENAME VARVAL dbname nlt FILENAME VARVAL dbname  sch
  2229.   OPENCFG VARVAL nodesfil
  2230.   ADDCFG I_DatabaseFile FILENAME VARVAL dbname sch
  2231.   ADDCFG O_NetlistFile FILENAME VARVAL dbname nlt
  2232.   CLOSECFG
  2233.   RUNT QUOTE pcnodes -cfg VARVAL nodesfil QUOTE
  2234. ENDIF
  2235.  
  2236. * Run Nodes on hierarchical symbols
  2237. SUBROUTINE hsymnodes
  2238. IF DEPEND FILENAME VARVAL dbname nlt FILENAME VARVAL dbname VARVAL symext
  2239.   OPENCFG VARVAL nodesfil
  2240.   ADDCFG I_DatabaseFile FILENAME VARVAL dbname VARVAL symext
  2241.   ADDCFG O_NetlistFile FILENAME VARVAL dbname nlt
  2242.   CLOSECFG
  2243.   RUNT QUOTE pcnodes -cfg VARVAL nodesfil QUOTE
  2244. ENDIF
  2245.  
  2246. * Run Nodes against PCB database
  2247. SUBROUTINE pcbnodes
  2248. IF DEPEND FILENAME VARVAL dbname pnl FILENAME VARVAL dbname pcb
  2249.   OPENCFG VARVAL nodesfil
  2250.   ADDCFG I_DatabaseFile FILENAME VARVAL dbname pcb
  2251.   ADDCFG O_NetlistFile FILENAME VARVAL dbname pnl
  2252.   CLOSECFG
  2253.   RUNT QUOTE pcnodes -cfg VARVAL nodesfil QUOTE
  2254. ENDIF
  2255.  
  2256. * Build eco_pack.cfg and adjust eco.cfg for forward-annotation eco
  2257. SUBROUTINE bldFrwAnnoCfg
  2258. OPENCFG eco.cfg
  2259. ADDCFG I_Netlist1 FILENAME DESIGN bnl
  2260. CLOSECFG
  2261. OPENCFG eco_pack.cfg
  2262. ADDCFG I_UserName DSNNAME
  2263. ADDCFG I_NetlistFile FILENAME DESIGN xnl
  2264. ADDCFG O_AnnotatedNetlistFile FILENAME DESIGN bnl 
  2265. DELCFG I_CrossReferenceFile
  2266. IF NOTEQUAL VARVAL xreffil NULLSTR
  2267.   PUTCFG I_CrossReferenceFile VARVAL xreffil
  2268. ENDIF
  2269. * add PRT lib paths
  2270. VARSET cfgfile eco_pack.cfg
  2271. CALL initlibvars
  2272. VARSET oldlibpath LibraryPath
  2273. VARSET prtlibpath PRT_LibraryPath
  2274. VARSET oldlibfile LibraryFile
  2275. VARSET prtlibfile PRT_LibraryFile
  2276. CALL utillibs
  2277. CLOSECFG
  2278. * port eco.cfg's attributes to eco_pack.cfg
  2279. OPENCFG eco.cfg
  2280. VARSET cfgval CFGVAL I_Attributes
  2281. WHILE NOTEQUAL VARVAL cfgval NULLSTR
  2282.    OPENCFG  eco_pack.cfg
  2283.    PUTCFG I_Attributes VARVAL cfgval
  2284.    OPENCFG eco.cfg
  2285.    VARSET cfgval CFGNEXT I_Attributes
  2286. ENDWHILE
  2287. CLOSECFG
  2288. CLOSECFG
  2289.  
  2290. * Form Set Up Subroutine
  2291. SUBROUTINE formsetup
  2292. OPENCFG VARVAL cfgfile
  2293. ADDCFG I_UserName DSNNAME
  2294. ADDCFG O_ComponentListReport FILENAME VARVAL dbname cmp
  2295. ADDCFG O_NodesListReport FILENAME VARVAL dbname nde
  2296. ADDCFG O_PackagingListReport FILENAME VARVAL dbname pkl
  2297. ADDCFG O_WireListReport FILENAME VARVAL dbname wrl
  2298. ADDCFG O_MaterialsListReport FILENAME VARVAL dbname mat
  2299.  
  2300. * Run Forms Subroutine
  2301. SUBROUTINE runform
  2302. RUNT QUOTE pcform -cfg VARVAL cfgfile QUOTE
  2303.  
  2304. * Initialize/reset shell var. for 'utillibs' use.  SDF warns undefined var.
  2305. SUBROUTINE initlibvars
  2306. VARSET oldlibpath NULLSTR
  2307. VARSET symlibpath NULLSTR
  2308. VARSET prtlibpath NULLSTR
  2309. VARSET nltlibpath NULLSTR
  2310. VARSET oldlibfile NULLSTR
  2311. VARSET symlibfile NULLSTR
  2312. VARSET prtlibfile NULLSTR
  2313.  
  2314. * Generate library cfg records for most utilities
  2315. SUBROUTINE utillibs
  2316. DELCFG I_ComponentPaths
  2317. DELCFG I_ComponentLibraryNames
  2318. * for upward compatibility: support old keywords, however new ones are output
  2319. VARSET libpath VARVAL oldlibpath
  2320. CALL genpaths
  2321.  
  2322. VARSET libpath VARVAL prtlibpath
  2323. CALL genpaths
  2324.  
  2325. VARSET libpath VARVAL symlibpath
  2326. CALL genpaths
  2327.  
  2328. VARSET libpath VARVAL nltlibpath
  2329. CALL genpaths
  2330.  
  2331. VARSET libfile VARVAL oldlibfile
  2332. CALL genfiles
  2333.  
  2334. VARSET libfile VARVAL prtlibfile
  2335. CALL genfiles
  2336.  
  2337. VARSET libfile VARVAL symlibfile
  2338. CALL genfiles
  2339. VARSET symlibfile NULLSTR
  2340.  
  2341. * Generate library paths to cfgfile for caller 'utillibs'
  2342. SUBROUTINE genpaths
  2343. IF NOTEQUAL VARVAL libpath NULLSTR
  2344.    OPENCFG design.cfg
  2345.    VARSET cfgval CFGVAL VARVAL libpath
  2346.    WHILE NOTEQUAL VARVAL cfgval NULLSTR
  2347.      OPENCFG VARVAL cfgfile
  2348.      PUTCFG I_ComponentPaths VARVAL cfgval
  2349.      OPENCFG design.cfg
  2350.      VARSET cfgval CFGNEXT VARVAL libpath
  2351.    ENDWHILE
  2352.    CLOSECFG
  2353. ENDIF
  2354.  
  2355. * Generate library filenames to cfgfile for caller 'utillibs'
  2356. SUBROUTINE genfiles
  2357. IF NOTEQUAL VARVAL libfile NULLSTR
  2358.    OPENCFG design.cfg
  2359.    VARSET cfgval CFGVAL VARVAL libfile
  2360.    WHILE NOTEQUAL VARVAL cfgval NULLSTR
  2361.      OPENCFG VARVAL cfgfile
  2362.      PUTCFG I_ComponentLibraryNames VARVAL cfgval
  2363.      OPENCFG design.cfg
  2364.      VARSET cfgval CFGNEXT VARVAL libfile
  2365.    ENDWHILE
  2366.    CLOSECFG
  2367. ENDIF
  2368.  
  2369.  
  2370. * Generate ASCII file extension cfg records for most ASCII maintenance
  2371. SUBROUTINE asciifiles
  2372. OPENCFG VARVAL cfgfile
  2373. VARSET cfgval CFGVAL ASCII_Files
  2374. IF EQUAL VARVAL cfgval NULLSTR
  2375.   PUTCFG ASCII_Files *.alt
  2376.   PUTCFG ASCII_Files *.cmp
  2377.   PUTCFG ASCII_Files *.drc
  2378.   PUTCFG ASCII_Files *.drl
  2379.   PUTCFG ASCII_Files *.erc
  2380.   PUTCFG ASCII_Files *.fil
  2381.   PUTCFG ASCII_Files *.gbr
  2382.   PUTCFG ASCII_Files *.his
  2383.   PUTCFG ASCII_Files *.hp
  2384.   PUTCFG ASCII_Files *.ins
  2385.   PUTCFG ASCII_Files *.mat
  2386.   PUTCFG ASCII_Files *.mfg
  2387.   PUTCFG ASCII_Files *.nde
  2388.   PUTCFG ASCII_Files *.nlc
  2389.   PUTCFG ASCII_Files *.pdf
  2390.   PUTCFG ASCII_Files *.pkl
  2391.   PUTCFG ASCII_Files *.plr
  2392.   PUTCFG ASCII_Files *.psc
  2393.   PUTCFG ASCII_Files *.rep
  2394.   PUTCFG ASCII_Files *.rp1
  2395.   PUTCFG ASCII_Files *.rp2
  2396.   PUTCFG ASCII_Files *.rp3
  2397.   PUTCFG ASCII_Files *.rp4
  2398.   PUTCFG ASCII_Files *.ssf
  2399.   PUTCFG ASCII_Files *.swr
  2400.   PUTCFG ASCII_Files *.upd
  2401.   PUTCFG ASCII_Files *.wrl
  2402.   PUTCFG ASCII_Files *.LOG
  2403. ENDIF
  2404. VARSET cfgval CFGVAL Text_Editor
  2405. IF EQUAL VARVAL cfgval NULLSTR
  2406.   PUTCFG Text_Editor edlin
  2407. ENDIF
  2408. CLOSECFG
  2409.  
  2410. * Associate Panel Items with Their Applications
  2411.  
  2412. TOTALAPPL 5
  2413.  
  2414. * Design Applications Panel Items
  2415. ITEMAPPL  310 20   (Properties)
  2416. ITEMAPPL  312 20   (ASCII Maintenance)
  2417. ITEMAPPL  303 20   (ECO)
  2418. ITEMAPPL  320 20   (Forms)
  2419. ITEMAPPL  321 20   (Compare)
  2420. *ITEMAPPL  322 20   (Process Monitor)
  2421. ITEMAPPL  323 20   (Configure System)
  2422. ITEMAPPL  324 20   (DOS Shell)
  2423.  
  2424. * CAE Application Panel Items
  2425. ITEMAPPL 106 21   (Config)
  2426. ITEMAPPL 102 21   (Edit)
  2427. ITEMAPPL 103 21   (ERC)
  2428. ITEMAPPL 104 21   (Package)
  2429. ITEMAPPL 121 21   (Forms)
  2430. ITEMAPPL 120 21   (Output)
  2431. ITEMAPPL 110 21   (PDIF-In)
  2432. ITEMAPPL 111 21   (PDIF-Out)
  2433.  
  2434. * PCB Application Panel Items
  2435. ITEMAPPL 207 22   (Config)
  2436. ITEMAPPL 201 22   (Edit)
  2437. ITEMAPPL 202 22   (Route)
  2438. ITEMAPPL 203 22   (DRC)
  2439. ITEMAPPL 221 22   (Forms)
  2440. ITEMAPPL 220 22   (Output)
  2441. ITEMAPPL 210 22   (PDIF-In)
  2442. ITEMAPPL 211 22   (PDIF-Out)
  2443. ITEMAPPL 230 22   (Drill)
  2444. ITEMAPPL 231 22   (Insert)
  2445. ITEMAPPL 212 22   (Net List)
  2446.  
  2447. * Library Application Panel Items
  2448. ITEMAPPL 401 23   (Configure)
  2449. ITEMAPPL 403 23   (Maintenance)
  2450. ITEMAPPL 410 23   (Symbol)
  2451. ITEMAPPL 411 23   (Part)
  2452. ITEMAPPL 412 23   (Component)
  2453.  
  2454.  
  2455. * Interface Application Panel Items
  2456. *ITEMAPPL 501 24   (GERBER CAM)
  2457. *ITEMAPPL 502 24   (GERBER-EDIT/CAM)
  2458. *ITEMAPPL 503 24   (GPLOT)
  2459. ITEMAPPL 502 24   (EDIF-NETLIST-READER)
  2460. ITEMAPPL 503 24   (EDIF-NETLIST-WRITER)
  2461. *ITEMAPPL 506 24  (EDIF-SCHEMATIC-READER)
  2462. *ITEMAPPL 507 24  (EDIF-SCHEMATIC-WRITER)
  2463. ITEMAPPL 504 24   (SPICE-CIRCUIT-WRITER)
  2464. ITEMAPPL 501 24   (Add Program)
  2465.  
  2466.