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:
Amiga
Atari
Commodore
DOS
FM Towns/JPY
Macintosh
Macintosh JP
NeXTSTEP
RISC OS/Acorn
UTF-8
Wrap
File List
|
1992-07-02
|
68.6 KB
|
2,466 lines
*
* Copyright @1990 P-CAD CADAM, Inc.
*
* Shell directive file
*
* This file is read by the executable "pcad_exe" to determine
* process flow for multiprocess P-CAD tasks. The "pcad_exe"
* executable handles multitasking communication and file
* I/O requests defined in this directive file.
*
* Supported command keywords:
*
* "ADDCFG", replace a keyword and its value in a config file
* "CALL", call a shell directive subroutine
* "CLOSECFG", close the current config file
* "COMMDEF", begin the definition of a new command
* "DEBUG", turn on the debug (verbose) feature for directive execution
* "COPYCFG", copy the first argument (file) to the second argument (file)
* "DELCFG", delete all occurences of a keyword in a config file
* "DELFILE", delete a file from the current directory
* "DISPLAY", display a string at specified panel item
* "ENDIF", end of "IF" shell directive construct
* "ENDWHILE", end of "WHILE" shell directive construct
* "ELSE", else shell directive construct
* "IF", if shell directive construct
* "ITEMAPPL", panel item to be made visible for specified application
* "OPENCFG", open (and/or make current) specified config file
* "PRINT", print string to standard out
* "PUTCFG", put another occurence of keyword and it value in config file
* "REMOVECFG", delete the config file
* "RUN", spawn a new process and wait until it returns
* "RUNLOCK", spawn a new process based on a lock file
* and wait until it returns
* "SECPORT", current security device port
* "SPECIAL", special shell directives:
* DOSSHELL - invoke a DOS shell
* DSNNONE - write out current pcad.cfg file
* DSNROOT - change to the initial root dir
* DSNDIR - change to the current design dir
* DSNINIT - read the current pcad.cfg file
* DSNGHOSTED - ghost main PRE-VUE panel
* DSNSELECTABLE - make main PRE-VUE panel selectable
* "SPAWN", spawn a new process
* "SPAWNLOCK", spawn a new process based on a lock file
* "STATEAPPL", panel item state to be made visible for specified application
* "SUBROUTINE", begin definition of a shell directive subroutine
* "TOTALAPPL", define the number of applications for the shell
* "VARSET", define a vairable and assign a value to it
* "WHILE", while shell directive construct
* special conditionals supported:
* SHEET - iteration on design sheets
* CURRPCB - iteration on design layouts
*
* Supported directive argument keywords:
*
* "BASENAME", retrieve a base name from a filename; the extension
* is removed if it matches the second argument;
* take two args: <filename> and <extension>
* "CFGNEXT", the next keyword-value pair in a config file
* "CFGVAL", the first keyword-value pair for the specified keyword
* "CURRPCB", the current PCB Layout database file name
* "DEPEND", date dependency test: arg1-target; arg2-dependency
* "DESIGN", the current design name (used after FILENAME)
* "DSNNAME", the current designdir name (get shell global value)
* "DIRECTORYNAME", define a directory name: one arg
* "EQUAL", equality test: takes two args
* "EXISTS", existence test: takes one arg
* "FILENAME", define a file name: take two args: base+ext
* "HOSTID", the current machine name
* "NOTEQUAL", inequality test: takes two args
* "NEXTPCB", returns the next valid pcb id for the current design
* WARNING : assumes design.cfg is open
* "NEXTSCH", returns the next valid sch id for the current design
* WARNING : assumes design.cfg is open
* "NULLSTR", null string constant
* "QUOTE", begin / end a quoted string
* "PCB", the default PCB layout database name for the current design
* ( for use with FILENAME)
* "PCBNAME", the default PCB layout database name for the current design
* "PROCESSID", the process id for the current shell
* "RETCODE", the return code of immediately preceding spawned job
* "SCHNAME", the current sheet file name
* "SHEET", interatively gets all sheet file names for the current
* "UNIQUENAME", returns a unique file name
* "USERID", the current user login id
* "VALIDLOCKFILE", tests for valid lock file
* "VARVAL", returns the value for a shell variable
*
*
*
* HISTORY:
* 10-20-89 | HBS| first version
* 03-13-90 | wfn| updated Design Props., ASCII Mnt., Sch Editor
* | | PCB editor, Library Set Path, Router, ASCIIExt, Runlink
* 04-02-90 | eew| added updates for the router and new changes for drill
* | | and hardcopy ( hardcopy is still not quite done)
* 04-09-90 | RRB| merged SJ and Boston changes; look and feel changes
* 04-14-90 | wfn| new keyword support : NEXTPCB and NEXTSCH to return
* | | next id for database files. also now CURRPCB can
* | | be used with WHILE to iterate on layout files
* 04-19-90 | RRB| "started" messages reworded, no longer erased explicitly
* 04-19-90 | wfn| added Interfaces application commands and icon
* | | added TOTALAPPL keyword
* 04-23-90 | eew| added hardcopy control stuff
* | |
* 04-24-90 | mlh| Changed router section so rt_cleanup would unlock files
* | | even when an error occurs.
* 04-25-90 | RRB| "started" messages: restored explicit erase IF spawned
* | | process; touched up some wording.
* 05-11-90 | wfn| integrated latest hardcopy updates
* 05-13-90 | wfn|
* | mah| fixed ECO problem (CURRPCB -> PCBNAME)
* 05-17-90 | wfn| fixed DRC problem to init .rul (rules) and .cfg (pass)
* | | file names if not present in drc.cfg
* 05-21-90 | wfn| added logic to do the following:
* | | a. read O_ComponentPaths from <editor>.cfg
* | | and transferring it to design.cfg
* | | b. setting and checking the O_FatalCondition
* | | flag for the editors only
* | | c. correcting the output to <editor>.cfg
* | | when there is no current db file.
* 05-30-90 | wfn| integrated PACKAGE and ECO changes
* 05-30-90 | wfn| added new function BASENAME
* 06-05-90 | wfn| changed ext from DRC pass file from cfg to pas
* 06-05-90 | wfn| added ext mfg for drill manufacturing report
* 06-15-90 | wfn| added more extensions for Maintain Reports
* 06-18-90 | mlh| Changed router section so the retack program will
* | | run to confirm return on interrupted route.
* 07-08-90 | wfn| updated hardcopy directives
* 08-27-90 | wfn| edited form directives; remembered last tool table
* 08-30-90 | wfn| added new command COPYCFG
* 09-03-90 | wfn| used unique config files for each utility thread
* 09-10-90 | wfn| turned on interface application
* 09-14-90 | wfn| fixed bug with VARSET on upd
* 09-14-90 | wfn| moved COPYCFG statements to immediately after HI's
* 09-17-90 | wfn| added LibraryFile parameter handling for caps and cards
* 09-17-90 | wfn| do not set report file after HI for S2S in nlc
* 09-26-90 | wfn| create temporary ppp files after HI for OUTPUT
* 09-27-90 | wfn| added VALIDLOCKFILE
* 09-28-90 | wfn| updated auto router directives
* 12-21-90 | mah| updated default text editor for RS/6000
* 03-26-91 | wfn| updated EDIF netlist directives
* 09-12-91 | mah| added SPICE netlist directives
* 03-18-92 |wingC| split LibraryPath/File for different types:PRT,SYM,NLT
* 03-25-92 | jcm| changed names of EDIF executables for 6.0
* 04-07-92 | jcm| added DELFILE keyword
* 04-08-92 | jcm| initialize .rul (rules) and .cfg (pass) file names if
* | | not present in cards.cfg
* 04-08-92 |wingC| dropped Hierarchical_Top_Nodes, used Hierarchical_Symbols
* instead.
* 04-13-92 | rrb| upgraded auto router section to 5.0/6.0 level
* 04-20-92 | jcm| added DOSSHELL keyword
* 04-28-92 | jcm| check for O_OnlineDRC, O_UncommPin, O_SaveTime,
* | | and O_TraceLength after pccards & pccaps
* 04-28-92 | jcm| change exedif2 to nxedif2
* 05-04-92 | jcm| change pcadcomp to pccomp & pcadlink to pclink
* 05-04-92 |wingC| added forward annotation capability to ECO
* 05-06-92 | jcm| Delete active PCB/Sch if LoadActive is "N".
* 05-17-92 |wingC| combined sch/pcbhdrcpy.cfg to hardcopy.cfg and added
* hardcopy RUN's options w/ -cfg for MarkH.
* 06-03-92 |wingC| Forced only forward-annotation on ECO for hierarchical
* designs.
* 06-09-92 |wingC| allowed DRC Rule edit w/o a pcb.
* 06-12-92 | jcm | used RUNT keyword for text mode applications
* | | to eliminate top shell flashing
* 06-17-92 | jcm | check for O_Filename after caps & cards and
* | | transfer to design.cfg
* 06-19-92 | jcm | changed hardcopy messages per Bug # 8896.
* 06-25-92 |wingC| transfer basename(path striped off) of O_Filenaem after
* caps & cards to design.cfg, and Shell will in turn,
* remove it if it doesn't bolong to curr design dir.
* (Bug#8958).
* 06-30-92 | jcm | added RETCODE for preceding spawned job.
* 06-30-92 |wingC| stops proceeding when ECO fails during Pack.(#8967)
* 06-30-92 | jcm | changes to DSNROOT to run shadprog and returns to DSNDIR
* 06-30-92 |wingC| skips PC-UPD when Packaging Schematic fails(#8783)
* 07-02-92 |wingC| dropped RETCODE for RUNT(TEXTMODE) jobs -- Pcad_exe
(shdirutl.c) takes care of it based on the assumption
that nozero TEXTMODE return codes are fatal.
* 07-02-92 | jcm | don't change to DSNDIR before calling shdesign
* DEBUG
* Design Properties Command
COMMDEF 310 310
SPECIAL DSNNONE
SPECIAL DSNROOT
SPECIAL DSNGHOSTED
IF VALIDLOCKFILE pcadcfg.lck
DISPLAY 12 QUOTE This concurrent operation not permitted. Sorry. QUOTE
ELSE
DISPLAY 12 QUOTE Started Design Maintenance QUOTE
OPENCFG pcadcfg.lck
ADDCFG Lock_On_Process QUOTE PROCESSID USERID HOSTID QUOTE
CLOSECFG
* SPECIAL DSNDIR
RUNG QUOTE shdesign pcad.cfg QUOTE
* SPECIAL DSNROOT
OPENCFG pcadcfg.lck
REMOVECFG
DISPLAY 12 NULLSTR
ENDIF
SPECIAL DSNSELECTABLE
SPECIAL DSNDIR
SPECIAL DSNINIT
* Design ASCII file Command
COMMDEF 312 312
IF EXISTS design.cfg
SPECIAL DSNNONE
SPECIAL DSNROOT
IF VALIDLOCKFILE pcadcfg.lck
DISPLAY 12 QUOTE This concurrent operation not permitted. Sorry. QUOTE
ELSE
DISPLAY 12 QUOTE Started Report Editor QUOTE
OPENCFG pcadcfg.lck
ADDCFG Lock_On_Process QUOTE PROCESSID USERID HOSTID QUOTE
CLOSECFG
VARSET cfgfile pcad.cfg
CALL asciifiles
OPENCFG pcadcfg.lck
REMOVECFG
SPECIAL DSNDIR
RUNG QUOTE shascii pcad.cfg QUOTE
DISPLAY 12 NULLSTR
ENDIF
SPECIAL DSNDIR
SPECIAL DSNINIT
ELSE
DISPLAY 12 QUOTE Please create a design first. QUOTE
ENDIF
* Package Command
COMMDEF 104 104
DISPLAY 12 QUOTE Started Package Schematic QUOTE
VARSET config UNIQUENAME
COPYCFG pack.cfg VARVAL config
OPENCFG VARVAL config
ADDCFG I_UserName DSNNAME
ADDCFG I_NetlistFile FILENAME DESIGN xnl
VARSET cfgval CFGVAL P_BackAnnotate
IF EQUAL VARVAL cfgval NULLSTR
ADDCFG P_BackAnnotate Y
ENDIF
DELCFG I_CrossReferenceFile
OPENCFG design.cfg
VARSET cfgval CFGVAL I_CrossReferenceFile
CLOSECFG
OPENCFG VARVAL config
IF NOTEQUAL VARVAL cfgval NULLSTR
PUTCFG I_CrossReferenceFile VARVAL cfgval
ENDIF
ADDCFG O_PCBFile FILENAME CURRPCB pcb
ADDCFG O_AnnotatedNetlistFile FILENAME DESIGN bnl
ADDCFG O_UpdateFile FILENAME DESIGN upd
VARSET cfgfile VARVAL config
CALL initlibvars
VARSET oldlibpath LibraryPath
VARSET symlibpath SYM_LibraryPath
VARSET prtlibpath PRT_LibraryPath
VARSET nltlibpath NLT_LibraryPath
VARSET oldlibfile LibraryFile
VARSET symlibfile SYM_LibraryFile
VARSET prtlibfile PRT_LibraryFile
CALL utillibs
CLOSECFG
RUNN QUOTE shpack VARVAL config QUOTE
COPYCFG VARVAL config pack.cfg
OPENCFG VARVAL config
VARSET cfgval CFGVAL I_RunFlag
VARSET bckval CFGVAL P_BackAnnotate
CLOSECFG
IF EQUAL VARVAL cfgval Yes
TEXTMODE
VARSET nodesfil UNIQUENAME
VARSET linkfil UNIQUENAME
CALL runlink
OPENCFG VARVAL nodesfil
REMOVECFG
OPENCFG VARVAL linkfil
REMOVECFG
RUNT QUOTE pcpack -cfg VARVAL config QUOTE
IF EQUAL VARVAL bckval Y
* MD6.0 postmortem should consolidate this pcupd w/ that of ECO. 6-30-92.
VARSET updfil UNIQUENAME
OPENCFG VARVAL updfil
ADDCFG I_UserName DSNNAME
ADDCFG I_UpdateFile FILENAME DESIGN upd
ADDCFG O_UpdateReportFile FILENAME DESIGN rpt
VARSET cfgfile VARVAL updfil
CALL initlibvars
VARSET oldlibpath LibraryPath
VARSET symlibpath SYM_LibraryPath
VARSET prtlibpath PRT_LibraryPath
VARSET oldlibfile LibraryFile
VARSET symlibfile SYM_LibraryFile
VARSET prtlibfile PRT_LibraryFile
CALL utillibs
CLOSECFG
RUNT QUOTE pcupd -cfg VARVAL updfil QUOTE
OPENCFG VARVAL updfil
REMOVECFG
ENDIF
ENDIF
OPENCFG VARVAL config
REMOVECFG
RESUME
DISPLAY 12 NULLSTR
* ECO Command
COMMDEF 303
DISPLAY 12 QUOTE Started Engineering Change Order QUOTE
* initial setup for back-annotation
OPENCFG eco.cfg
ADDCFG I_UserName DSNNAME
ADDCFG I_Netlist1 FILENAME DESIGN xnl
ADDCFG I_Netlist2 FILENAME CURRPCB pnl
ADDCFG O_ComparisonReportFile FILENAME DESIGN eco
ADDCFG O_UpdateFile FILENAME DESIGN upd
ADDCFG I_BackupPCBFile FILENAME CURRPCB pbk
ADDCFG P_Hierarchical N
ADDCFG P_RunUpdate Y
DELCFG I_CrossReferenceFile
CLOSECFG
OPENCFG design.cfg
VARSET xreffil CFGVAL I_CrossReferenceFile
VARSET hierarchical CFGVAL Hierarchical_Symbols
CLOSECFG
IF NOTEQUAL VARVAL xreffil NULLSTR
OPENCFG eco.cfg
ADDCFG I_CrossReferenceFile VARVAL xreffil
CLOSECFG
ENDIF
IF NOTEQUAL VARVAL hierarchical NULLSTR
OPENCFG eco.cfg
ADDCFG P_Hierarchical Y
CLOSECFG
ENDIF
RUNN QUOTE sheco eco.cfg QUOTE
OPENCFG eco.cfg
VARSET annoDir CFGVAL P_AnnotationDirection
VARSET ecorunflag CFGVAL I_RunFlag
CLOSECFG
IF EQUAL VARVAL annoDir F
* Forward annotation: Netlist is .bnl. Setup pack.cfg to run pcpack
CALL bldFrwAnnoCfg
ENDIF
IF EQUAL VARVAL ecorunflag Yes
VARSET nodesfil eco_node.cfg
VARSET linkfil eco_link.cfg
TEXTMODE
CALL runlink
IF EQUAL VARVAL annoDir F
RUNT QUOTE pcpack -cfg eco_pack.cfg QUOTE
ENDIF
VARSET dbname PCBNAME
CALL pcbnodes
RUNT QUOTE pccpr -cfg eco.cfg QUOTE
OPENCFG eco.cfg
VARSET bckval CFGVAL P_RunUpdate
CLOSECFG
IF EQUAL VARVAL bckval Y
OPENCFG upd.cfg
ADDCFG I_UserName DSNNAME
ADDCFG I_UpdateFile FILENAME DESIGN upd
ADDCFG O_UpdateReportFile FILENAME DESIGN eco
VARSET cfgfile upd.cfg
CALL initlibvars
VARSET oldlibpath LibraryPath
VARSET symlibpath SYM_LibraryPath
VARSET prtlibpath PRT_LibraryPath
VARSET oldlibfile LibraryFile
VARSET symlibfile SYM_LibraryFile
VARSET prtlibfile PRT_LibraryFile
CALL utillibs
CLOSECFG
RUNT QUOTE pcupd -cfg upd.cfg QUOTE
ENDIF
ENDIF
RESUME
DISPLAY 12 NULLSTR
* Design Forms Command
COMMDEF 320 320
DISPLAY 12 QUOTE Started Report Generator QUOTE
VARSET cfgfile UNIQUENAME
COPYCFG desform.cfg VARVAL cfgfile
VARSET dbname DSNNAME
CALL formsetup
ADDCFG I_Sheet FILENAME SHEET sch
ADDCFG P_AllSheet Y
ADDCFG P_FormsMode S
CLOSECFG
RUNN QUOTE shform VARVAL cfgfile QUOTE
COPYCFG VARVAL cfgfile desform.cfg
OPENCFG VARVAL cfgfile
VARSET cfgval CFGVAL I_RunFlag
VARSET allshval CFGVAL P_AllSheet
IF EQUAL VARVAL cfgval Yes
VARSET nodesfil UNIQUENAME
TEXTMODE
IF EQUAL VARVAL allshval Y
VARSET linkfil UNIQUENAME
ADDCFG I_NetlistFile FILENAME DESIGN xnl
CLOSECFG
VARSET cfgsave VARVAL cfgfile
CALL runlink
VARSET cfgfile VARVAL cfgsave
OPENCFG VARVAL linkfil
REMOVECFG
ELSE
VARSET dbname CFGVAL I_Sheet
ADDCFG I_NetlistFile FILENAME VARVAL dbname nlt
CLOSECFG
CALL runnodes
ENDIF
OPENCFG VARVAL nodesfil
REMOVECFG
RUNT QUOTE pcform -cfg VARVAL cfgfile QUOTE
ELSE
CLOSECFG
ENDIF
COPYCFG VARVAL cfgfile desform.cfg
OPENCFG VARVAL cfgfile
REMOVECFG
RESUME
DISPLAY 12 NULLSTR
* Net List Compare Command
COMMDEF 321 321
DISPLAY 12 QUOTE Started Netlist Comparison QUOTE
OPENCFG design.cfg
VARSET crossref CFGVAL I_CrossReferenceFile
CLOSECFG
VARSET config UNIQUENAME
COPYCFG nlc.cfg VARVAL config
OPENCFG VARVAL config
ADDCFG I_UserName DSNNAME
ADDCFG I_CurrentPCB FILENAME CURRPCB pcb
ADDCFG I_CurrentSheet FILENAME SHEET sch
ADDCFG I_Database1 FILENAME SHEET sch
DELCFG I_Database2
DELCFG I_CrossReferenceFile
IF NOTEQUAL VARVAL crossref NULLSTR
ADDCFG I_CrossReferenceFile VARVAL crossref
ENDIF
ADDCFG O_ComparisonReportFile FILENAME SHEET nlc
ADDCFG P_AllSheet Y
ADDCFG P_CompareMode S2S
ADDCFG I_RunFlag No
CLOSECFG
RUNN QUOTE shnlc VARVAL config QUOTE
COPYCFG VARVAL config nlc.cfg
OPENCFG VARVAL config
VARSET cfgval CFGVAL I_RunFlag
IF EQUAL VARVAL cfgval Yes
VARSET comparemode CFGVAL P_CompareMode
DELCFG I_NetlistFiles
VARSET nodesfil UNIQUENAME
VARSET linkfil UNIQUENAME
IF EQUAL VARVAL comparemode S2S
* sch to sch
TEXTMODE
VARSET dbname1 CFGVAL I_Database1
PUTCFG I_NetlistFiles FILENAME BASENAME VARVAL dbname1 sch nlt
VARSET dbname2 CFGVAL I_Database2
PUTCFG I_NetlistFiles FILENAME BASENAME VARVAL dbname2 sch nlt
CLOSECFG
VARSET dbname BASENAME VARVAL dbname1 sch
CALL runnodes
VARSET dbname BASENAME VARVAL dbname2 sch
CALL runnodes
ENDIF
* pcb to pcb
IF EQUAL VARVAL comparemode P2P
TEXTMODE
VARSET dbname1 CFGVAL I_Database1
PUTCFG I_NetlistFiles FILENAME BASENAME VARVAL dbname1 pcb pnl
VARSET dbname2 CFGVAL I_Database2
PUTCFG I_NetlistFiles FILENAME BASENAME VARVAL dbname2 pcb pnl
CLOSECFG
VARSET dbname BASENAME VARVAL dbname1 pcb
CALL pcbnodes
VARSET dbname BASENAME VARVAL dbname2 pcb
CALL pcbnodes
ENDIF
* all sch to pcb
IF EQUAL VARVAL comparemode S2P
VARSET allshval CFGVAL P_AllSheet
IF EQUAL VARVAL allshval Y
PUTCFG I_NetlistFiles FILENAME DESIGN xnl
VARSET dbname2 CFGVAL I_Database2
PUTCFG I_NetlistFiles FILENAME BASENAME VARVAL dbname2 pcb pnl
CLOSECFG
TEXTMODE
CALL runlink
VARSET dbname BASENAME VARVAL dbname2 pcb
CALL pcbnodes
ELSE
* one sch to pcb
VARSET dbname1 CFGVAL I_Database1
PUTCFG I_NetlistFiles FILENAME BASENAME VARVAL dbname1 sch nlt
VARSET dbname2 CFGVAL I_Database2
PUTCFG I_NetlistFiles FILENAME BASENAME VARVAL dbname2 pcb pnl
CLOSECFG
VARSET dbname BASENAME VARVAL dbname1 sch
TEXTMODE
CALL runnodes
VARSET dbname BASENAME VARVAL dbname2 pcb
CALL pcbnodes
ENDIF
ENDIF
RUNT QUOTE pcnlc -cfg VARVAL config QUOTE
* RUN QUOTE shbrscr FILENAME DESIGN nlc QUOTE
ELSE
CLOSECFG
ENDIF
COPYCFG VARVAL config nlc.cfg
OPENCFG VARVAL config
REMOVECFG
RESUME
DISPLAY 12 NULLSTR
* System Config Command
COMMDEF 323 323
SPECIAL DSNNONE
SPECIAL DSNROOT
DISPLAY 12 QUOTE Started System Configuration QUOTE
RUNG QUOTE shsystem pcad.cfg QUOTE
DISPLAY 12 NULLSTR
ENDIF
SPECIAL DSNDIR
SPECIAL DSNINIT
* DOS Shell Command
COMMDEF 324 324
SPECIAL DOSSHELL
* CAE Config Command
COMMDEF 106 106
IF VALIDLOCKFILE capscfg.lck
DISPLAY 12 QUOTE Already editing the Schematic Configuration. Sorry. QUOTE
ELSE
DISPLAY 12 QUOTE Started Schematic Editor Configuration QUOTE
OPENCFG caps.cfg
ADDCFG I_UserName DSNNAME
CLOSECFG
SPAWNLOCK capscfg.lck QUOTE shcaps caps.cfg QUOTE
DISPLAY 12 NULLSTR
ENDIF
* CAE Edit Command
COMMDEF 102 102
IF VALIDLOCKFILE capscfg.lck
DISPLAY 12 QUOTE Cannot edit while changing configuration. Sorry. QUOTE
ELSE
DISPLAY 12 QUOTE Started Schematic Editor QUOTE
OPENCFG capscfg.lck
OPENCFG caps.cfg
* Add security device port
DELCFG I_SecDevPort
ADDCFG I_SecDevPort SECPORT
DELCFG I_Sheet
WHILE SHEET
PUTCFG I_Sheet QUOTE SCHNAME FILENAME SHEET sch QUOTE
ENDWHILE
VARSET currsheet SCHNAME
VARSET cfgval CFGVAL I_LoadActive
IF NOTEQUAL VARVAL cfgval N
IF EQUAL VARVAL currsheet NULLSTR
DELCFG I_CurrentSheet
ELSE
ADDCFG I_CurrentSheet QUOTE SCHNAME FILENAME SHEET sch QUOTE
ENDIF
ELSE
DELCFG I_CurrentSheet
ENDIF
ADDCFG I_Mode Detail
ADDCFG I_UserName DSNNAME
ADDCFG O_FatalCondition xxx
VARSET cfgfile caps.cfg
CALL initlibvars
VARSET oldlibpath LibraryPath
VARSET symlibpath SYM_LibraryPath
VARSET oldlibfile LibraryFile
VARSET symlibfile SYM_LibraryFile
CALL utillibs
CLOSECFG
OPENCFG capscfg.lck
REMOVECFG
DISPLAY 12 QUOTE Started Schematic Editor QUOTE
RUN QUOTE pccaps -cfg caps.cfg QUOTE
OPENCFG caps.cfg
VARSET cfgval CFGVAL O_FatalCondition
IF NOTEQUAL VARVAL cfgval NULLSTR
DISPLAY 12 QUOTE Fatal Error: caps: program abort detected. QUOTE
PRINT QUOTE Fatal Error: caps: program abort detected. QUOTE
PRINT QUOTE Close some windows and try the operation again. QUOTE
ELSE
DISPLAY 12 NULLSTR
ENDIF
VARSET cfgval CFGVAL O_Filename
WHILE NOTEQUAL VARVAL cfgval NULLSTR
VARSET schext EXTENSION VARVAL cfgval
IF EQUAL VARVAL schext NULLSTR
VARSET schext sch
ENDIF
VARSET newsch BASENAME VARVAL cfgval schext
OPENCFG design.cfg
ADDSCH VARVAL newsch
OPENCFG caps.cfg
VARSET cfgval CFGNEXT O_Filename
ENDWHILE
DELCFG O_Filename
VARSET cfgval CFGVAL O_ComponentPaths
WHILE NOTEQUAL VARVAL cfgval NULLSTR
OPENCFG design.cfg
PUTCFG SYM_LibraryPath VARVAL cfgval
OPENCFG caps.cfg
VARSET cfgval CFGNEXT O_ComponentPaths
ENDWHILE
DELCFG O_ComponentPaths
VARSET cfgval CFGVAL O_ComponentLibraryNames
WHILE NOTEQUAL VARVAL cfgval NULLSTR
OPENCFG design.cfg
PUTCFG SYM_LibraryFile VARVAL cfgval
OPENCFG caps.cfg
VARSET cfgval CFGNEXT O_ComponentLibraryNames
ENDWHILE
DELCFG O_ComponentLibraryNames
VARSET cfgval CFGVAL O_SaveTime
IF NOTEQUAL VARVAL cfgval NULLSTR
PUTCFG I_SaveTime VARVAL cfgval
ENDIF
DELCFG O_SaveTime
CLOSECFG
OPENCFG design.cfg
CLOSECFG
SPECIAL DSNINIT
ENDIF
* ERC Command
COMMDEF 103 103
DISPLAY 12 QUOTE Started Electrical Rules Check QUOTE
VARSET config UNIQUENAME
COPYCFG erc.cfg VARVAL config
OPENCFG VARVAL config
ADDCFG I_UserName DSNNAME
ADDCFG O_ReportFile FILENAME DESIGN erc
ADDCFG P_AllSheet Y
ADDCFG I_Sheet FILENAME SHEET sch
CLOSECFG
RUNN QUOTE sherc VARVAL config QUOTE
COPYCFG VARVAL config erc.cfg
OPENCFG VARVAL config
VARSET cfgval CFGVAL I_RunFlag
VARSET allshval CFGVAL P_AllSheet
IF EQUAL VARVAL cfgval Yes
VARSET nodesfil UNIQUENAME
VARSET linkfil UNIQUENAME
TEXTMODE
IF EQUAL VARVAL allshval Y
ADDCFG I_SCHNetlistFile FILENAME DESIGN xnl
CLOSECFG
CALL runlink
ELSE
VARSET dbname CFGVAL I_Sheet
ADDCFG I_SCHNetlistFile FILENAME VARVAL dbname nlt
CLOSECFG
CALL runnodes
ENDIF
OPENCFG VARVAL nodesfil
REMOVECFG
OPENCFG VARVAL linkfil
REMOVECFG
OPENCFG VARVAL config
CLOSECFG
RUNT QUOTE pcerc -cfg VARVAL config QUOTE
ELSE
CLOSECFG
ENDIF
COPYCFG VARVAL config erc.cfg
OPENCFG VARVAL config
REMOVECFG
RESUME
DISPLAY 12 NULLSTR
* CAE PDIF-In
COMMDEF 110 110
DISPLAY 12 QUOTE Started PDIF File Reader QUOTE
VARSET cfgfile UNIQUENAME
COPYCFG pdifin.cfg VARVAL cfgfile
OPENCFG VARVAL cfgfile
ADDCFG I_UserName DSNNAME
ADDCFG I_InputFile FILENAME SHEET pdf
ADDCFG O_OutputFile FILENAME SHEET sch
CALL initlibvars
VARSET oldlibpath LibraryPath
VARSET symlibpath SYM_LibraryPath
VARSET prtlibpath PRT_LibraryPath
VARSET oldlibfile LibraryFile
VARSET symlibfile SYM_LibraryFile
VARSET prtlibfile PRT_LibraryFile
CALL utillibs
CLOSECFG
RUNN QUOTE shpdifi VARVAL cfgfile QUOTE
COPYCFG VARVAL cfgfile pdifin.cfg
OPENCFG VARVAL cfgfile
VARSET cfgval CFGVAL I_RunFlag
CLOSECFG
IF EQUAL VARVAL cfgval Yes
RUNT QUOTE pdifin -cfg VARVAL cfgfile QUOTE
ENDIF
OPENCFG VARVAL cfgfile
REMOVECFG
RESUME
DISPLAY 12 NULLSTR
* CAE PDIF-Out
COMMDEF 111 111
DISPLAY 12 QUOTE Started PDIF File Writer QUOTE
VARSET cfgfile UNIQUENAME
COPYCFG pdifout.cfg VARVAL cfgfile
OPENCFG VARVAL cfgfile
ADDCFG I_UserName DSNNAME
ADDCFG I_InputFile FILENAME SHEET sch
ADDCFG O_OutputFile FILENAME SHEET pdf
CALL initlibvars
VARSET oldlibpath LibraryPath
VARSET symlibpath SYM_LibraryPath
VARSET prtlibpath PRT_LibraryPath
VARSET oldlibfile LibraryFile
VARSET symlibfile SYM_LibraryFile
VARSET prtlibfile PRT_LibraryFile
CALL utillibs
CLOSECFG
RUNN QUOTE shpdifo VARVAL cfgfile QUOTE
COPYCFG VARVAL cfgfile pdifout.cfg
OPENCFG VARVAL cfgfile
VARSET cfgval CFGVAL I_RunFlag
CLOSECFG
IF EQUAL VARVAL cfgval Yes
RUNT QUOTE pdifout -cfg VARVAL cfgfile QUOTE
ENDIF
OPENCFG VARVAL cfgfile
REMOVECFG
RESUME
DISPLAY 12 NULLSTR
* CAE Output
COMMDEF 120
DISPLAY 12 QUOTE Started Hardcopy QUOTE
VARSET cfgfile UNIQUENAME
IF EXISTS hardcopy.cfg
ELSE
OPENCFG hardcopy.cfg
ADDCFG I_PlotCFGFile FILENAME DESIGN ppp
CLOSECFG
ENDIF
COPYCFG hardcopy.cfg VARVAL cfgfile
OPENCFG VARVAL cfgfile
ADDCFG I_UserName DSNNAME
VARSET cfgval CFGVAL I_PlotFile
IF EQUAL VARVAL cfgval NULLSTR
ADDCFG I_PlotFile FILENAME SHEET plt
ENDIF
VARSET cfgval CFGVAL I_PlotCFGFile
IF EQUAL VARVAL cfgval NULLSTR
ADDCFG I_PlotCFGFile FILENAME DESIGN ppp
ENDIF
VARSET cfgval CFGVAL I_OutputFormat
IF EQUAL VARVAL cfgval NULLSTR
ADDCFG I_OutputFormat PRINT
ENDIF
CLOSECFG
RUNN QUOTE shhrdcpy VARVAL cfgfile QUOTE
VARSET pppfile UNIQUENAME
COPYCFG VARVAL cfgfile hardcopy.cfg
OPENCFG VARVAL cfgfile
VARSET plotpppfile CFGVAL I_PlotCFGFile
ADDCFG I_PlotCFGFile VARVAL pppfile
VARSET runval CFGVAL I_RunFlag
VARSET pltval CFGVAL I_OutputFormat
VARSET program CFGVAL I_Program
VARSET spool CFGVAL I_SpoolOutput
VARSET lprcommand CFGVAL I_LPRCommand
VARSET plotoutput CFGVAL O_PlotOutput
CLOSECFG
COPYCFG VARVAL plotpppfile VARVAL pppfile
IF EQUAL VARVAL runval Yes
TEXTMODE
IF NOTEQUAL VARVAL program NULLSTR
* DISPLAY 12 QUOTE Printing or Plotting File. QUOTE
RUNT QUOTE VARVAL program -cfg VARVAL cfgfile QUOTE
IF EQUAL VARVAL spool Yes
* DISPLAY 12 QUOTE Spooling Print or Plot File. QUOTE
DISPLAY 12 QUOTE Copying to Printing or Plotting Device. QUOTE
RUNT QUOTE VARVAL lprcommand VARVAL plotoutput QUOTE
ENDIF
ENDIF
ENDIF
DELFILE VARVAL cfgfile
DELFILE VARVAL pppfile
RESUME
DISPLAY 12 NULLSTR
* CAE Forms Command
COMMDEF 121 121
DISPLAY 12 QUOTE Started Report Generator QUOTE
VARSET cfgfile UNIQUENAME
COPYCFG schform.cfg VARVAL cfgfile
VARSET dbname SCHNAME
CALL formsetup
ADDCFG I_Sheet FILENAME SHEET sch
ADDCFG P_AllSheet N
ADDCFG P_FormsMode S
CLOSECFG
RUNN QUOTE shform VARVAL cfgfile QUOTE
COPYCFG VARVAL cfgfile schform.cfg
OPENCFG VARVAL cfgfile
VARSET cfgval CFGVAL I_RunFlag
VARSET allshval CFGVAL P_AllSheet
IF EQUAL VARVAL cfgval Yes
TEXTMODE
VARSET nodesfil UNIQUENAME
VARSET linkfil UNIQUENAME
IF EQUAL VARVAL allshval Y
ADDCFG I_NetlistFile FILENAME DESIGN xnl
CLOSECFG
VARSET cfgsave VARVAL cfgfile
CALL runlink
VARSET cfgfile VARVAL cfgsave
ELSE
VARSET dbname CFGVAL I_Sheet
ADDCFG I_NetlistFile FILENAME VARVAL dbname nlt
CLOSECFG
CALL runnodes
ENDIF
OPENCFG VARVAL nodesfil
REMOVECFG
OPENCFG VARVAL linkfil
REMOVECFG
RUNT QUOTE pcform -cfg VARVAL cfgfile QUOTE
ELSE
CLOSECFG
ENDIF
COPYCFG VARVAL cfgfile schform.cfg
OPENCFG VARVAL cfgfile
REMOVECFG
RESUME
DISPLAY 12 NULLSTR
* PCB Config Command
COMMDEF 207 207
IF VALIDLOCKFILE cardscfg.lck
DISPLAY 12 QUOTE Already editing the Editor Configuration. Sorry. QUOTE
ELSE
DISPLAY 12 QUOTE Started PCB Editor Configuration QUOTE
OPENCFG cards.cfg
ADDCFG I_UserName DSNNAME
VARSET cfgval CFGVAL I_RulesSetsFile
IF EQUAL VARVAL cfgval NULLSTR
ADDCFG I_RulesSetsFile FILENAME CURRPCB rul
ENDIF
VARSET cfgval CFGVAL I_CheckPassFile
IF EQUAL VARVAL cfgval NULLSTR
ADDCFG I_CheckPassFile FILENAME CURRPCB pas
ENDIF
CLOSECFG
SPAWNLOCK cardscfg.lck QUOTE shcards cards.cfg QUOTE
DISPLAY 12 NULLSTR
ENDIF
* PCB Edit Command
COMMDEF 201 201
IF VALIDLOCKFILE cardscfg.lck
DISPLAY 12 QUOTE Cannot edit while changing configuration. Sorry. QUOTE
ELSE
DISPLAY 12 QUOTE Started PCB Editor QUOTE
OPENCFG cardscfg.lck
OPENCFG cards.cfg
* Add security device port
DELCFG I_SecDevPort
ADDCFG I_SecDevPort SECPORT
VARSET currpcb PCBNAME
VARSET cfgval CFGVAL I_LoadActive
IF NOTEQUAL VARVAL cfgval N
IF EQUAL VARVAL currpcb NULLSTR
DELCFG I_PCBDataBase
ELSE
ADDCFG I_PCBDataBase FILENAME CURRPCB pcb
ENDIF
ELSE
DELCFG I_PCBDataBase
ENDIF
ADDCFG I_UserName DSNNAME
ADDCFG I_Mode Detail
ADDCFG O_FatalCondition xxx
VARSET cfgfile cards.cfg
CALL initlibvars
VARSET oldlibpath LibraryPath
VARSET prtlibpath PRT_LibraryPath
VARSET oldlibfile LibraryFile
VARSET prtlibfile PRT_LibraryFile
CALL utillibs
CLOSECFG
OPENCFG cardscfg.lck
REMOVECFG
RUNG QUOTE pccards -cfg cards.cfg QUOTE
OPENCFG cards.cfg
VARSET cfgval CFGVAL O_FatalCondition
IF NOTEQUAL VARVAL cfgval NULLSTR
DISPLAY 12 QUOTE Fatal Error: cards: program abort detected. QUOTE
PRINT QUOTE Fatal Error: cards: program abort detected. QUOTE
PRINT QUOTE Close some windows and try the operation again. QUOTE
ELSE
DISPLAY 12 NULLSTR
ENDIF
VARSET cfgval CFGVAL O_Filename
WHILE NOTEQUAL VARVAL cfgval NULLSTR
VARSET pcbext EXTENSION VARVAL cfgval
IF EQUAL VARVAL pcbext NULLSTR
VARSET pcbext pcb
ENDIF
VARSET newpcb BASENAME VARVAL cfgval pcbext
OPENCFG design.cfg
ADDPCB VARVAL newpcb
OPENCFG cards.cfg
VARSET cfgval CFGNEXT O_Filename
ENDWHILE
DELCFG O_Filename
VARSET cfgval CFGVAL O_ComponentPaths
WHILE NOTEQUAL VARVAL cfgval NULLSTR
OPENCFG design.cfg
PUTCFG PRT_LibraryPath VARVAL cfgval
OPENCFG cards.cfg
VARSET cfgval CFGNEXT O_ComponentPaths
ENDWHILE
DELCFG O_ComponentPaths
VARSET cfgval CFGVAL O_ComponentLibraryNames
WHILE NOTEQUAL VARVAL cfgval NULLSTR
OPENCFG design.cfg
PUTCFG PRT_LibraryFile VARVAL cfgval
OPENCFG cards.cfg
VARSET cfgval CFGNEXT O_ComponentLibraryNames
ENDWHILE
DELCFG O_ComponentLibraryNames
VARSET cfgval CFGVAL O_OnlineDRC
IF NOTEQUAL VARVAL cfgval NULLSTR
PUTCFG I_OnlineDRC VARVAL cfgval
ENDIF
DELCFG O_OnlineDRC
VARSET cfgval CFGVAL O_UncommPin
IF NOTEQUAL VARVAL cfgval NULLSTR
PUTCFG I_UncommPin VARVAL cfgval
ENDIF
DELCFG O_UncommPin
VARSET cfgval CFGVAL O_SaveTime
IF NOTEQUAL VARVAL cfgval NULLSTR
PUTCFG I_SaveTime VARVAL cfgval
ENDIF
DELCFG O_SaveTime
VARSET cfgval CFGVAL O_TraceLength
IF NOTEQUAL VARVAL cfgval NULLSTR
PUTCFG I_TraceLength VARVAL cfgval
ENDIF
DELCFG O_TraceLength
CLOSECFG
OPENCFG design.cfg
CLOSECFG
SPECIAL DSNINIT
ENDIF
* PCB Autorouter Command
COMMDEF 202 202
DISPLAY 12 QUOTE Started Autorouter QUOTE
SUSPEND
* Get config file for input parameters to route 1
VARSET config pcad1.cfg
*-- VARSET config UNIQUENAME
OPENCFG VARVAL config
ADDCFG I_InPCBfile FILENAME CURRPCB pcb
ADDCFG I_UserName DSNNAME
ADDCFG I_RunFlag Error
ADDCFG O_ErrorMessage QUOTE Fatal error: route1: program abort detected. QUOTE
CLOSECFG
*-- DISPLAY 12 NULLSTR
* Run route 1 (which creates the first rcf file)
RUNN QUOTE route1 VARVAL config QUOTE
OPENCFG VARVAL config
VARSET run_flag CFGVAL I_RunFlag
VARSET error_message CFGVAL O_ErrorMessage
VARSET rcf_file CFGVAL I_RCFfile
CLOSECFG
IF EQUAL VARVAL run_flag Yes
OPENCFG VARVAL rcf_file
VARSET utility CFGVAL I_DoNext
CLOSECFG
ENDIF
WHILE EQUAL VARVAL run_flag Yes
IF NOTEQUAL VARVAL utility NULLSTR
IF NOTEQUAL VARVAL utility route1
* run the utility
OPENCFG VARVAL rcf_file
ADDCFG I_RunFlag Error
ADDCFG O_ErrorMessage QUOTE Fatal error: utility: program abort detected. QUOTE
CLOSECFG
RUNN QUOTE VARVAL utility VARVAL rcf_file QUOTE
VARSET utility route1
ENDIF
IF EQUAL VARVAL utility route1
OPENCFG VARVAL config
ADDCFG I_RunFlag Error
ADDCFG O_ErrorMessage QUOTE Fatal error: route1: program abort detected. QUOTE
CLOSECFG
* Unlock input and output database files
RUNN QUOTE rt_clean VARVAL rcf_file QUOTE
* Run route 1
RUNN QUOTE route1 VARVAL config QUOTE
OPENCFG VARVAL config
VARSET run_flag CFGVAL I_RunFlag
VARSET error_message CFGVAL O_ErrorMessage
VARSET rcf_file CFGVAL I_RCFfile
CLOSECFG
OPENCFG VARVAL rcf_file
ADDCFG I_RunFlag VARVAL run_flag
CLOSECFG
ENDIF
OPENCFG VARVAL rcf_file
VARSET run_flag CFGVAL I_RunFlag
VARSET utility CFGVAL I_DoNext
VARSET error_message CFGVAL O_ErrorMessage
CLOSECFG
ENDIF
IF EQUAL VARVAL utility NULLSTR
* run the extractor
IF EQUAL VARVAL run_flag Yes
OPENCFG VARVAL rcf_file
VARSET extract CFGVAL I_DoExtract
CLOSECFG
IF NOTEQUAL VARVAL extract No
OPENCFG VARVAL rcf_file
ADDCFG I_RunFlag Error
ADDCFG O_ErrorMessage QUOTE Fatal error: route2: program abort detected. QUOTE
CLOSECFG
RUNN QUOTE route2 VARVAL rcf_file QUOTE
ELSE
OPENCFG VARVAL rcf_file
ADDCFG I_RunFlag Yes
CLOSECFG
ENDIF
OPENCFG VARVAL rcf_file
VARSET run_flag CFGVAL I_RunFlag
VARSET error_message CFGVAL O_ErrorMessage
CLOSECFG
ENDIF
* run the router
IF EQUAL VARVAL run_flag Yes
OPENCFG VARVAL rcf_file
VARSET route CFGVAL I_DoRoute
CLOSECFG
IF NOTEQUAL VARVAL route completed
IF NOTEQUAL VARVAL route no
OPENCFG VARVAL rcf_file
ADDCFG I_RunFlag Error
ADDCFG O_ErrorMessage QUOTE Fatal error: route3: program abort detected. QUOTE
CLOSECFG
RUNN QUOTE route3 VARVAL rcf_file QUOTE
ENDIF
ENDIF
OPENCFG VARVAL rcf_file
VARSET run_flag CFGVAL I_RunFlag
VARSET error_message CFGVAL O_ErrorMessage
CLOSECFG
ENDIF
* run the returner
IF EQUAL VARVAL run_flag Yes
OPENCFG VARVAL rcf_file
VARSET return CFGVAL I_DoReturn
CLOSECFG
IF NOTEQUAL VARVAL return completed
* if the route was interrupted, ask user if returner should run
IF EQUAL VARVAL return Yes
OPENCFG VARVAL rcf_file
VARSET route CFGVAL I_DoRoute
CLOSECFG
IF EQUAL VARVAL route restart
RUNN QUOTE retack VARVAL rcf_file QUOTE
OPENCFG VARVAL rcf_file
VARSET return CFGVAL I_DoReturn
CLOSECFG
ENDIF
ENDIF
IF NOTEQUAL VARVAL return No
OPENCFG VARVAL rcf_file
ADDCFG I_RunFlag Error
ADDCFG O_ErrorMessage QUOTE Fatal error: route4: program abort detected. QUOTE
CLOSECFG
RUNN QUOTE route4 VARVAL rcf_file QUOTE
ENDIF
OPENCFG VARVAL rcf_file
VARSET run_flag CFGVAL I_RunFlag
VARSET error_message CFGVAL O_ErrorMessage
CLOSECFG
ENDIF
ENDIF
VARSET utility route1
ENDIF
ENDWHILE
* display error message or clear display area
RESUME
IF EQUAL VARVAL run_flag Error
DISPLAY 12 QUOTE VARVAL error_message QUOTE
ELSE
DISPLAY 12 NULLSTR
*-- RUN QUOTE rm VARVAL config QUOTE
ENDIF
* Unlock input and output database files
RUNN QUOTE rt_clean VARVAL rcf_file QUOTE
* end of Autorouter Command
* PCB DRC Command
COMMDEF 203 203
DISPLAY 12 QUOTE Started Design Rules Check QUOTE
VARSET cfgfile UNIQUENAME
COPYCFG drc.cfg VARVAL cfgfile
OPENCFG VARVAL cfgfile
ADDCFG I_UserName DSNNAME
DELCFG I_PCBFile
IF NOTEQUAL PCBNAME NULLSTR
ADDCFG I_PCBFile FILENAME PCBNAME pcb
VARSET fname PCBNAME
ELSE
VARSET fname DSNNAME
ENDIF
VARSET cfgval CFGVAL I_RulesSetsFile
IF EQUAL VARVAL cfgval NULLSTR
ADDCFG I_RulesSetsFile FILENAME VARVAL fname rul
ENDIF
VARSET cfgval CFGVAL I_CheckPassFile
IF EQUAL VARVAL cfgval NULLSTR
ADDCFG I_CheckPassFile FILENAME VARVAL fname pas
ENDIF
VARSET cfgval CFGVAL O_DRCReportFile
IF EQUAL VARVAL cfgval NULLSTR
ADDCFG O_DRCReportFile FILENAME VARVAL fname drc
ENDIF
CLOSECFG
RUNN QUOTE shdrc VARVAL cfgfile QUOTE
COPYCFG VARVAL cfgfile drc.cfg
OPENCFG VARVAL cfgfile
VARSET cfgval CFGVAL I_RunFlag
CLOSECFG
IF EQUAL VARVAL cfgval Yes
RUNT QUOTE pcdrc -cfg VARVAL cfgfile QUOTE
ENDIF
OPENCFG VARVAL cfgfile
REMOVECFG
RESUME
DISPLAY 12 NULLSTR
* PCB PDIF-In
COMMDEF 210 210
DISPLAY 12 QUOTE Started PDIF File Reader QUOTE
VARSET cfgfile UNIQUENAME
COPYCFG pdifin.cfg VARVAL cfgfile
OPENCFG VARVAL cfgfile
ADDCFG I_UserName DSNNAME
ADDCFG I_InputFile FILENAME CURRPCB pdf
ADDCFG O_OutputFile FILENAME CURRPCB pcb
CALL initlibvars
VARSET oldlibpath LibraryPath
VARSET symlibpath SYM_LibraryPath
VARSET prtlibpath PRT_LibraryPath
VARSET oldlibfile LibraryFile
VARSET symlibfile SYM_LibraryFile
VARSET prtlibfile PRT_LibraryFile
CALL utillibs
CLOSECFG
RUNN QUOTE shpdifi VARVAL cfgfile QUOTE
COPYCFG VARVAL cfgfile pdifin.cfg
OPENCFG VARVAL cfgfile
VARSET cfgval CFGVAL I_RunFlag
CLOSECFG
IF EQUAL VARVAL cfgval Yes
RUNT QUOTE pdifin -cfg VARVAL cfgfile QUOTE
ENDIF
OPENCFG VARVAL cfgfile
REMOVECFG
RESUME
DISPLAY 12 NULLSTR
* PCB PDIF-Out
COMMDEF 211 211
DISPLAY 12 QUOTE Started PDIF File Writer QUOTE
VARSET cfgfile UNIQUENAME
COPYCFG pdifout.cfg VARVAL cfgfile
OPENCFG VARVAL cfgfile
ADDCFG I_UserName DSNNAME
ADDCFG I_InputFile FILENAME CURRPCB pcb
ADDCFG O_OutputFile FILENAME CURRPCB pdf
CALL initlibvars
VARSET oldlibpath LibraryPath
VARSET symlibpath SYM_LibraryPath
VARSET prtlibpath PRT_LibraryPath
VARSET oldlibfile LibraryFile
VARSET symlibfile SYM_LibraryFile
VARSET prtlibfile PRT_LibraryFile
CALL utillibs
CLOSECFG
RUNN QUOTE shpdifo VARVAL cfgfile QUOTE
COPYCFG VARVAL cfgfile pdifout.cfg
OPENCFG VARVAL cfgfile
VARSET cfgval CFGVAL I_RunFlag
CLOSECFG
IF EQUAL VARVAL cfgval Yes
RUNT QUOTE pdifout -cfg VARVAL cfgfile QUOTE
ENDIF
OPENCFG VARVAL cfgfile
REMOVECFG
RESUME
DISPLAY 12 NULLSTR
* Net List Interface
COMMDEF 212 212
DISPLAY 12 QUOTE Started Netlist Conversion QUOTE
VARSET cfgfile UNIQUENAME
COPYCFG nlt.cfg VARVAL cfgfile
OPENCFG VARVAL cfgfile
ADDCFG I_UserName DSNNAME
ADDCFG O_PCBFile FILENAME CURRPCB pcb
ADDCFG I_AsciiNetlistFile FILENAME CURRPCB alt
ADDCFG O_RefdesReportFile FILENAME CURRPCB rp1
ADDCFG O_PartTypeReportFile FILENAME CURRPCB rp2
ADDCFG O_NetNameReportFile FILENAME CURRPCB rp3
ADDCFG O_NetSheetReportFile FILENAME CURRPCB rp4
CALL initlibvars
VARSET oldlibpath LibraryPath
VARSET prtlibpath PRT_LibraryPath
VARSET nltlibpath NLT_LibraryPath
VARSET oldlibfile LibraryFile
VARSET prtlibfile PRT_LibraryFile
CALL utillibs
CLOSECFG
RUNN QUOTE shnlt VARVAL cfgfile QUOTE
COPYCFG VARVAL cfgfile nlt.cfg
OPENCFG VARVAL cfgfile
VARSET cfgval CFGVAL I_RunFlag
CLOSECFG
IF EQUAL VARVAL cfgval Yes
RUNT QUOTE pcnlt -cfg VARVAL cfgfile QUOTE
ENDIF
OPENCFG VARVAL cfgfile
REMOVECFG
RESUME
DISPLAY 12 NULLSTR
* Drill Command
COMMDEF 230 230
DISPLAY 12 QUOTE Started Drill QUOTE
VARSET cfgfile UNIQUENAME
COPYCFG drill.cfg VARVAL cfgfile
OPENCFG VARVAL cfgfile
ADDCFG I_UserName DSNNAME
ADDCFG I_PCBFile FILENAME CURRPCB pcb
ADDCFG O_DrillFile FILENAME CURRPCB drl
ADDCFG O_ReportFile FILENAME CURRPCB mfg
VARSET cfgval CFGVAL I_ToolTableFile
IF EQUAL VARVAL cfgval NULLSTR
ADDCFG I_ToolTableFile FILENAME CURRPCB tbl
ENDIF
ADDCFG O_PlotFile FILENAME CURRPCB plt
CLOSECFG
RUNN QUOTE shdrill VARVAL cfgfile QUOTE
COPYCFG VARVAL cfgfile drill.cfg
OPENCFG VARVAL cfgfile
VARSET cfgval CFGVAL I_RunFlag
CLOSECFG
IF EQUAL VARVAL cfgval Yes
RUNT QUOTE pcdrill -cfg VARVAL cfgfile QUOTE
ENDIF
OPENCFG VARVAL cfgfile
REMOVECFG
RESUME
DISPLAY 12 NULLSTR
* Insert Command
COMMDEF 231 231
DISPLAY 12 QUOTE Started Auto-Insertion QUOTE
VARSET cfgfile UNIQUENAME
COPYCFG insert.cfg VARVAL cfgfile
OPENCFG VARVAL cfgfile
ADDCFG I_UserName DSNNAME
ADDCFG I_PCBFile FILENAME CURRPCB pcb
CALL initlibvars
VARSET oldlibpath LibraryPath
VARSET prtlibpath PRT_LibraryPath
VARSET oldlibfile LibraryFile
VARSET prtlibfile PRT_LibraryFile
CALL utillibs
ADDCFG O_InsertReportFile FILENAME CURRPCB ins
CLOSECFG
RUNN QUOTE shinsert VARVAL cfgfile QUOTE
COPYCFG VARVAL cfgfile insert.cfg
OPENCFG VARVAL cfgfile
VARSET cfgval CFGVAL I_RunFlag
CLOSECFG
IF EQUAL VARVAL cfgval Yes
RUNT QUOTE pcinsert -cfg VARVAL cfgfile QUOTE
ENDIF
OPENCFG VARVAL cfgfile
REMOVECFG
RESUME
DISPLAY 12 NULLSTR
* PCB Output
COMMDEF 220
DISPLAY 12 QUOTE Started Hardcopy QUOTE
IF EXISTS hardcopy.cfg
ELSE
OPENCFG hardcopy.cfg
ADDCFG I_PlotCFGFile FILENAME DESIGN ppp
CLOSECFG
ENDIF
VARSET cfgfile UNIQUENAME
COPYCFG hardcopy.cfg VARVAL cfgfile
OPENCFG VARVAL cfgfile
ADDCFG I_UserName DSNNAME
VARSET cfgval CFGVAL I_PlotFile
IF EQUAL VARVAL cfgval NULLSTR
ADDCFG I_PlotFile FILENAME CURRPCB plt
ENDIF
VARSET cfgval CFGVAL I_PlotCFGFile
IF EQUAL VARVAL cfgval NULLSTR
ADDCFG I_PlotCFGFile FILENAME DESIGN ppp
ENDIF
VARSET cfgval CFGVAL I_OutputFormat
IF EQUAL VARVAL cfgval NULLSTR
ADDCFG I_OutputFormat PRINT
ENDIF
CLOSECFG
RUNN QUOTE shhrdcpy VARVAL cfgfile QUOTE
VARSET pppfile UNIQUENAME
COPYCFG VARVAL cfgfile hardcopy.cfg
OPENCFG VARVAL cfgfile
VARSET plotpppfile CFGVAL I_PlotCFGFile
ADDCFG I_PlotCFGFile VARVAL pppfile
*ADDCFG I_PlotCFGFile pppfile
VARSET runval CFGVAL I_RunFlag
VARSET pltval CFGVAL I_OutputFormat
VARSET program CFGVAL I_Program
VARSET spool CFGVAL I_SpoolOutput
VARSET lprcommand CFGVAL I_LPRCommand
VARSET plotoutput CFGVAL O_PlotOutput
CLOSECFG
COPYCFG VARVAL plotpppfile VARVAL pppfile
IF EQUAL VARVAL runval Yes
IF NOTEQUAL VARVAL program NULLSTR
TEXTMODE
* DISPLAY 12 QUOTE Printing or Plotting File. QUOTE
RUNT QUOTE VARVAL program -cfg VARVAL cfgfile QUOTE
IF EQUAL VARVAL spool Yes
* DISPLAY 12 QUOTE Spooling Print or Plot File. QUOTE
DISPLAY 12 QUOTE Copying to Printing or Plotting Device. QUOTE
RUNT QUOTE VARVAL lprcommand VARVAL plotoutput QUOTE
ENDIF
ENDIF
ENDIF
DELFILE VARVAL cfgfile
DELFILE VARVAL pppfile
RESUME
DISPLAY 12 NULLSTR
* PCB Form Command
COMMDEF 221 221
DISPLAY 12 QUOTE Started Report Generator QUOTE
VARSET cfgfile UNIQUENAME
COPYCFG pcbform.cfg VARVAL cfgfile
VARSET dbname PCBNAME
CALL formsetup
ADDCFG I_PCBFile FILENAME CURRPCB pcb
ADDCFG P_FormsMode P
CLOSECFG
RUNN QUOTE shform VARVAL cfgfile QUOTE
COPYCFG VARVAL cfgfile pcbform.cfg
OPENCFG VARVAL cfgfile
VARSET cfgval CFGVAL I_RunFlag
IF EQUAL VARVAL cfgval Yes
TEXTMODE
VARSET nodesfil UNIQUENAME
VARSET dbname CFGVAL I_PCBFile
ADDCFG I_NetlistFile FILENAME BASENAME VARVAL dbname pcb pnl
CLOSECFG
IF DEPEND FILENAME VARVAL dbname pnl FILENAME VARVAL dbname pcb
OPENCFG VARVAL nodesfil
ADDCFG I_DatabaseFile FILENAME VARVAL dbname pcb
ADDCFG O_NetlistFile FILENAME VARVAL dbname pnl
CLOSECFG
RUNT QUOTE pcnodes -cfg VARVAL nodesfil QUOTE
ENDIF
OPENCFG VARVAL nodesfil
REMOVECFG
RUNT QUOTE pcform -cfg VARVAL cfgfile QUOTE
ELSE
CLOSECFG
ENDIF
COPYCFG VARVAL cfgfile pcbform.cfg
OPENCFG VARVAL cfgfile
REMOVECFG
RESUME
DISPLAY 12 NULLSTR
* Library Set Path Command
COMMDEF 401 401
SPECIAL DSNNONE
SPECIAL DSNROOT
IF VALIDLOCKFILE pcadcfg.lck
DISPLAY 12 QUOTE This concurrent operation not permitted. Sorry. QUOTE
ELSE
DISPLAY 12 QUOTE Started Libs. and Search Paths QUOTE
OPENCFG pcadcfg.lck
ADDCFG Lock_On_Process QUOTE PROCESSID USERID HOSTID QUOTE
CLOSECFG
SPECIAL DSNDIR
RUNG QUOTE shlibcfg pcad.cfg QUOTE
SPECIAL DSNROOT
OPENCFG pcadcfg.lck
REMOVECFG
DISPLAY 12 NULLSTR
ENDIF
SPECIAL DSNDIR
SPECIAL DSNINIT
* Library Maintenance Command
COMMDEF 403 403
DISPLAY 12 QUOTE Started Library Maintenance QUOTE
OPENCFG lib.cfg
CALL initlibvars
VARSET cfgfile lib.cfg
VARSET oldlibpath LibraryPath
VARSET symlibpath SYM_LibraryPath
VARSET prtlibpath PRT_LibraryPath
VARSET oldlibfile LibraryFile
VARSET symlibfile SYM_LibraryFile
VARSET prtlibfile PRT_LibraryFile
CALL utillibs
CLOSECFG
RUN QUOTE pclib -cfg lib.cfg QUOTE
DISPLAY 12 NULLSTR
* Symbol Edit Command
COMMDEF 410 410
IF VALIDLOCKFILE capscfg.lck
DISPLAY 12 QUOTE Cannot edit while changing configuration. Sorry. QUOTE
ELSE
DISPLAY 12 QUOTE Started Symbol Editor QUOTE
OPENCFG caps.cfg
ADDCFG I_Mode Symbol
ADDCFG O_FatalCondition xxx
VARSET cfgfile caps.cfg
DELCFG I_CurrentSheet
CALL initlibvars
VARSET oldlibpath LibraryPath
VARSET symlibpath SYM_LibraryPath
VARSET oldlibfile LibraryFile
VARSET symlibfile SYM_LibraryFile
CALL utillibs
CLOSECFG
RUNG QUOTE pccaps -cfg caps.cfg QUOTE
OPENCFG caps.cfg
VARSET cfgval CFGVAL O_FatalCondition
IF NOTEQUAL VARVAL cfgval NULLSTR
DISPLAY 12 QUOTE Fatal Error: caps: program abort detected. QUOTE
PRINT QUOTE Fatal Error: caps: program abort detected. QUOTE
PRINT QUOTE Close some windows and try the operation again. QUOTE
ELSE
DISPLAY 12 NULLSTR
ENDIF
VARSET cfgval CFGVAL O_ComponentPaths
WHILE NOTEQUAL VARVAL cfgval NULLSTR
OPENCFG design.cfg
PUTCFG SYM_LibraryPath VARVAL cfgval
OPENCFG caps.cfg
VARSET cfgval CFGNEXT O_ComponentPaths
ENDWHILE
DELCFG O_ComponentPaths
VARSET cfgval CFGVAL O_SaveTime
IF NOTEQUAL VARVAL cfgval NULLSTR
PUTCFG I_SaveTime VARVAL cfgval
ENDIF
DELCFG O_SaveTime
CLOSECFG
OPENCFG design.cfg
CLOSECFG
ENDIF
* Part Edit Command
COMMDEF 411 411
IF VALIDLOCKFILE cardscfg.lck
DISPLAY 12 QUOTE Cannot edit while changing configuration. Sorry. QUOTE
ELSE
DISPLAY 12 QUOTE Started Part Editor QUOTE
OPENCFG cards.cfg
ADDCFG I_Mode Symbol
ADDCFG O_FatalCondition xxx
VARSET cfgfile cards.cfg
DELCFG I_PCBDataBase
CALL initlibvars
VARSET oldlibpath LibraryPath
VARSET prtlibpath PRT_LibraryPath
VARSET oldlibfile LibraryFile
VARSET prtlibfile PRT_LibraryFile
CALL utillibs
CLOSECFG
RUNG QUOTE pccards -cfg cards.cfg QUOTE
OPENCFG cards.cfg
VARSET cfgval CFGVAL O_FatalCondition
IF NOTEQUAL VARVAL cfgval NULLSTR
DISPLAY 12 QUOTE Fatal Error: cards: program abort detected. QUOTE
PRINT QUOTE Fatal Error: cards: program abort detected. QUOTE
PRINT QUOTE Close some windows and try the operation again. QUOTE
ELSE
DISPLAY 12 NULLSTR
ENDIF
VARSET cfgval CFGVAL O_ComponentPaths
WHILE NOTEQUAL VARVAL cfgval NULLSTR
OPENCFG design.cfg
PUTCFG PRT_LibraryPath VARVAL cfgval
OPENCFG cards.cfg
VARSET cfgval CFGNEXT O_ComponentPaths
ENDWHILE
DELCFG O_ComponentPaths
VARSET cfgval CFGVAL O_OnlineDRC
IF NOTEQUAL VARVAL cfgval NULLSTR
PUTCFG I_OnlineDRC VARVAL cfgval
ENDIF
DELCFG O_OnlineDRC
VARSET cfgval CFGVAL O_UncommPin
IF NOTEQUAL VARVAL cfgval NULLSTR
PUTCFG I_UncommPin VARVAL cfgval
ENDIF
DELCFG O_UncommPin
VARSET cfgval CFGVAL O_SaveTime
IF NOTEQUAL VARVAL cfgval NULLSTR
PUTCFG I_SaveTime VARVAL cfgval
ENDIF
DELCFG O_SaveTime
VARSET cfgval CFGVAL O_TraceLength
IF NOTEQUAL VARVAL cfgval NULLSTR
PUTCFG I_TraceLength VARVAL cfgval
ENDIF
DELCFG O_TraceLength
CLOSECFG
OPENCFG design.cfg
CLOSECFG
ENDIF
* Component Edit Command
COMMDEF 412 412
DISPLAY 12 QUOTE Started Component Editor QUOTE
OPENCFG comp.cfg
VARSET cfgfile comp.cfg
CALL initlibvars
VARSET oldlibpath LibraryPath
VARSET symlibpath SYM_LibraryPath
VARSET prtlibpath PRT_LibraryPath
VARSET oldlibfile LibraryFile
VARSET symlibfile SYM_LibraryFile
VARSET prtlibfile PRT_LibraryFile
CALL utillibs
CLOSECFG
SPAWN QUOTE pccomp -cfg comp.cfg QUOTE
DISPLAY 12 NULLSTR
* Interface commands
* Add Program Command
COMMDEF 501 501
DISPLAY 12 QUOTE Started Add Program Command QUOTE
SPECIAL DSNROOT
RUNG QUOTE shadprog QUOTE
SPECIAL DSNBUTN
SPECIAL DSNDIR
DISPLAY 12 NULLSTR
* GERBER-CAM Command
*COMMDEF 501 501
*IF EXISTS design.cfg
* DISPLAY 12 QUOTE Started Gerber CAM Command QUOTE
* SPAWN QUOTE cam QUOTE
* DISPLAY 12 NULLSTR
*ELSE
* DISPLAY 12 QUOTE Please create a design first. QUOTE
*ENDIF
* GERBER-EDIT CAM Command
*COMMDEF 502 502
*IF EXISTS design.cfg
* DISPLAY 12 QUOTE Gerber Edit File/CAM not available QUOTE
* SPAWN QUOTE ecam QUOTE
* DISPLAY 12 NULLSTR
*ELSE
* DISPLAY 12 QUOTE Please create a design first. QUOTE
*ENDIF
* GPLOT Command
*COMMDEF 503 503
*IF EXISTS design.cfg
* DISPLAY 12 QUOTE Started Print Gerber File QUOTE
* SPAWN QUOTE gplot QUOTE
* DISPLAY 12 NULLSTR
*ELSE
* DISPLAY 12 QUOTE Please create a design first. QUOTE
*ENDIF
*
* EDIF to PCB Converter
*
* Cfg Keywords
*
* I_UserName - the name of the current design
* I_InputFile - the EDIF input file name (.edf)
* I_start_database - the start PCB database
* O_AltFile - the ASCII netlist intermediate file name (.alt)
* O_PCBFile - the PCB layout output file name (.pcb)
* I_RunFlag - run flag (Yes or No)
* I_ComponentPaths - design pcad library path
* I_ComponentLibraryNames - design pcad library name
*
COMMDEF 502 502
IF EXISTS design.cfg
DISPLAY 12 QUOTE Started EDIF Netlist Reader QUOTE
VARSET cfgfile UNIQUENAME
COPYCFG edif2alt.cfg VARVAL cfgfile
OPENCFG VARVAL cfgfile
*
DELCFG I_CrossReferenceFile
OPENCFG design.cfg
VARSET cfgval CFGVAL I_CrossReferenceFile
CLOSECFG
OPENCFG VARVAL cfgfile
IF NOTEQUAL VARVAL cfgval NULLSTR
PUTCFG I_CrossReferenceFile VARVAL cfgval
ENDIF
*
ADDCFG I_UserName DSNNAME
VARSET cfgval CFGVAL I_InputFile
IF EQUAL VARVAL cfgval NULLSTR
IF EQUAL FILENAME CURRPCB NULLSTR .
ADDCFG I_InputFile FILENAME DSNNAME edf
ELSE
ADDCFG I_InputFile FILENAME CURRPCB edf
ENDIF
ELSE
IF EXISTS VARVAL cfgval
ELSE
IF EQUAL FILENAME CURRPCB NULLSTR .
ADDCFG I_InputFile FILENAME DSNNAME edf
ELSE
ADDCFG I_InputFile FILENAME CURRPCB edf
ENDIF
ENDIF
ENDIF
VARSET cfgval CFGVAL I_start_database
IF EQUAL VARVAL cfgval NULLSTR
IF NOTEQUAL FILENAME CURRPCB NULLSTR .
ADDCFG I_start_database FILENAME CURRPCB pcb
ENDIF
ELSE
IF EXISTS VARVAL cfgval
ELSE
IF NOTEQUAL FILENAME CURRPCB NULLSTR .
ADDCFG I_start_database FILENAME CURRPCB pcb
ENDIF
ENDIF
ENDIF
VARSET cfgval CFGVAL O_AltFile
IF EQUAL VARVAL cfgval NULLSTR
IF EQUAL FILENAME CURRPCB NULLSTR .
ADDCFG O_AltFile FILENAME DSNNAME alt
ELSE
ADDCFG O_AltFile FILENAME CURRPCB alt
ENDIF
ENDIF
VARSET cfgval CFGVAL O_OutputFile
IF EQUAL VARVAL cfgval NULLSTR
IF NOTEQUAL FILENAME CURRPCB NULLSTR .
ADDCFG O_OutputFile FILENAME CURRPCB pcb
ENDIF
ENDIF
*
* replaced above "O_OutputFile" with "O_PCBFile" since user interface is
* updated to accept PCB file name for output instead of
* ALT file name.
*
CALL initlibvars
VARSET oldlibpath LibraryPath
VARSET symlibpath SYM_LibraryPath
VARSET prtlibpath PRT_LibraryPath
VARSET nltlibpath NLT_LibraryPath
VARSET oldlibfile LibraryFile
VARSET symlibfile SYM_LibraryFile
VARSET prtlibfile PRT_LibraryFile
CALL utillibs
CLOSECFG
RUNG QUOTE shedfalt VARVAL cfgfile QUOTE
OPENCFG edif2alt.cfg
REMOVECFG
COPYCFG VARVAL cfgfile edif2alt.cfg
OPENCFG VARVAL cfgfile
VARSET cfgval CFGVAL I_RunFlag
CLOSECFG
IF EQUAL VARVAL cfgval Yes
RUN QUOTE edif2alt -cfg VARVAL cfgfile QUOTE
OPENCFG VARVAL cfgfile
VARSET cfgval CFGVAL I_RunFlag
VARSET inputfile CFGVAL O_AltFile
VARSET outputfile CFGVAL O_PCBFile
CLOSECFG
IF EQUAL VARVAL cfgval Yes
DISPLAY 12 QUOTE Converting alt file to pcb file QUOTE
VARSET cfgfile UNIQUENAME
OPENCFG VARVAL cfgfile
ADDCFG I_UserName DSNNAME
ADDCFG O_PCBFile FILENAME VARVAL outputfile pcb
ADDCFG I_AsciiNetlistFile FILENAME VARVAL inputfile alt
ADDCFG O_RefdesReportFile FILENAME VARVAL outputfile rp1
ADDCFG O_PartTypeReportFile FILENAME VARVAL outputfile rp2
ADDCFG O_NetNameReportFile FILENAME VARVAL outputfile rp3
ADDCFG O_NetSheetReportFile FILENAME VARVAL outputfile rp4
CALL initlibvars
VARSET oldlibpath LibraryPath
VARSET symlibpath SYM_LibraryPath
VARSET prtlibpath PRT_LibraryPath
VARSET nltlibpath NLT_LibraryPath
VARSET oldlibfile LibraryFile
VARSET symlibfile SYM_LibraryFile
VARSET prtlibfile PRT_LibraryFile
CALL utillibs
CLOSECFG
RUN QUOTE pcnlt -cfg VARVAL cfgfile QUOTE
COPYCFG VARVAL cfgfile nlt.cfg
DISPLAY 12 NULLSTR
ENDIF
ELSE
DISPLAY 12 NULLSTR
ENDIF
OPENCFG VARVAL cfgfile
REMOVECFG
ELSE
DISPLAY 12 QUOTE Please create a design first. QUOTE
ENDIF
* EDIF Netlist Writer Command
*
* Cfg Keywords
*
* I_UserName - the name of the current design
* I_InputFile - the sheet file name (.sch)
* I_NetlistFile - the derived netlist file name (.nlt or .xnl)
* NOTE: this parm should be used by "nxedif2" for the netlist
* input file name.
*
* P_AllSheet - boolean on all or one sheets (Y or N)
* O_OutputFile - the EDIF output file name (.edf)
* I_hierarchy_comp_exp - Hierarchical expand file (YES or NO)
* I_alias - Alias flag (YES or NO)
* I_prop_mapping - property mapping file name
* I_external_lib - external EDIF library definition
* I_RunFlag - run flag (Yes or No)
* I_ComponentPaths - design pcad library path
* I_ComponentLibraryNames - design pcad library name
*
COMMDEF 503 503
IF EXISTS design.cfg
DISPLAY 12 QUOTE Started EDIF Netlist Writer QUOTE
VARSET cfgfile UNIQUENAME
COPYCFG nxedif2.cfg VARVAL cfgfile
OPENCFG VARVAL cfgfile
ADDCFG I_UserName DSNNAME
*
VARSET cfgval CFGVAL I_InputFile
IF EQUAL VARVAL cfgval NULLSTR
ADDCFG I_InputFile FILENAME SHEET sch
ENDIF
*
* The above variable "I_InputFile" should be the name
* of an individual sheet when P_AllSheet is "N".
* It is ignored (defaulted to DESIGN.xnl) when all
* sheets of the design are linked (e.g. P_AllSheet is "Y").
* See "Generate Reports" for an example.
*
VARSET cfgval CFGVAL P_AllSheet
IF EQUAL VARVAL cfgval NULLSTR
ADDCFG P_AllSheet Y
ENDIF
*
* The above parameter "P_AllSheet" is a new checkbox on
* the panel for shnxedif2. If P_AllSheet is "Y" then
* all the design sheets are compiled and linked and the
* input file for nxedif2 is the expanded net list.
*
VARSET cfgval CFGVAL O_OutputFile
IF EQUAL VARVAL cfgval NULLSTR
VARSET dbname DSNNAME
ADDCFG O_OutputFile FILENAME DESIGN edf
ENDIF
CALL initlibvars
VARSET oldlibpath LibraryPath
VARSET symlibpath SYM_LibraryPath
VARSET oldlibfile LibraryFile
VARSET symlibfile SYM_LibraryFile
CALL utillibs
CLOSECFG
RUNG QUOTE shnxedf2 VARVAL cfgfile QUOTE
OPENCFG VARVAL cfgfile
VARSET cfgval CFGVAL I_RunFlag
VARSET allshval CFGVAL P_AllSheet
IF EQUAL VARVAL cfgval Yes
VARSET nodesfil UNIQUENAME
IF EQUAL VARVAL allshval Y
VARSET linkfil UNIQUENAME
ADDCFG I_NetlistFile FILENAME DESIGN xnl
CLOSECFG
VARSET cfgsave VARVAL cfgfile
CALL runlink
VARSET cfgfile VARVAL cfgsave
OPENCFG VARVAL linkfil
REMOVECFG
ELSE
VARSET dbname CFGVAL I_InputFile
ADDCFG I_NetlistFile FILENAME VARVAL dbname nlt
CLOSECFG
CALL runnodes
ENDIF
OPENCFG VARVAL nodesfil
REMOVECFG
OPENCFG nxedif2.cfg
REMOVECFG
COPYCFG VARVAL cfgfile nxedif2.cfg
RUN QUOTE nxedif2 -cfg VARVAL cfgfile QUOTE
ELSE
OPENCFG nxedif2.cfg
REMOVECFG
COPYCFG VARVAL cfgfile nxedif2.cfg
CLOSECFG
ENDIF
OPENCFG VARVAL cfgfile
REMOVECFG
DISPLAY 12 NULLSTR
ELSE
DISPLAY 12 QUOTE Please create a design first. QUOTE
ENDIF
* EDIF Schematic Reader Command
*COMMDEF 506 506
*IF EXISTS design.cfg
* DISPLAY 12 QUOTE EDIF Schematic Reader not available QUOTE
* SPAWN QUOTE edifschin QUOTE
* DISPLAY 12 NULLSTR
*ELSE
* DISPLAY 12 QUOTE Please create a design first. QUOTE
*ENDIF
* EDIF Schematic Writer Command
*COMMDEF 507 507
*IF EXISTS design.cfg
* DISPLAY 12 QUOTE EDIF Schematic Writer not available QUOTE
* SPAWN QUOTE edifschout QUOTE
* DISPLAY 12 NULLSTR
*ELSE
* DISPLAY 12 QUOTE Please create a design first. QUOTE
*ENDIF
* UNX-SPICE Netlist Writer Command
COMMDEF 504 504
DISPLAY 12 QUOTE Started SPICE Circuit Writer QUOTE
VARSET config UNIQUENAME
COPYCFG nxspice.cfg VARVAL config
OPENCFG VARVAL config
ADDCFG I_UserName DSNNAME
ADDCFG I_NetlistFile FILENAME DESIGN xnl
DELCFG I_CrossReferenceFile
OPENCFG design.cfg
VARSET cfgval CFGVAL I_CrossReferenceFile
CLOSECFG
OPENCFG VARVAL config
IF NOTEQUAL VARVAL cfgval NULLSTR
PUTCFG I_CrossReferenceFile VARVAL cfgval
ENDIF
* set default parameters
VARSET cfgval CFGVAL P_NumericNames
IF EQUAL VARVAL cfgval NULLSTR
ADDCFG P_NumericNames Y
ENDIF
VARSET cfgval CFGVAL P_ReportNonNumNam
IF EQUAL VARVAL cfgval NULLSTR
ADDCFG P_ReportNonNumNam N
ENDIF
VARSET cfgval CFGVAL P_CorrectCompNames
IF EQUAL VARVAL cfgval NULLSTR
ADDCFG P_CorrectCompNames Y
ENDIF
VARSET cfgval CFGVAL P_LineNumbers
IF EQUAL VARVAL cfgval NULLSTR
ADDCFG P_LineNumbers Y
ENDIF
VARSET cfgval CFGVAL P_SupPreGues
IF EQUAL VARVAL cfgval NULLSTR
ADDCFG P_SupPreGues N
ENDIF
VARSET cfgval CFGVAL P_SupPrefix
IF EQUAL VARVAL cfgval NULLSTR
ADDCFG P_SupPrefix N
ENDIF
VARSET cfgval CFGVAL P_SupPreWarn
IF EQUAL VARVAL cfgval NULLSTR
ADDCFG P_SupPreWarn N
ENDIF
VARSET cfgval CFGVAL P_SupCompPrefix
IF EQUAL VARVAL cfgval NULLSTR
ADDCFG P_SupCompPrefix N
ENDIF
VARSET cfgval CFGVAL I_BASEGLOB
IF EQUAL VARVAL cfgval NULLSTR
ADDCFG I_BASEGLOB 9000
ENDIF
VARSET cfgval CFGVAL I_BASELOC
IF EQUAL VARVAL cfgval NULLSTR
ADDCFG I_BASELOC 8000
ENDIF
OPENCFG design.cfg
VARSET cfgval CFGVAL O_CrossReferenceFile
CLOSECFG
OPENCFG VARVAL config
IF NOTEQUAL VARVAL cfgval NULLSTR
PUTCFG O_CrossReferenceFile VARVAL cfgval
ENDIF
* reinstance hierarchy in case it changed
* PREMIER 1.2 hierarchy definition
DELCFG I_HierarchicalTopNodes
OPENCFG design.cfg
VARSET cfgval CFGVAL Hierarchical_Top_Nodes
WHILE NOTEQUAL VARVAL cfgval NULLSTR
OPENCFG VARVAL config
PUTCFG I_HierarchicalTopNodes FILENAME VARVAL cfgval sch
OPENCFG design.cfg
VARSET cfgval CFGNEXT Hierarchical_Top_Nodes
ENDWHILE
CLOSECFG
* MD6.0 hierarchy definition
DELCFG I_HierarchicalSymbols
OPENCFG design.cfg
VARSET cfgval CFGVAL Hierarchical_Symbols
IF NOTEQUAL VARVAL cfgval NULLSTR
OPENCFG VARVAL config
WHILE SHEET
PUTCFG I_HierarchicalTopNodes FILENAME SHEET sch
ENDWHILE
ENDIF
CLOSECFG
CLOSECFG
* Test for any kind of hierarchical definition
OPENCFG VARVAL config
VARSET cfgval CFGVAL P_FlatHier
IF EQUAL VARVAL cfgval NULLSTR
VARSET hierset false
VARSET cfgval CFGVAL I_HierarchicalTopNodes
IF NOTEQUAL VARVAL cfgval NULLSTR
VARSET hierset true
ENDIF
IF EQUAL VARVAL hierset false
ADDCFG P_FlatHier Y
ELSE
ADDCFG P_FlatHier N
ENDIF
ENDIF
CLOSECFG
* remap header sheet to sch
OPENCFG VARVAL config
VARSET cfgval CFGVAL I_HeaderSheet
DELCFG I_HeaderSheet
PUTCFG I_HeaderSheet FILENAME BASENAME VARVAL cfgval nlt sch
DELCFG I_NetlistFile
OPENCFG design.cfg
OPENCFG VARVAL config
WHILE SHEET
PUTCFG I_NetlistFile FILENAME SHEET sch
ENDWHILE
VARSET cfgfile VARVAL config
CALL initlibvars
VARSET oldlibpath LibraryPath
VARSET symlibpath SYM_LibraryPath
VARSET nltlibpath NLT_LibraryPath
VARSET oldlibfile LibraryFile
VARSET symlibfile SYM_LibraryFile
CALL utillibs
CLOSECFG
CLOSECFG
* get user input though utility shell
RUN QUOTE shnxspce VARVAL config QUOTE
COPYCFG VARVAL config nxspice.cfg
OPENCFG VARVAL config
VARSET cfgval CFGVAL I_RunFlag
VARSET lnkval CFGVAL P_FlatHier
DELCFG I_NetlistFile
PUTCFG I_NetlistFile FILENAME DESIGN xnl
CLOSECFG
IF EQUAL VARVAL cfgval Yes
VARSET nodesfil UNIQUENAME
IF EQUAL VARVAL lnkval Y
VARSET linkfil UNIQUENAME
CALL runlink
OPENCFG VARVAL linkfil
REMOVECFG
ELSE
VARSET runlink no
WHILE SHEET
VARSET dbname SCHNAME
CALL runnodes
IF DEPEND FILENAME DESIGN cir FILENAME SCHNAME nlt
VARSET runlink yes
ENDIF
ENDWHILE
* handle hierarch. symbols if any
OPENCFG design.cfg
VARSET hiersym CFGVAL Hierarchical_Symbols
WHILE NOTEQUAL VARVAL hiersym NULLSTR
VARSET symext EXTENSION VARVAL hiersym
VARSET dbname BASENAME VARVAL hiersym VARVAL symext
CALL hsymnodes
VARSET hiersym CFGNEXT Hierarchical_Symbols
ENDWHILE
CLOSECFG
* set names for nxspice engine
OPENCFG design.cfg
VARSET cfgval CFGVAL Hierarchical_Top_Nodes
CLOSECFG
OPENCFG VARVAL config
DELCFG I_NetlistFile
VARSET cfgval CFGVAL I_HierarchicalTopNodes
IF EQUAL VARVAL cfgval NULLSTR
WHILE SHEET
PUTCFG I_NetlistFile FILENAME SHEET nlt
ENDWHILE
ELSE
OPENCFG design.cfg
VARSET cfgval CFGVAL Hierarchical_Top_Nodes
IF NOTEQUAL VARVAL cfgval NULLSTR
WHILE NOTEQUAL VARVAL cfgval NULLSTR
OPENCFG VARVAL config
PUTCFG I_NetlistFile FILENAME VARVAL cfgval nlt
OPENCFG design.cfg
VARSET cfgval CFGNEXT Hierarchical_Top_Nodes
ENDWHILE
ELSE
OPENCFG VARVAL config
WHILE SHEET
PUTCFG I_NetlistFile FILENAME SHEET nlt
ENDWHILE
ENDIF
CLOSECFG
VARSET cfgfile VARVAL config
CALL initlibvars
VARSET oldlibpath LibraryPath
VARSET symlibpath SYM_LibraryPath
VARSET nltlibpath NLT_LibraryPath
VARSET oldlibfile LibraryFile
VARSET symlibfile SYM_LibraryFile
CALL utillibs
CLOSECFG
ENDIF
ENDIF
OPENCFG VARVAL nodesfil
REMOVECFG
OPENCFG nxspice.cfg
REMOVECFG
COPYCFG VARVAL config nxspice.cfg
RUN QUOTE nxspice -cfg VARVAL config QUOTE
ENDIF
OPENCFG VARVAL config
REMOVECFG
DISPLAY 12 NULLSTR
* Subroutine Declarations
* Run Link Subroutine
SUBROUTINE runlink
VARSET runlink no
* re-extract .nlt if any top sheets are updated
WHILE SHEET
VARSET dbname SCHNAME
CALL runnodes
IF DEPEND FILENAME DESIGN xnl FILENAME SHEET nlt
VARSET runlink yes
ENDIF
ENDWHILE
* handle hierarch. symbols if any
OPENCFG design.cfg
VARSET hiersym CFGVAL Hierarchical_Symbols
WHILE NOTEQUAL VARVAL hiersym NULLSTR
VARSET symext EXTENSION VARVAL hiersym
VARSET dbname BASENAME VARVAL hiersym VARVAL symext
CALL hsymnodes
IF DEPEND FILENAME DESIGN xnl FILENAME VARVAL dbname nlt
VARSET runlink yes
ENDIF
VARSET hiersym CFGNEXT Hierarchical_Symbols
ENDWHILE
CLOSECFG
* need to re-extract .xnl if runlink is yes ie. any sheets or hier sym got
* updated
IF EQUAL VARVAL runlink yes
OPENCFG VARVAL linkfil
DELCFG I_NetlistFiles
* build linkfil's I_NetlistFiles rec.
WHILE SHEET
PUTCFG I_NetlistFiles FILENAME SHEET nlt
ENDWHILE
ADDCFG O_NetlistFile FILENAME DESIGN xnl
* port nlt path from design.cfg to link cfg
VARSET cfgfile VARVAL linkfil
CALL initlibvars
VARSET oldlibpath LibraryPath
VARSET nltlibpath NLT_LibraryPath
CALL utillibs
CLOSECFG
RUNT QUOTE pclink -cfg VARVAL linkfil QUOTE
ENDIF
* Run Nodes Subroutine
SUBROUTINE runnodes
IF DEPEND FILENAME VARVAL dbname nlt FILENAME VARVAL dbname sch
OPENCFG VARVAL nodesfil
ADDCFG I_DatabaseFile FILENAME VARVAL dbname sch
ADDCFG O_NetlistFile FILENAME VARVAL dbname nlt
CLOSECFG
RUNT QUOTE pcnodes -cfg VARVAL nodesfil QUOTE
ENDIF
* Run Nodes on hierarchical symbols
SUBROUTINE hsymnodes
IF DEPEND FILENAME VARVAL dbname nlt FILENAME VARVAL dbname VARVAL symext
OPENCFG VARVAL nodesfil
ADDCFG I_DatabaseFile FILENAME VARVAL dbname VARVAL symext
ADDCFG O_NetlistFile FILENAME VARVAL dbname nlt
CLOSECFG
RUNT QUOTE pcnodes -cfg VARVAL nodesfil QUOTE
ENDIF
* Run Nodes against PCB database
SUBROUTINE pcbnodes
IF DEPEND FILENAME VARVAL dbname pnl FILENAME VARVAL dbname pcb
OPENCFG VARVAL nodesfil
ADDCFG I_DatabaseFile FILENAME VARVAL dbname pcb
ADDCFG O_NetlistFile FILENAME VARVAL dbname pnl
CLOSECFG
RUNT QUOTE pcnodes -cfg VARVAL nodesfil QUOTE
ENDIF
* Build eco_pack.cfg and adjust eco.cfg for forward-annotation eco
SUBROUTINE bldFrwAnnoCfg
OPENCFG eco.cfg
ADDCFG I_Netlist1 FILENAME DESIGN bnl
CLOSECFG
OPENCFG eco_pack.cfg
ADDCFG I_UserName DSNNAME
ADDCFG I_NetlistFile FILENAME DESIGN xnl
ADDCFG O_AnnotatedNetlistFile FILENAME DESIGN bnl
DELCFG I_CrossReferenceFile
IF NOTEQUAL VARVAL xreffil NULLSTR
PUTCFG I_CrossReferenceFile VARVAL xreffil
ENDIF
* add PRT lib paths
VARSET cfgfile eco_pack.cfg
CALL initlibvars
VARSET oldlibpath LibraryPath
VARSET prtlibpath PRT_LibraryPath
VARSET oldlibfile LibraryFile
VARSET prtlibfile PRT_LibraryFile
CALL utillibs
CLOSECFG
* port eco.cfg's attributes to eco_pack.cfg
OPENCFG eco.cfg
VARSET cfgval CFGVAL I_Attributes
WHILE NOTEQUAL VARVAL cfgval NULLSTR
OPENCFG eco_pack.cfg
PUTCFG I_Attributes VARVAL cfgval
OPENCFG eco.cfg
VARSET cfgval CFGNEXT I_Attributes
ENDWHILE
CLOSECFG
CLOSECFG
* Form Set Up Subroutine
SUBROUTINE formsetup
OPENCFG VARVAL cfgfile
ADDCFG I_UserName DSNNAME
ADDCFG O_ComponentListReport FILENAME VARVAL dbname cmp
ADDCFG O_NodesListReport FILENAME VARVAL dbname nde
ADDCFG O_PackagingListReport FILENAME VARVAL dbname pkl
ADDCFG O_WireListReport FILENAME VARVAL dbname wrl
ADDCFG O_MaterialsListReport FILENAME VARVAL dbname mat
* Run Forms Subroutine
SUBROUTINE runform
RUNT QUOTE pcform -cfg VARVAL cfgfile QUOTE
* Initialize/reset shell var. for 'utillibs' use. SDF warns undefined var.
SUBROUTINE initlibvars
VARSET oldlibpath NULLSTR
VARSET symlibpath NULLSTR
VARSET prtlibpath NULLSTR
VARSET nltlibpath NULLSTR
VARSET oldlibfile NULLSTR
VARSET symlibfile NULLSTR
VARSET prtlibfile NULLSTR
* Generate library cfg records for most utilities
SUBROUTINE utillibs
DELCFG I_ComponentPaths
DELCFG I_ComponentLibraryNames
* for upward compatibility: support old keywords, however new ones are output
VARSET libpath VARVAL oldlibpath
CALL genpaths
VARSET libpath VARVAL prtlibpath
CALL genpaths
VARSET libpath VARVAL symlibpath
CALL genpaths
VARSET libpath VARVAL nltlibpath
CALL genpaths
VARSET libfile VARVAL oldlibfile
CALL genfiles
VARSET libfile VARVAL prtlibfile
CALL genfiles
VARSET libfile VARVAL symlibfile
CALL genfiles
VARSET symlibfile NULLSTR
* Generate library paths to cfgfile for caller 'utillibs'
SUBROUTINE genpaths
IF NOTEQUAL VARVAL libpath NULLSTR
OPENCFG design.cfg
VARSET cfgval CFGVAL VARVAL libpath
WHILE NOTEQUAL VARVAL cfgval NULLSTR
OPENCFG VARVAL cfgfile
PUTCFG I_ComponentPaths VARVAL cfgval
OPENCFG design.cfg
VARSET cfgval CFGNEXT VARVAL libpath
ENDWHILE
CLOSECFG
ENDIF
* Generate library filenames to cfgfile for caller 'utillibs'
SUBROUTINE genfiles
IF NOTEQUAL VARVAL libfile NULLSTR
OPENCFG design.cfg
VARSET cfgval CFGVAL VARVAL libfile
WHILE NOTEQUAL VARVAL cfgval NULLSTR
OPENCFG VARVAL cfgfile
PUTCFG I_ComponentLibraryNames VARVAL cfgval
OPENCFG design.cfg
VARSET cfgval CFGNEXT VARVAL libfile
ENDWHILE
CLOSECFG
ENDIF
* Generate ASCII file extension cfg records for most ASCII maintenance
SUBROUTINE asciifiles
OPENCFG VARVAL cfgfile
VARSET cfgval CFGVAL ASCII_Files
IF EQUAL VARVAL cfgval NULLSTR
PUTCFG ASCII_Files *.alt
PUTCFG ASCII_Files *.cmp
PUTCFG ASCII_Files *.drc
PUTCFG ASCII_Files *.drl
PUTCFG ASCII_Files *.erc
PUTCFG ASCII_Files *.fil
PUTCFG ASCII_Files *.gbr
PUTCFG ASCII_Files *.his
PUTCFG ASCII_Files *.hp
PUTCFG ASCII_Files *.ins
PUTCFG ASCII_Files *.mat
PUTCFG ASCII_Files *.mfg
PUTCFG ASCII_Files *.nde
PUTCFG ASCII_Files *.nlc
PUTCFG ASCII_Files *.pdf
PUTCFG ASCII_Files *.pkl
PUTCFG ASCII_Files *.plr
PUTCFG ASCII_Files *.psc
PUTCFG ASCII_Files *.rep
PUTCFG ASCII_Files *.rp1
PUTCFG ASCII_Files *.rp2
PUTCFG ASCII_Files *.rp3
PUTCFG ASCII_Files *.rp4
PUTCFG ASCII_Files *.ssf
PUTCFG ASCII_Files *.swr
PUTCFG ASCII_Files *.upd
PUTCFG ASCII_Files *.wrl
PUTCFG ASCII_Files *.LOG
ENDIF
VARSET cfgval CFGVAL Text_Editor
IF EQUAL VARVAL cfgval NULLSTR
PUTCFG Text_Editor edlin
ENDIF
CLOSECFG
* Associate Panel Items with Their Applications
TOTALAPPL 5
* Design Applications Panel Items
ITEMAPPL 310 20 (Properties)
ITEMAPPL 312 20 (ASCII Maintenance)
ITEMAPPL 303 20 (ECO)
ITEMAPPL 320 20 (Forms)
ITEMAPPL 321 20 (Compare)
*ITEMAPPL 322 20 (Process Monitor)
ITEMAPPL 323 20 (Configure System)
ITEMAPPL 324 20 (DOS Shell)
* CAE Application Panel Items
ITEMAPPL 106 21 (Config)
ITEMAPPL 102 21 (Edit)
ITEMAPPL 103 21 (ERC)
ITEMAPPL 104 21 (Package)
ITEMAPPL 121 21 (Forms)
ITEMAPPL 120 21 (Output)
ITEMAPPL 110 21 (PDIF-In)
ITEMAPPL 111 21 (PDIF-Out)
* PCB Application Panel Items
ITEMAPPL 207 22 (Config)
ITEMAPPL 201 22 (Edit)
ITEMAPPL 202 22 (Route)
ITEMAPPL 203 22 (DRC)
ITEMAPPL 221 22 (Forms)
ITEMAPPL 220 22 (Output)
ITEMAPPL 210 22 (PDIF-In)
ITEMAPPL 211 22 (PDIF-Out)
ITEMAPPL 230 22 (Drill)
ITEMAPPL 231 22 (Insert)
ITEMAPPL 212 22 (Net List)
* Library Application Panel Items
ITEMAPPL 401 23 (Configure)
ITEMAPPL 403 23 (Maintenance)
ITEMAPPL 410 23 (Symbol)
ITEMAPPL 411 23 (Part)
ITEMAPPL 412 23 (Component)
* Interface Application Panel Items
*ITEMAPPL 501 24 (GERBER CAM)
*ITEMAPPL 502 24 (GERBER-EDIT/CAM)
*ITEMAPPL 503 24 (GPLOT)
ITEMAPPL 502 24 (EDIF-NETLIST-READER)
ITEMAPPL 503 24 (EDIF-NETLIST-WRITER)
*ITEMAPPL 506 24 (EDIF-SCHEMATIC-READER)
*ITEMAPPL 507 24 (EDIF-SCHEMATIC-WRITER)
ITEMAPPL 504 24 (SPICE-CIRCUIT-WRITER)
ITEMAPPL 501 24 (Add Program)