aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorymherklotz <ymherklotz@gmail.com>2018-03-05 10:31:59 +0000
committerymherklotz <ymherklotz@gmail.com>2018-03-05 10:31:59 +0000
commit8cdda67f13ccf90e60033a630dcd8f5b4079d7b9 (patch)
tree7288710e692fdde5df448b56bdbcd08298c834f0
parentd21b552fde4e5db5fa948d519ccdb8894fd146ac (diff)
downloadNoiseSilencer-8cdda67f13ccf90e60033a630dcd8f5b4079d7b9.tar.gz
NoiseSilencer-8cdda67f13ccf90e60033a630dcd8f5b4079d7b9.zip
Added basic project files
-rw-r--r--Project/RTDSP/.ccsproject11
-rw-r--r--Project/RTDSP/.cdtbuild107
-rw-r--r--Project/RTDSP/.cdtproject16
-rw-r--r--Project/RTDSP/.gconf/RTDSP/lab3/RTDSP/dsp_bios_.cdb8762
-rw-r--r--Project/RTDSP/.gconf/RTDSP/lab3/RTDSP/dsp_bios_.tcf14
-rw-r--r--Project/RTDSP/.gconf/RTDSP/lab3/RTDSP/dsp_bios_cfg.cmd292
-rw-r--r--Project/RTDSP/.gconf/RTDSP/lab3/RTDSP/dsp_bios_cfg.h29
-rw-r--r--Project/RTDSP/.gconf/RTDSP/lab3/RTDSP/dsp_bios_cfg.h62197
-rw-r--r--Project/RTDSP/.gconf/RTDSP/lab3/RTDSP/dsp_bios_cfg.s621091
-rw-r--r--Project/RTDSP/.gconf/RTDSP/lab3/RTDSP/dsp_bios_cfg_c.c11
-rw-r--r--Project/RTDSP/.gconf/RTDSP/lab4/RTDSP/dsp_bios_.cdb8762
-rw-r--r--Project/RTDSP/.gconf/RTDSP/lab4/RTDSP/dsp_bios_.tcf15
-rw-r--r--Project/RTDSP/.gconf/RTDSP/lab4/RTDSP/dsp_bios_cfg.cmd292
-rw-r--r--Project/RTDSP/.gconf/RTDSP/lab4/RTDSP/dsp_bios_cfg.h29
-rw-r--r--Project/RTDSP/.gconf/RTDSP/lab4/RTDSP/dsp_bios_cfg.h62197
-rw-r--r--Project/RTDSP/.gconf/RTDSP/lab4/RTDSP/dsp_bios_cfg.s621091
-rw-r--r--Project/RTDSP/.gconf/RTDSP/lab4/RTDSP/dsp_bios_cfg_c.c11
-rw-r--r--Project/RTDSP/.gconf/RTDSP/lab5/RTDSP/dsp_bios_.cdb8762
-rw-r--r--Project/RTDSP/.gconf/RTDSP/lab5/RTDSP/dsp_bios_.tcf19
-rw-r--r--Project/RTDSP/.gconf/RTDSP/lab5/RTDSP/dsp_bios_cfg.cmd296
-rw-r--r--Project/RTDSP/.gconf/RTDSP/lab5/RTDSP/dsp_bios_cfg.h29
-rw-r--r--Project/RTDSP/.gconf/RTDSP/lab5/RTDSP/dsp_bios_cfg.h62197
-rw-r--r--Project/RTDSP/.gconf/RTDSP/lab5/RTDSP/dsp_bios_cfg.s621091
-rw-r--r--Project/RTDSP/.gconf/RTDSP/lab5/RTDSP/dsp_bios_cfg_c.c11
-rw-r--r--Project/RTDSP/.launches/RTDSP.launch26
-rw-r--r--Project/RTDSP/.project21
-rw-r--r--Project/RTDSP/.settings/org.eclipse.cdt.managedbuilder.core.prefs8
-rw-r--r--Project/RTDSP/FFT compiler-linker.txt9
-rw-r--r--Project/RTDSP/NewTargetConfiguration.ccxml12
-rw-r--r--Project/RTDSP/Resources/CycleCounts.csv16
-rw-r--r--Project/RTDSP/dsp_bios_.tcf19
-rw-r--r--Project/RTDSP/frame.c207
32 files changed, 31650 insertions, 0 deletions
diff --git a/Project/RTDSP/.ccsproject b/Project/RTDSP/.ccsproject
new file mode 100644
index 0000000..30729ac
--- /dev/null
+++ b/Project/RTDSP/.ccsproject
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?ccsproject version="1.0"?>
+
+<projectOptions>
+<deviceVariant value="com.ti.ccstudio.deviceModel.C6000.GenericC67xxDevice"/>
+<deviceEndianness value="little"/>
+<codegenToolVersion value="6.1.15"/>
+<isElfFormat value="false"/>
+<rts value="rts6700.lib"/>
+<defaultAssemblyOnly value="false"/>
+</projectOptions>
diff --git a/Project/RTDSP/.cdtbuild b/Project/RTDSP/.cdtbuild
new file mode 100644
index 0000000..7fdf1b5
--- /dev/null
+++ b/Project/RTDSP/.cdtbuild
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?fileVersion 3.1.0?>
+
+<ManagedProjectBuildInfo>
+<project id="RTDSP.com.ti.ccstudio.buildDefinitions.C6000.ProjectType.161682043" name="C6000" projectType="com.ti.ccstudio.buildDefinitions.C6000.ProjectType">
+<configuration artifactExtension="out" artifactName="RTDSP" description="" id="com.ti.ccstudio.buildDefinitions.C6000.Debug.1896488960" name="Debug" parent="com.ti.ccstudio.buildDefinitions.C6000.Debug">
+<toolChain id="com.ti.ccstudio.buildDefinitions.C6000_6.1.exe.DebugToolchain.685974834" name="TI Code Generation Tools" superClass="com.ti.ccstudio.buildDefinitions.C6000_6.1.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.C6000_6.1.exe.linkerDebug.1545787422">
+<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.680077879" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="6.1.15" valueType="string"/>
+<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1764096792" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
+<listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=com.ti.ccstudio.deviceModel.C6000.GenericC67xxDevice"/>
+<listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>
+<listOptionValue builtIn="false" value="IS_ELF=false"/>
+<listOptionValue builtIn="false" value="LINKER_COMMAND_FILE="/>
+<listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=rts6700.lib"/>
+<listOptionValue builtIn="false" value="IS_ASSEMBLY_ONLY=false"/>
+<listOptionValue builtIn="false" value="CCS_MBS_VERSION=4.1.3"/>
+<listOptionValue builtIn="false" value="DSPBIOS_VERSION=5.41.02.14"/>
+<listOptionValue builtIn="false" value="PROJECT_KIND=com.ti.ccstudio.managedbuild.core.ProjectKind_Executable"/>
+</option>
+<tool id="com.ti.ccstudio.buildDefinitions.C6000_6.1.exe.compilerDebug.59064415" name="C6000 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C6000_6.1.exe.compilerDebug">
+<option id="com.ti.ccstudio.buildDefinitions.C6000_6.1.compilerID.DIAG_WARNING.2078563100" superClass="com.ti.ccstudio.buildDefinitions.C6000_6.1.compilerID.DIAG_WARNING" valueType="stringList">
+<listOptionValue builtIn="false" value="225"/>
+</option>
+<option id="com.ti.ccstudio.buildDefinitions.C6000_6.1.compilerID.SILICON_VERSION.1797866863" superClass="com.ti.ccstudio.buildDefinitions.C6000_6.1.compilerID.SILICON_VERSION" value="6700" valueType="string"/>
+<option id="com.ti.ccstudio.buildDefinitions.C6000_6.1.compilerID.INCLUDE_PATH.1897255994" superClass="com.ti.ccstudio.buildDefinitions.C6000_6.1.compilerID.INCLUDE_PATH" valueType="includePath">
+<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
+<listOptionValue builtIn="false" value="&quot;${CCS_INSTALL_ROOT}\C6000\dsk6713\include&quot;"/>
+<listOptionValue builtIn="false" value="&quot;${CCS_INSTALL_ROOT}\C6000\csl\include&quot;"/>
+<listOptionValue builtIn="false" value="&quot;${PROJECT_BUILD_DIR}&quot;"/>
+<listOptionValue builtIn="false" value="&quot;${BIOS_INCLUDE_DIR}&quot;"/>
+<listOptionValue builtIn="false" value="&quot;${RTDX_INCLUDE_DIR}&quot;"/>
+</option>
+<option id="com.ti.ccstudio.buildDefinitions.C6000_6.1.compilerID.DEFINE.1926762804" superClass="com.ti.ccstudio.buildDefinitions.C6000_6.1.compilerID.DEFINE" valueType="definedSymbols">
+<listOptionValue builtIn="false" value="CHIP_6713"/>
+</option>
+<option id="com.ti.ccstudio.buildDefinitions.C6000_6.1.compilerID.DEBUGGING_MODEL.502361504" superClass="com.ti.ccstudio.buildDefinitions.C6000_6.1.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.C6000_6.1.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>
+<option id="com.ti.ccstudio.buildDefinitions.C6000_6.1.compilerID.OPT_LEVEL.2108985241" superClass="com.ti.ccstudio.buildDefinitions.C6000_6.1.compilerID.OPT_LEVEL" value="com.ti.ccstudio.buildDefinitions.C6000_6.1.compilerID.OPT_LEVEL._none" valueType="enumerated"/>
+<option id="com.ti.ccstudio.buildDefinitions.C6000_6.1.compilerID.OPT_FOR_SPEED.472451104" superClass="com.ti.ccstudio.buildDefinitions.C6000_6.1.compilerID.OPT_FOR_SPEED" value="com.ti.ccstudio.buildDefinitions.C6000_6.1.compilerID.OPT_FOR_SPEED.5" valueType="enumerated"/>
+</tool>
+<tool id="com.ti.ccstudio.buildDefinitions.C6000_6.1.exe.linkerDebug.1545787422" name="C6000 Linker" superClass="com.ti.ccstudio.buildDefinitions.C6000_6.1.exe.linkerDebug">
+<option id="com.ti.ccstudio.buildDefinitions.C6000_6.1.linkerID.OUTPUT_FILE.1557048222" superClass="com.ti.ccstudio.buildDefinitions.C6000_6.1.linkerID.OUTPUT_FILE" value="&quot;RTDSP.out&quot;" valueType="string"/>
+<option id="com.ti.ccstudio.buildDefinitions.C6000_6.1.linkerID.MAP_FILE.2006984244" superClass="com.ti.ccstudio.buildDefinitions.C6000_6.1.linkerID.MAP_FILE" value="&quot;RTDSP.map&quot;" valueType="string"/>
+<option id="com.ti.ccstudio.buildDefinitions.C6000_6.1.linkerID.LIBRARY.455738212" superClass="com.ti.ccstudio.buildDefinitions.C6000_6.1.linkerID.LIBRARY" valueType="libs">
+<listOptionValue builtIn="false" value="&quot;rts6700.lib&quot;"/>
+<listOptionValue builtIn="false" value="&quot;${CCS_INSTALL_ROOT}\C6000\dsk6713\FFT\complex.obj&quot;"/>
+<listOptionValue builtIn="false" value="&quot;${CCS_INSTALL_ROOT}\C6000\dsk6713\FFT\fft_functions.obj&quot;"/>
+<listOptionValue builtIn="false" value="&quot;${CCS_INSTALL_ROOT}\C6000\csl\lib\csl6713.lib&quot;"/>
+<listOptionValue builtIn="false" value="&quot;${CCS_INSTALL_ROOT}\C6000\dsk6713\lib\dsk6713bslccsv4.lib&quot;"/>
+</option>
+<option id="com.ti.ccstudio.buildDefinitions.C6000_6.1.linkerID.SEARCH_PATH.646267966" superClass="com.ti.ccstudio.buildDefinitions.C6000_6.1.linkerID.SEARCH_PATH" valueType="stringList">
+<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/lib&quot;"/>
+<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
+<listOptionValue builtIn="false" value="&quot;${RTDX_LIB_DIR}&quot;"/>
+<listOptionValue builtIn="false" value="&quot;${BIOS_LIB_DIR}&quot;"/>
+</option>
+<option id="com.ti.ccstudio.buildDefinitions.C6000_6.1.linkerID.generatedLinkerCommandFiles.1314656588" superClass="com.ti.ccstudio.buildDefinitions.C6000_6.1.linkerID.generatedLinkerCommandFiles" valueType="libs">
+<listOptionValue builtIn="false" value="&quot;$(GEN_CMDS_QUOTED)&quot;"/>
+</option>
+</tool>
+<tool id="com.ti.rtsc.buildDefinitions.DSPBIOS_5.40.tool.956567681" name="TConf Script Compiler" superClass="com.ti.rtsc.buildDefinitions.DSPBIOS_5.40.tool"/>
+<macros expandEnvironmentMacros="true"/>
+</toolChain>
+</configuration>
+<configuration artifactExtension="out" artifactName="RTDSP" description="" id="com.ti.ccstudio.buildDefinitions.C6000.Release.1767910452" name="Release" parent="com.ti.ccstudio.buildDefinitions.C6000.Release">
+<toolChain id="com.ti.ccstudio.buildDefinitions.C6000_6.1.exe.ReleaseToolchain.105252348" name="TI Code Generation Tools" superClass="com.ti.ccstudio.buildDefinitions.C6000_6.1.exe.ReleaseToolchain" targetTool="com.ti.ccstudio.buildDefinitions.C6000_6.1.exe.linkerRelease.1493013882">
+<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.1478762954" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="6.1.15" valueType="string"/>
+<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.699736984" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
+<listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=com.ti.ccstudio.deviceModel.C6000.GenericC67xxDevice"/>
+<listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>
+<listOptionValue builtIn="false" value="IS_ELF=false"/>
+<listOptionValue builtIn="false" value="LINKER_COMMAND_FILE="/>
+<listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=rts6700.lib"/>
+<listOptionValue builtIn="false" value="IS_ASSEMBLY_ONLY=false"/>
+<listOptionValue builtIn="false" value="CCS_MBS_VERSION=4.1.3"/>
+<listOptionValue builtIn="false" value="DSPBIOS_VERSION=5.41.02.14"/>
+<listOptionValue builtIn="false" value="PROJECT_KIND=com.ti.ccstudio.managedbuild.core.ProjectKind_Executable"/>
+</option>
+<tool id="com.ti.ccstudio.buildDefinitions.C6000_6.1.exe.compilerRelease.836343254" name="C6000 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C6000_6.1.exe.compilerRelease">
+<option id="com.ti.ccstudio.buildDefinitions.C6000_6.1.compilerID.DIAG_WARNING.862647047" superClass="com.ti.ccstudio.buildDefinitions.C6000_6.1.compilerID.DIAG_WARNING" valueType="stringList">
+<listOptionValue builtIn="false" value="225"/>
+</option>
+<option id="com.ti.ccstudio.buildDefinitions.C6000_6.1.compilerID.SILICON_VERSION.830557753" superClass="com.ti.ccstudio.buildDefinitions.C6000_6.1.compilerID.SILICON_VERSION" value="6700" valueType="string"/>
+<option id="com.ti.ccstudio.buildDefinitions.C6000_6.1.compilerID.INCLUDE_PATH.2011770897" superClass="com.ti.ccstudio.buildDefinitions.C6000_6.1.compilerID.INCLUDE_PATH" valueType="includePath">
+<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
+<listOptionValue builtIn="false" value="&quot;${PROJECT_BUILD_DIR}&quot;"/>
+<listOptionValue builtIn="false" value="&quot;${BIOS_INCLUDE_DIR}&quot;"/>
+<listOptionValue builtIn="false" value="&quot;${RTDX_INCLUDE_DIR}&quot;"/>
+</option>
+</tool>
+<tool id="com.ti.ccstudio.buildDefinitions.C6000_6.1.exe.linkerRelease.1493013882" name="C6000 Linker" superClass="com.ti.ccstudio.buildDefinitions.C6000_6.1.exe.linkerRelease">
+<option id="com.ti.ccstudio.buildDefinitions.C6000_6.1.linkerID.OUTPUT_FILE.1424502267" superClass="com.ti.ccstudio.buildDefinitions.C6000_6.1.linkerID.OUTPUT_FILE" value="&quot;RTDSP.out&quot;" valueType="string"/>
+<option id="com.ti.ccstudio.buildDefinitions.C6000_6.1.linkerID.MAP_FILE.570861376" superClass="com.ti.ccstudio.buildDefinitions.C6000_6.1.linkerID.MAP_FILE" value="&quot;RTDSP.map&quot;" valueType="string"/>
+<option id="com.ti.ccstudio.buildDefinitions.C6000_6.1.linkerID.LIBRARY.64030744" superClass="com.ti.ccstudio.buildDefinitions.C6000_6.1.linkerID.LIBRARY" valueType="libs">
+<listOptionValue builtIn="false" value="&quot;rts6700.lib&quot;"/>
+</option>
+<option id="com.ti.ccstudio.buildDefinitions.C6000_6.1.linkerID.SEARCH_PATH.730230968" superClass="com.ti.ccstudio.buildDefinitions.C6000_6.1.linkerID.SEARCH_PATH" valueType="stringList">
+<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/lib&quot;"/>
+<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
+<listOptionValue builtIn="false" value="&quot;${RTDX_LIB_DIR}&quot;"/>
+<listOptionValue builtIn="false" value="&quot;${BIOS_LIB_DIR}&quot;"/>
+</option>
+</tool>
+<tool id="com.ti.rtsc.buildDefinitions.DSPBIOS_5.40.tool.1069431064" name="TConf Script Compiler" superClass="com.ti.rtsc.buildDefinitions.DSPBIOS_5.40.tool"/>
+</toolChain>
+</configuration>
+</project>
+</ManagedProjectBuildInfo>
diff --git a/Project/RTDSP/.cdtproject b/Project/RTDSP/.cdtproject
new file mode 100644
index 0000000..3ea5a79
--- /dev/null
+++ b/Project/RTDSP/.cdtproject
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse-cdt version="2.0"?>
+
+<cdtproject id="org.eclipse.cdt.managedbuilder.core.managedMake">
+<extension id="org.eclipse.cdt.managedbuilder.core.ManagedBuildManager" point="org.eclipse.cdt.core.ScannerInfoProvider"/>
+<extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>
+<data>
+<item id="org.eclipse.cdt.core.pathentry">
+<pathentry kind="src" path=""/>
+<pathentry kind="out" path=""/>
+<pathentry kind="con" path="org.eclipse.rtsc.xdctools.buildDefinitions.XDC.XDCROOT_CONTAINER"/>
+<pathentry kind="con" path="org.eclipse.cdt.managedbuilder.MANAGED_CONTAINER"/>
+<pathentry kind="con" path="com.ti.ccstudio.managedbuild.core.CCS_CONTAINER"/>
+</item>
+</data>
+</cdtproject>
diff --git a/Project/RTDSP/.gconf/RTDSP/lab3/RTDSP/dsp_bios_.cdb b/Project/RTDSP/.gconf/RTDSP/lab3/RTDSP/dsp_bios_.cdb
new file mode 100644
index 0000000..da1e893
--- /dev/null
+++ b/Project/RTDSP/.gconf/RTDSP/lab3/RTDSP/dsp_bios_.cdb
@@ -0,0 +1,8762 @@
+//!
+//# c6x1x.cdb 5.25.25
+
+object CACHE_L2 :: MEM {
+ param iComment :: "Generated by Cache Settings in GBL"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param base :: 262144
+ param len :: 0
+ param iAllocHeap :: 0
+ param iHeapSize :: 32768
+ param iUserHeapId :: 0
+ param iHeapId :: @segment_name
+ param iReqHeapCount :: 0
+ param space :: "Cache"
+ param dynamicLoading :: 0
+ param iIsModifiable :: 1
+}
+
+class Module {
+ prop Visible :: 1
+ prop Writable :: 1
+ prop IsConfMod :: (if self.gNumOf > 0 {1} else {0})
+ prop NoGen :: 0
+ prop IsDirty :: ($a = self.gDirty, self.gDirty = 0, $a)
+ prop dataSize :: 0
+ prop error :: # ("Error: ", self.name, $1)
+ prop warning :: ("Warning ...", self.name, $1)
+ prop minBit :: ($a = 0, while (($1 & (1 << $a)) && $a < 32) {++$a}, $a)
+ prop name :: ("<unnamed module>")
+ prop numBit :: ($a = $b = 0, while ($a < 32) {if ($1 & (1 << $a)) {++$b} }, $b)
+}
+
+class ObjectMgr {
+ isa Module
+ prop CanCreate :: (if (self.gNumOf < self.maxObjs()) {self.localCanCreate()} else {self.warning("Maximum number of objects already created")})
+ prop CanDelete :: (if (self.iDelMsg == "ok" || (self.iDelUser == self.gUser)) {if (self.iId >= 0 && self.iIsUsed) {self.localCanDelete()} else {self.warning("Object already deleted")}} else {self.warning(self.iDelMsg)})
+ prop Create :: ((self.gUser = (if $0 > 0 {$1} else {"USER"})), if (($a = self.CanCreate()) == "ok") {if (($a = self.localCreate()) == "ok") {if (self.iIsUsed == 0) {self.mkId(if $0 > 1 {$2} else {-1}), self.iIsUsed = 1, GlobalStatus.gDirty = 1, self.gDirty = 1} } } , (self.gUser = "USER"), $a)
+ prop Delete :: ((self.gUser = (if $0 > 0 {$1} else {"USER"})), if (($a = self.CanDelete()) == "ok") {if (($a = self.localDelete()) == "ok") {self.rmId(self.iId), self.iIsUsed = 0, GlobalStatus.gDirty = 1, self.gDirty = 1} } , (self.gUser = "USER"), $a)
+ prop GetSetOf :: (self.gSetOf)
+ prop GetNumOf :: (self.gNumOf)
+ prop GetObjId :: (self.iId)
+ prop GetPriority :: (self.iId)
+ prop SetPriority :: (self.iId = $1)
+ prop IsConfObj :: (self.iIsUsed)
+ prop localCanCreate :: ("ok")
+ prop localCanDelete :: ("ok")
+ prop localCreate :: ("ok")
+ prop localDelete :: ("ok")
+ prop localInit :: (0)
+ prop isFinite :: (if self.maxObjs() <= GBL.DSPWORDSIZE {1} else {0})
+ prop mkId :: (if (self.isFinite()) {if ($1 < 0) {self.iId = self.minBit(self.gSetOf)} else {self.iId = $1}, (self.gSetOf |= (1 << self.iId))} else {self.iId = 0}, ++self.gNumOf, self.iId)
+ prop rmId :: (if (self.isFinite()) {self.gSetOf &= ~(1 << self.iId)} , --self.gNumOf)
+ prop maxObjs :: (GBL.DSPWORDSIZE)
+ prop isDriver :: (0)
+ prop SortChildHierView :: (1)
+}
+
+type GlobalStatus {
+ prop NoGen :: 1
+ prop Visible :: 0
+ prop Writable :: 0
+ prop Label :: "Current Configuration Status"
+ prop GlobalIcon :: 101
+ prop InstanceIcon :: 101
+ prop GlobalHelpTopic :: (100)
+ prop GlobalPropertyPage :: ("{9D3AD931-847B-11d0-A621-0000C070F3E9}")
+ prop Status :: (# self.SeedVersion, # self.MinStackSize, # self.SysDataSize)
+ global GENLIB :: "bioscfg.dll" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Generation Library"
+ prop NoGen :: 1
+ prop Visible :: 0
+ prop Writable :: 1
+ }
+ global DATE :: "Thu Jan 18 13:48:06 2018" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global GCONFVERS :: "@(#)*** xdcutils-e03" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global SysDataSize :: = ($a = 0, scan ($i; nil) {if ($i.dataSize() != nil) {$a = $a + $i.dataSize()} }, $a) {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: "Estimated Data Size: %d"
+ prop StatusField :: 1
+ prop NoGen :: 1
+ }
+ global MinStackSize :: = ($a = ((2 * (2)) * 4), $a = $a + ((2 * (5)) * 4), $a = $a + ((0) * 4), $b = 0, scan ($i; CLK) {if ($i.IsConfObj()) {$b |= 1} }, $a = $a + (((2 * (2)) * 4) * $b), $b = 0, scan ($i; HWI) {if ($i.IsConfObj()) {if ($i != HWI_NMI && $i != HWI_RESET) {if (($i.function != @HWI_unused) && ($i.function != @RESERVED)) {$b++} } } }, $a = $a + (((12 + 14 + 2) * 4) * $b), $b = 0, scan ($i; SWI) {if ($i.IsConfObj()) {if ($i.priority > $b) {$b = $i.priority} } }, $a = $a + ((((2 * 2) + 18 + (2 * 4)) * 4) * $b), $b = 0, scan ($i; PRD) {if ($i.IsConfObj()) {$b |= 1} }, $a = $a + (((2 * (3)) * 4) * $b), $a) {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: "Est. Min. Stack Size (MAUs): %d"
+ prop StatusField :: 1
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global ConfigWarnings :: = (if (self.MinStackSize > MEM.STACKSIZE) {"Application stack size is too small; decrease the number of SWI priorities or increase the stack in MEM."} else {"None"}) {
+ prop Label :: "Warnings"
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global SeedVersion :: = "@(#)*** cuda-u25x" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+class EModule {
+ isa Module
+ prop IsXMod :: (1)
+ prop Vendor :: ("")
+ prop Version :: ("")
+}
+
+class EObjectMgr {
+ isa ObjectMgr
+ prop IsXMod :: (1)
+ prop Vendor :: ("")
+ prop Version :: ("")
+}
+
+class ModuleFolder {
+ isa Module
+ prop NoGen :: 1
+}
+
+type SYSTEM {
+ isa ModuleFolder
+ prop Label :: "System"
+ prop GlobalIcon :: 151
+ prop GlobalHelpTopic :: (500)
+ prop GlobalPropertyPage :: ("{B936FB91-52A5-11d4-947C-0050048381B7}")
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+type INS {
+ isa ModuleFolder
+ prop Label :: "Instrumentation"
+ prop GlobalIcon :: 152
+ prop GlobalHelpTopic :: (501)
+ prop GlobalPropertyPage :: ("{053C8F90-52A6-11d4-947C-0050048381B7}")
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+type SCH {
+ isa ModuleFolder
+ prop Label :: "Scheduling"
+ prop GlobalIcon :: 153
+ prop GlobalHelpTopic :: (502)
+ prop GlobalPropertyPage :: ("{053C8F91-52A6-11d4-947C-0050048381B7}")
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+type SYN {
+ isa ModuleFolder
+ prop Label :: "Synchronization"
+ prop GlobalIcon :: 154
+ prop GlobalHelpTopic :: (503)
+ prop GlobalPropertyPage :: ("{053C8F92-52A6-11d4-947C-0050048381B7}")
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+type IOF {
+ isa ModuleFolder
+ prop Label :: "Input/Output"
+ prop GlobalIcon :: 155
+ prop GlobalHelpTopic :: (504)
+ prop GlobalPropertyPage :: ("{053C8F93-52A6-11d4-947C-0050048381B7}")
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+type SIODRIVER {
+ isa ModuleFolder
+ prop Label :: "Device Drivers"
+ prop IsContainedIn :: IOF
+ prop GlobalIcon :: 127
+ prop GlobalHelpTopic :: (505)
+ prop GlobalPropertyPage :: ("{A2BCEC70-5365-11d4-947C-0050048381B7}")
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+type PROJ {
+ isa ObjectMgr
+ prop name :: "PROJ"
+ prop maxObjs :: 0
+ prop Label :: "Project Manager"
+ prop GlobalIcon :: 121
+ prop InstanceIcon :: 122
+ prop InstanceHelpTopic :: (201)
+ prop GlobalHelpTopic :: (101)
+ prop InstancePropertyPage :: ("{AC3C77D1-890B-11d0-A621-0000C070F3E9}")
+ prop GlobalPropertyPage :: ("{AC3C77D2-890B-11d0-A621-0000C070F3E9}")
+ prop NoGen :: 1
+ prop Visible :: 0
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global ALIASALL :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Generate C Names for All Objects"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global IGNOREWARNING :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Ignore Warnings"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global LIBPATH :: ".;../../lib;$(BIOSROOT)/lib" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Library Search Path"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global INCPATH :: ".;../../include;$(BIOSROOT)/include" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Include File Search Path"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global OBJDIR :: "." {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Object file directory"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global EXTEXE :: "out" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Executable File Extension"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global EXTLIB :: "lib" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Library File Extension"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global EXTASM :: "asm" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Assembly Language Source File Extension"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global EXTOBJ :: "obj" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Object File Extension"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst projType :: "Executable" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "Executable,Library"
+ prop Label :: "Target Type"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst projName :: "$(PROG)" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Target File Name"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst useRpt :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Use RPT Instruction"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst minimizeSpace :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Optimize for Space over Time"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst tmx :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Avoid TMX Silicon Bugs"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+}
+
+type PROJ_FILE {
+ isa ObjectMgr
+ prop Visible :: 0
+ prop Label :: "Project File Manager"
+ prop InstanceHelpTopic :: (BIOSHELP_PROJ_FILE_INSTANCE)
+ prop GlobalHelpTopic :: (BIOSHELP_PROJ_FILE_GLOBAL)
+ prop InstancePropertyPage :: ("{AC3C77D3-890B-11d0-A621-0000C070F3E9}")
+ prop GlobalPropertyPage :: ("{AC3C77D4-890B-11d0-A621-0000C070F3E9}")
+ prop NoGen :: 1
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst elemType :: "C Source" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "C Source,ASM Source,Library,Linker Command File"
+ prop Label :: "Input File Type"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst elemName :: "$(PROG)" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Input File Name"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst optLevel :: "register+local+global" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "register,register+local,register+local+global,register+local+global+file"
+ prop Label :: "Optimization Level"
+ prop Visible :: 0
+ prop Writable :: if self.elemType == "C Source" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst inline :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Inline Expansion"
+ prop Visible :: 0
+ prop Writable :: if self.elemType == "C Source" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst definitions :: "" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Additional Definitions"
+ prop Visible :: 0
+ prop Writable :: if self.elemType == "C Source" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iParent :: 0 {
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+}
+
+type GBL {
+ isa Module
+ prop name :: "GBL"
+ prop Label :: "Global Settings"
+ prop IsContainedIn :: SYSTEM
+ prop cGen :: 0
+ prop GenLinkPrologue :: ("%10S\nSECTIONS {%4t\n.vers (COPY): {} /* version information */%0t\n}\n\n-priority\n--trampolines\n%25S%1S%22S-l%2S%23S%3S\n%24S%15S%4S%16S%18S%5S%6S%12S%7S%17S\0, _autoInitStr, _board, _librarySuffix, _devLibStr, _biosLibStr, _rtdxLibStr, _rtsLibStr, _librarySuffix, _compilerModel, _lnkCmdStr, _lnkCmdFile, _cslLibStr, _chipType, _librarySuffix, _chipStr, _sioLibStr, _mpcLibStr, _bios6xLibStr, _bios6xClkType, _instStr, _rtsNameStr, _romStr, _biosRomStr, _logLibStr, _SKLibStr")
+ prop poolStr :: (if (self.LINKWITHROM == 0) {""} else {if POOL.USEPOOL {""} else {"_POOL_config=0;\n"}})
+ prop msgqStr :: (if (self.LINKWITHROM == 0) {""} else {if MSGQ.USEMSGQ {""} else {"_MSGQ_config=0;\n"}})
+ prop GenLinkEpilogue :: ("%0t_GBL_CACHE = GBL_CACHE;\n%1S%2S\0, poolStr, msgqStr")
+ prop ConfigurationClass :: "{2779A121-92CC-11d1-A63D-0000C070F3E9}"
+ prop GlobalIcon :: 105
+ prop InstanceIcon :: 106
+ prop GlobalHelpTopic :: (103)
+ prop InstanceHelpTopic :: (103)
+ prop InstancePropertyPage :: ("{B7240DE4-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop GlobalPropertyPage :: ("{B7240DE5-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop localInit :: (RTA_toHost.Create("HST"), RTA_toHost.bufseg = HST.OBJMEMSEG, RTA_fromHost.Create("HST"), RTA_fromHost.bufseg = HST.OBJMEMSEG, RTA_dispatcher.Create("HST"), IDL_busyObj.Create("IDL"), IDL.USEIDLBUSYOBJ = 1, IDL_cpuLoad.Create("IDL"))
+ prop chipcall :: ("ok")
+ prop IsConfMod :: 1
+ prop ucompare :: ($e = "ok", $a = ($1 >> 31) & 0x00000001, $b = ($2 >> 31) & 0x00000001, $c = $1 & 0x7fffffff, $d = $2 & 0x7fffffff, if ($a > $b) {$e = "gt"} else {if ($a == $b) {if ($c > $d) {$e = "gt"} else {if ($c == $d) {$e = "eq"} else {$e = "lt"}}} else {$e = "lt"}}, $e)
+ prop L2Check :: (if (self.DSPSUBTYPE == 6211 || self.DSPSUBTYPE == 6711) {self.PCC = "mapped", if (self.C641XL2CONFIGURE == 1) {self.C641XL2CONFIGURE = 0, self.L2CONFIGALLOC = 0} , self.L2CacheSizeCheck()} else {if (self.DSPSUBTYPE == 6400) {self.PCC = "mapped", if (self.C621XL2CONFIGURE == 1) {self.C621XL2CONFIGURE = 0} , self.L2CacheSizeCheck()} else {if (self.C621XL2CONFIGURE == 1) {self.C621XL2CONFIGURE = 0, self.L2CacheSizeCheck()} else {if (self.C641XL2CONFIGURE == 1) {self.C641XL2CONFIGURE = 0, self.L2CONFIGALLOC = 0, self.L2CacheSizeCheck()} }}})
+ prop C621xL2CacheSizeCheck :: ($e = "ok", $a = CACHE_L2.base, $b = CACHE_L2.len, if (self.C621XL2CONFIGURE == 0) {CACHE_L2.Delete("MEM")} else {if (self.L2MODEOPTS == "SRAM") {CACHE_L2.base = CACHE_L2.base + CACHE_L2.len, CACHE_L2.len = 0x0, CACHE_L2.Delete("MEM")} else {if (self.L2MODEOPTS == "1-way cache") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x4000, CACHE_L2.len = 0x4000} else {if (self.L2MODEOPTS == "2-way cache") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x8000, CACHE_L2.len = 0x8000} else {if (self.L2MODEOPTS == "3-way cache") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0xc000, CACHE_L2.len = 0xc000} else {if (self.L2MODEOPTS == "4-way cache") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x10000, CACHE_L2.len = 0x10000} }}}}}, $e)
+ prop C641xL2CacheSizeCheck :: ($e = "ok", $a = CACHE_L2.base, $b = CACHE_L2.len, if (self.C641XL2CONFIGURE == 0) {CACHE_L2.Delete("MEM")} else {if (self.C641XL2MODEOPTS == "4-way cache (0k)") {CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x0, CACHE_L2.len = 0x0, CACHE_L2.Delete("MEM")} else {if (self.C641XL2MODEOPTS == "4-way cache (32k)") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x8000, CACHE_L2.len = 0x8000} else {if (self.C641XL2MODEOPTS == "4-way cache (64k)") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x10000, CACHE_L2.len = 0x10000} else {if (self.C641XL2MODEOPTS == "4-way cache (128k)") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x20000, CACHE_L2.len = 0x20000} else {if (self.C641XL2MODEOPTS == "4-way cache (256k)") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x40000, CACHE_L2.len = 0x40000} }}}}}, $e)
+ prop C64PL1PCacheSizeCheck :: ($e = "ok", if (self.C64PL2CONFIGURE == 0) {self.C64PL1PCFG = "32k", CACHE_L1P.Create("MEM"), CACHE_L1P.base = CACHE_L1P.base + CACHE_L1P.len - 0x8000, CACHE_L1P.len = 0x8000} else {if (self.C64PL1PCFG == "0k") {CACHE_L1P.base = CACHE_L1P.base + CACHE_L1P.len - 0x0, CACHE_L1P.len = 0x0, CACHE_L1P.Delete("MEM")} else {if (self.C64PL1PCFG == "4k") {CACHE_L1P.Create("MEM"), CACHE_L1P.base = CACHE_L1P.base + CACHE_L1P.len - 0x1000, CACHE_L1P.len = 0x1000} else {if (self.C64PL1PCFG == "8k") {CACHE_L1P.Create("MEM"), CACHE_L1P.base = CACHE_L1P.base + CACHE_L1P.len - 0x2000, CACHE_L1P.len = 0x2000} else {if (self.C64PL1PCFG == "16k") {CACHE_L1P.Create("MEM"), CACHE_L1P.base = CACHE_L1P.base + CACHE_L1P.len - 0x4000, CACHE_L1P.len = 0x4000} else {if (self.C64PL1PCFG == "32k") {CACHE_L1P.Create("MEM"), CACHE_L1P.base = CACHE_L1P.base + CACHE_L1P.len - 0x8000, CACHE_L1P.len = 0x8000} else {$e = self.error("Unknown cache size")}}}}}}, $e)
+ prop C64PL1DCacheSizeCheck :: ($e = "ok", if (self.C64PL2CONFIGURE == 0) {self.C64PL1DCFG = "32k", CACHE_L1D.Create("MEM"), CACHE_L1D.base = CACHE_L1D.base + CACHE_L1D.len - 0x8000, CACHE_L1D.len = 0x8000} else {if (self.C64PL1DCFG == "0k") {CACHE_L1D.base = CACHE_L1D.base + CACHE_L1D.len - 0x0, CACHE_L1D.len = 0x0, CACHE_L1D.Delete("MEM")} else {if (self.C64PL1DCFG == "4k") {CACHE_L1D.Create("MEM"), CACHE_L1D.base = CACHE_L1D.base + CACHE_L1D.len - 0x1000, CACHE_L1D.len = 0x1000} else {if (self.C64PL1DCFG == "8k") {CACHE_L1D.Create("MEM"), CACHE_L1D.base = CACHE_L1D.base + CACHE_L1D.len - 0x2000, CACHE_L1D.len = 0x2000} else {if (self.C64PL1DCFG == "16k") {CACHE_L1D.Create("MEM"), CACHE_L1D.base = CACHE_L1D.base + CACHE_L1D.len - 0x4000, CACHE_L1D.len = 0x4000} else {if (self.C64PL1DCFG == "32k") {CACHE_L1D.Create("MEM"), CACHE_L1D.base = CACHE_L1D.base + CACHE_L1D.len - 0x8000, CACHE_L1D.len = 0x8000} else {$e = self.error("Unknown cache size")}}}}}}, $e)
+ prop C64PL2CacheSizeCheck :: ($e = "ok", if (self.C64PL2CONFIGURE == 0) {CACHE_L2.Delete("MEM")} else {if (self.C64PL2MODEOPTS == "0k") {CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x0, CACHE_L2.len = 0x0, CACHE_L2.Delete("MEM")} else {if (self.C64PL2MODEOPTS == "32k") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x8000, CACHE_L2.len = 0x8000} else {if (self.C64PL2MODEOPTS == "64k") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x10000, CACHE_L2.len = 0x10000} else {if (self.C64PL2MODEOPTS == "128k") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x20000, CACHE_L2.len = 0x20000} else {if (self.C64PL2MODEOPTS == "256k") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x40000, CACHE_L2.len = 0x40000} else {if (self.C64PL2MODEOPTS == "512k") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x80000, CACHE_L2.len = 0x80000} else {if (self.C64PL2MODEOPTS == "1024k") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x100000, CACHE_L2.len = 0x100000} else {$e = self.error("Unknown cache size")}}}}}}}}, $e)
+ prop L2CacheSizeCheck :: ($e = "ok", scan ($i; MEM) {if ($i == CACHE_L2) {if self.C621XL2CONFIGURE {$e = self.C621xL2CacheSizeCheck()} else {if self.C641XL2CONFIGURE {$e = self.C641xL2CacheSizeCheck()} else {if self.DSPSUBTYPE == 6211 || self.DSPSUBTYPE == 6711 {$e = self.C621xL2CacheSizeCheck()} else {if self.DSPSUBTYPE == 6400 {$e = self.C641xL2CacheSizeCheck()} else {{CACHE_L2.base = 0x0, CACHE_L2.len = 0x0, CACHE_L2.Delete("MEM")}}}}}} }, $e)
+ prop setCPUClock :: ($e = "ok", if ($1 != self.CPUCLOCK) {$a = self.CPUCLOCK, self.CPUCLOCK = $1, if (GBL.CALLBACKOBJ != nil) {$e = GBL.CALLBACKOBJ.call()} , if ($e != "ok") {self.CPUCLOCK = $a, GBL.CALLBACKOBJ.call()} } , if ($e == "ok") {"ok"} else {self.error($e)})
+ prop setL2MODE :: (if (self.L2MODEOPTS == "SRAM") {0x0} else {if (self.L2MODEOPTS == "1-way cache") {0x1} else {if (self.L2MODEOPTS == "2-way cache") {0x2} else {if (self.L2MODEOPTS == "3-way cache") {0x3} else {0x7}}}})
+ prop setC641XL2MODE :: (if (self.C641XL2MODEOPTS == "4-way cache (0k)") {0x0} else {if (self.C641XL2MODEOPTS == "4-way cache (32k)") {0x1} else {if (self.C641XL2MODEOPTS == "4-way cache (64k)") {0x2} else {if (self.C641XL2MODEOPTS == "4-way cache (128k)") {0x3} else {0x7}}}})
+ prop _cint00Str :: "-u_c_int00 %24t/* link with alternate boot.obj */%0t\n"
+ prop _autoInitStr :: ""
+ prop _board :: (if (HST.RTDX == 1) {"lnkrtdx"} else {if (HST.DSM == 1) {"lnkdsm"} else {if (HST.EVM54 == 1) {"lnkevm54"} else {if (HST.BIOSLINK == 1) {"lnkbioslink"} else {"lnknone"}}}})
+ prop _dsptype :: GBL.DSPTYPE
+ prop _instStr :: if self.INSTRUMENTED {""} else {"_NONINST"}
+ prop _rtsNameStr :: (self.RTSLIB)
+ prop _biosLibStr :: "-lbios%20S%23S%8S %24t/* DSP/BIOS support */%0t\n"
+ prop _compilerModel :: if self.ENDIAN == "big" {"e"} else {""}
+ prop _librarySuffix :: (if (self.DSPSUBTYPE == 6700 || self.DSPSUBTYPE == 6711 || self.DSPSUBTYPE == 6712 || self.DSPSUBTYPE == 6713) {if (self.ENDIAN == "big") {".a67e"} else {".a67"}} else {if (self.DSPSUBTYPE == 6400) {if (self.ENDIAN == "big") {".a64e"} else {".a64"}} else {if (self.DSPSUBTYPE == 6499) {if (self.ENDIAN == "big") {".a64Pe"} else {".a64P"}} else {if (self.DSPSUBTYPE == 6799) {if (self.ENDIAN == "big") {".a67Pe"} else {".a67P"}} else {if ((self.DSPSUBTYPE == 6747) || (self.DSPSUBTYPE == 6748)) {if (self.ENDIAN == "big") {".a674e"} else {".a674"}} else {if (self.ENDIAN == "big") {".a62e"} else {".a62"}}}}}})
+ prop _rtdxLibStr :: if RTDX.USERTDX == 0 {""} else {if RTDX.RTDXTYPE == "JTAG" {"-lrtdx%9S.lib %24t/* RTDX support */%0t\n"} else {if RTDX.RTDXTYPE == "Simulator" {"-lrtdxsim%9S.lib %24t/* RTDX support */%0t\n"} else {"-lrtdxhs%9S.lib %24t/* RTDX support */%0t\n"}}}
+ prop _rtsLibStr :: (if self.SPECIFYRTSLIB {"-l%21S%24t/* C and C++ run-time library support */%0t\n"} else {if self.DSPSUBTYPE == 6700 || self.DSPSUBTYPE == 6711 || self.DSPSUBTYPE == 6712 || self.DSPSUBTYPE == 6713 {"-lrts6700%9S.lib%24t/* C and C++ run-time library support */%0t\n"} else {if self.DSPSUBTYPE == 6400 {"-lrts6400%9S.lib%24t/* C and C++ run-time library support */%0t\n"} else {if self.DSPSUBTYPE == 6799 {"-lrts67plus%9S.lib%24t/* C and C++ run-time library support */%0t\n"} else {if self.DSPSUBTYPE == 6499 {"-lrts64plus%9S.lib%24t/* C and C++ run-time library support */%0t\n"} else {if ((self.DSPSUBTYPE == 6747) || (self.DSPSUBTYPE == 6748)) {"-lrts6740%9S.lib%24t/* C and C++ run-time library support */%0t\n"} else {"-lrts6200%9S.lib%24t/* C and C++ run-time library support */%0t\n"}}}}}})
+ prop _bios6xClkType :: (if self.CLKTYPE == 6000 {"C6000"} else {if self.CLKTYPE == 700 {"DA700"} else {if (self.CLKTYPE == 420 || self.CLKTYPE == 6424) {if self.USEIDMA0DISPATCHER {"DM420IDMA0"} else {"DM420"}} else {if self.CLKTYPE == 2430 {"2430"} else {if self.CLKTYPE == 6482 {"TCI6482"} else {if self.CLKTYPE == 6486 {"TCI6486"} else {if self.CLKTYPE == 6488 {"TCI6488"} else {if self.CLKTYPE == 442 {"DRA442"} else {if self.CLKTYPE == 3430 {"3430"} else {if self.CLKTYPE == 6467 {"DM6467"} else {if self.CLKTYPE == 761990 {"F761990"} else {""}}}}}}}}}}})
+ prop _bios6xLibStr :: ("-lbios%19S%8S%24t/* BIOS clock specific library */%0t\n-lbios6x1x%8S%24t/* BIOS c6x1x specific library */%0t\n")
+ prop _chipStr :: ""
+ prop _pmiLibStr :: ""
+ prop _pmiVoltLibStr :: ""
+ prop _pmiVoltControlLibStr :: ""
+ prop _psclLibStr :: ""
+ prop _psclCfgLibStr :: ""
+ prop _psclConfigLibStr :: ""
+ prop _mpcLibStr :: ""
+ prop _lnkCmdFile :: MEM.LNKCMDFILE
+ prop _lnkCmdStr :: (if (MEM.LNKCMDFILE == "") {""} else {"-l%11S %24t/* User Specified Linker cmd file */%0t\n"})
+ prop _sioLibStr :: if SIO.USEISSUERECLAIM == 1 {"-lsioir%23S%8S %24t/* supports SIO Issue/Reclaim model only */%0t\n"} else {"-lsioboth%23S%8S %24t/* supports both SIO models */%0t\n"}
+ prop _devLibStr :: "-ldrivers%23S%14S %24t/* device drivers support */%0t\n"
+ prop _cslLibStr :: ""
+ prop _chipType :: ""
+ prop _logLibStr :: if LOG.TS {"-llog8%3S\n"} else {""}
+ prop _romStr :: if self.LINKWITHROM {"-lromC672x.out\n-lromC672x.cmd\n"} else {""}
+ prop _biosRomStr :: if self.LINKWITHROM {"_BIOSROM"} else {""}
+ prop _SKLibStr :: ""
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global PRODUCT :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ prop Visible :: 0
+ prop Writable :: 1
+ prop EnvField :: 1
+ }
+ global CALLBACKOBJ :: CLK {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CHIPCHAIN :: nil {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global TRACE :: "CD-01234567" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Trace Mask"
+ prop NoGen :: 1
+ prop Visible :: 0
+ prop Writable :: 0
+ }
+ global BOARD :: "c6211" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Target Board Name"
+ prop JSName :: "BOARDNAME"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global ROM :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Link to ROM Library"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global CPUCLOCK :: 225.000000 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global PROCID :: = 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Label :: "Processor ID (PROCID)"
+ prop JSName :: "PROCID"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global CLKIN :: = 20000 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Label :: "Board Clock in KHz (Informational Only)"
+ prop JSName :: "CLKIN"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global FREQ :: 225000 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global MIPS :: 225.000000 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: 0x04
+ prop Format :: "%.4f"
+ prop Label :: "DSP Speed In MHz (CLKOUT)"
+ prop JSName :: "CLKOUT"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: ($a = self.MIPS, $b = if (GBL.DSPTYPE == 62) {$1} else {$1 * 2}, $e = "ok", self.MIPS = $1, self.FREQ = int(self.MIPS * 1000), if (($e = self.setCPUClock($b)) != "ok") {self.MIPS = $a} , $e)
+ }
+ global OSTYPE :: "BIOS" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "BIOS"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global DSPTYPE :: 62 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "DSP Major Type"
+ prop JSName :: "DSPTYPE"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global SPECIFYRTSLIB :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Specify RTS library"
+ prop JSName :: "SPECIFYRTSLIB"
+ prop NoGen :: 1
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ global RTSLIB :: "" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Run-Time Support Library"
+ prop JSName :: "RTSLIB"
+ prop NoGen :: 1
+ prop Visible :: 1
+ prop Writable :: self.SPECIFYRTSLIB
+ }
+ global DSPSUBTYPE :: 6713 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "6211,6711,6712,6713"
+ prop Label :: "DSP Type"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Set :: (self.DSPSUBTYPE = $1, self.L2Check(), "ok")
+ prop NoGen :: 0
+ }
+ global CLKTYPE :: 6000 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "CLK Type"
+ prop JSName :: "CLKTYPE"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global CHIPTYPE :: "6713" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "6211,6711,6712,6713,DA610,custom,other"
+ prop Label :: "Chip Support Library (CSL)"
+ prop JSName :: "CHIPTYPE"
+ prop NoGen :: 1
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Set :: (if ($1 == "6201" || $1 == "6202" || $1 == "6203" || $1 == "6204" || $1 == "6205") {self.DSPSUBTYPE = 6200} else {if ($1 == "6701") {self.DSPSUBTYPE = 6700} else {if ($1 == "6211") {self.DSPSUBTYPE = 6211} else {if ($1 == "6711" || $1 == "6712" || $1 == "6713" || $1 == "DA610") {if ($1 == "6711") {self.DSPSUBTYPE = 6711} , if ($1 == "6712") {self.DSPSUBTYPE = 6712} , if ($1 == "6713") {self.DSPSUBTYPE = 6713} } else {if ($1 == "DM642" || $1 == "6412" || $1 == "6414" || $1 == "6415" || $1 == "6416" || $1 == "6410" || $1 == "6413") {self.DSPSUBTYPE = 6400} }}}}, self.CHIPTYPE = $1, self.L2Check(), $e = "ok", if (GBL.CHIPCHAIN != nil) {$e = GBL.CHIPCHAIN.chipcall()} , $e)
+ }
+ global DISPCALLCSLCFGINIT :: = (self.CHIPTYPE != "other" && self.CHIPTYPE != "custom") {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Call CSL_cfgInit Initialization routine"
+ prop Visible :: 0
+ prop Writable :: self.SUPPORTCSL
+ prop NoGen :: 1
+ }
+ global DSPNAME :: "TMS320C62XX" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global DSPARITHMETIC :: = (if (GBL.DSPTYPE == 62 && (GBL.DSPSUBTYPE / 100) == 67) {"FLOAT"} else {"FIXED"}) {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "FIXED,FLOAT"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global DSPWORDSIZE :: = (if (GBL.DSPTYPE == 30 || GBL.DSPTYPE == 40 || GBL.DSPTYPE == 62) {32} else {16}) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "DSP Word Size"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global DSPCHARSIZE :: = (if GBL.DSPTYPE == 62 {8} else {if GBL.DSPSUBTYPE == 5599 {8} else {GBL.DSPWORDSIZE}}) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "DSP Byte Size"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global DATAPTRSIZE :: = (if (GBL.DSPTYPE == 62) {32} else {if (GBL.DSPTYPE == 54) {16} else {if (GBL.DSPTYPE == 55) {if (GBL.MEMORYMODEL == "SMALL") {16} else {23}} else {if (GBL.DSPTYPE == 28) {22} else {0}}}}) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop iComment :: "Size of the Data Pointer"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CODEPTRSIZE :: = (if (GBL.DSPTYPE == 62) {32} else {if (GBL.DSPTYPE == 54) {if (GBL.CALLMODEL == "near") {16} else {24}} else {if (GBL.DSPTYPE == 55) {24} else {if (GBL.DSPTYPE == 28) {22} else {0}}}}) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop iComment :: "Size of Code Pointer"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global ENDIAN :: "little" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "little,big"
+ prop Label :: "DSP Endian Mode"
+ prop JSName :: "ENDIANMODE"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: (self.ENDIAN = $1, "ok")
+ }
+ global BIGENDIAN :: = if self.ENDIAN == "little" {0} else {1} {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global AUTOINIT :: "ROM" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "ROM,RAM"
+ prop Label :: "C Autoinitialization Model"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global USERINIT :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Call User Init Function"
+ prop JSName :: "CALLUSERINITFXN"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (if ($1 == 0) {self.USERINITFXN = @_FXN_F_nop, self.USERINIT = $1} else {self.USERINIT = $1}, "ok")
+ }
+ global USERINITFXN :: @_GBL_setPLLto225MHz {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "User Init Function"
+ prop JSName :: "USERINITFXN"
+ prop Visible :: 1
+ prop Writable :: self.USERINIT
+ prop NoGen :: 0
+ }
+ global OLDAUTOCALCULATE :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "previous value for autocalculate"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global ENABLEINST :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable Real Time Analysis"
+ prop JSName :: "ENABLEINST"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (if ($1 != self.ENABLEINST) {if ($1) {RTA_toHost.Create("HST"), RTA_toHost.bufseg = HST.OBJMEMSEG, RTA_fromHost.Create("HST"), RTA_fromHost.bufseg = HST.OBJMEMSEG, RTA_dispatcher.Create("HST"), IDL_busyObj.Create("IDL"), IDL.USEIDLBUSYOBJ = 1, IDL_cpuLoad.Create("IDL"), IDL.AUTOCALCULATE = self.OLDAUTOCALCULATE} else {if (self.LINKWITHROM) {self.LINKWITHROM = 0} , RTA_toHost.Delete("HST"), RTA_toHost.bufseg = MEM_NULL, RTA_fromHost.Delete("HST"), RTA_fromHost.bufseg = MEM_NULL, RTA_dispatcher.Delete("HST"), IDL_busyObj.Delete("IDL"), IDL.USEIDLBUSYOBJ = 0, IDL_cpuLoad.Delete("IDL"), self.OLDAUTOCALCULATE = IDL.AUTOCALCULATE, IDL.AUTOCALCULATE = 0}, self.ENABLEINST = $1} , "ok")
+ }
+ global INSTRUMENTED :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Use Instrumented BIOS library"
+ prop JSName :: "INSTRUMENTED"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global CGENERATE :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Do C Generation"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global ENABLEDLL :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable Dynamic Loading"
+ prop JSName :: "ENABLEDLL"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global PCC :: "mapped" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "mapped,cache enable,cache freeze,cache bypass"
+ prop Label :: "Program Cache Control - CSR(PCC) "
+ prop JSName :: "CSRPCC"
+ prop Visible :: 1
+ prop Writable :: if (GBL.DSPSUBTYPE == 6211 || GBL.DSPSUBTYPE == 6711 || GBL.DSPSUBTYPE == 6400) {0} else {1}
+ prop NoGen :: 1
+ prop TabName :: "620x/670x/672x"
+ }
+ global DCC :: "mapped" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "mapped,cache enable,cache freeze,cache bypass"
+ prop Label :: "Data Cache Control"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "620x/670x/672x"
+ }
+ global PCACHE :: = (if (self.PCC == "mapped") {0x0000} else {if (self.PCC == "cache enable") {0x0040} else {if (self.PCC == "cache freeze") {0x0060} else {0x0080}}}) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global DCACHE :: = (if (self.DCC == "mapped") {0x0000} else {if (self.DCC == "cache enable") {0x0008} else {if (self.DCC == "cache freeze") {0x000c} else {0x0010}}}) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CACHE :: = (self.PCACHE | self.DCACHE) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global C621XL2CONFIGURE :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "621x/671x - Configure L2 Memory Settings"
+ prop JSName :: "C621XCONFIGUREL2"
+ prop Visible :: 1
+ prop Writable :: if (GBL.DSPSUBTYPE == 6211 || GBL.DSPSUBTYPE == 6711 || GBL.DSPSUBTYPE == 6712 || GBL.DSPSUBTYPE == 6713) {1} else {0}
+ prop TabName :: "621x/671x"
+ prop Set :: ($e = "ok", self.C621XL2CONFIGURE = $1, self.PCC = "mapped", $e = self.L2CacheSizeCheck(), $e)
+ prop NoGen :: 1
+ }
+ global C641XL2CONFIGURE :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "641x - Configure L2 Memory Settings"
+ prop JSName :: "C641XCONFIGUREL2"
+ prop Visible :: 1
+ prop Writable :: if (GBL.DSPSUBTYPE == 6400) {1} else {0}
+ prop TabName :: "641x"
+ prop Set :: ($e = "ok", self.C641XL2CONFIGURE = $1, self.PCC = "mapped", $e = self.L2CacheSizeCheck(), $e)
+ prop NoGen :: 1
+ }
+ global L2CONFIGURE :: = (if GBL.DSPSUBTYPE == 6400 {self.C641XL2CONFIGURE} else {self.C621XL2CONFIGURE}) {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Configure L2 Cache Control (c6x1x support)"
+ prop Visible :: 0
+ prop NoGen :: 0
+ }
+ global C621XPCC :: "Cache Enabled - Direct Mapped" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "Cache Enabled - Direct Mapped"
+ prop Label :: "Program Cache Control - CSR(PCC) "
+ prop Visible :: 1
+ prop Writable :: 0
+ prop NoGen :: 1
+ prop TabName :: "621x/671x"
+ }
+ global C641XPCC :: "Cache Enabled - Direct Mapped" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "Cache Enabled - Direct Mapped"
+ prop Label :: "641x - Program Cache Control - CSR(PCC)"
+ prop Visible :: 1
+ prop Writable :: 0
+ prop NoGen :: 1
+ prop TabName :: "641x"
+ }
+ global L2MODEOPTS :: "SRAM" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "L2 Mode - CCFG(L2MODE)"
+ prop JSName :: "C621XCCFGL2MODE"
+ prop Enum :: "SRAM,1-way cache,2-way cache,3-way cache,4-way cache"
+ prop Visible :: 1
+ prop Writable :: if ((GBL.DSPSUBTYPE == 6211 || GBL.DSPSUBTYPE == 6711 || GBL.DSPSUBTYPE == 6712 || GBL.DSPSUBTYPE == 6713) && GBL.L2CONFIGURE == 1) {1} else {0}
+ prop NoGen :: 1
+ prop TabName :: "621x/671x"
+ prop Set :: ($i = self.L2MODEOPTS, self.L2MODEOPTS = $1, $e = self.L2CacheSizeCheck(), if ($e != "ok") {self.L2MODEOPTS = $i} , $e)
+ }
+ global C641XL2MODEOPTS :: "4-way cache (0k)" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "641x L2 Mode - CCFG(L2MODE)"
+ prop Enum :: "4-way cache (0k),4-way cache (32k),4-way cache (64k),4-way cache (128k),4-way cache (256k)"
+ prop JSName :: "C641XCCFGL2MODE"
+ prop Visible :: 1
+ prop Writable :: if ((GBL.DSPSUBTYPE == 6400) && GBL.L2CONFIGURE == 1) {1} else {0}
+ prop NoGen :: 1
+ prop TabName :: "641x"
+ prop Set :: ($i = self.C641XL2MODEOPTS, self.C641XL2MODEOPTS = $1, $e = self.L2CacheSizeCheck(), if ($e != "ok") {self.C641XL2MODEOPTS = $i} , $e)
+ }
+ global L2MODE :: = (if GBL.DSPSUBTYPE == 6400 {self.setC641XL2MODE()} else {self.setL2MODE()}) {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "L2 Mode - CCFG(L2MODE) Values"
+ prop Enum :: "0,1,2,3,7"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global L2PRIORITY :: 0 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "L2 Requestor Priority - CCFG(P)"
+ prop Enum :: "0,1"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global L2MARMASK :: 1 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Label :: "L2 MAR0-15 - bitmask used to initialize MARs"
+ prop JSName :: "C621XMAR"
+ prop Format :: "0x%04x"
+ prop Style :: 0x01 | 0x02
+ prop Visible :: 1
+ prop Writable :: if ((GBL.DSPSUBTYPE == 6211 || GBL.DSPSUBTYPE == 6711 || GBL.DSPSUBTYPE == 6712 || GBL.DSPSUBTYPE == 6713) && GBL.L2CONFIGURE == 1) {1} else {0}
+ prop NoGen :: 0
+ prop TabName :: "621x/671x"
+ }
+ global SUPPORTCSL :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 0
+ }
+ global ENABLEALLTRC :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable All TRC Trace Event Classes"
+ prop JSName :: "ENABLEALLTRC"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: (if ($1) {self.TRCMASKVALUE = 0xDBEF} else {self.TRCMASKVALUE = 0x4000}, self.ENABLEALLTRC = $1, "ok")
+ }
+ global TRCMASKVALUE :: 56303 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 0
+ }
+ global CALLCSLCFGINIT :: = self.DISPCALLCSLCFGINIT {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 0
+ }
+ global CDBPATH :: "" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "CDB search path in COFF file"
+ prop JSName :: "CDBRELATIVEPATH"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global LINKWITHROM :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Link with ROM"
+ prop JSName :: "LINKWITHROM"
+ prop Visible :: 0
+ prop Writable :: if (self.DSPSUBTYPE == 6799 && self.ENABLEINST) {1} else {0}
+ prop NoGen :: 1
+ prop Set :: ($e = "ok", if ($1) {$e = self.error("This BIOS version does not support linking with ROM.")} , $e)
+ }
+ global C641XL2PRIORITY :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: if ((GBL.DSPSUBTYPE == 6400) && GBL.L2CONFIGURE == 1) {1} else {0}
+ prop NoGen :: 0
+ prop TabName :: "641x"
+ }
+ global L2MARMASK1 :: 0 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Label :: "MAR96-111 - bitmask controls EMIFB CE space"
+ prop JSName :: "C641XMAREMIFB"
+ prop Format :: "0x%04x"
+ prop Style :: 0x01 | 0x02
+ prop Visible :: 1
+ prop Writable :: if ((GBL.DSPSUBTYPE == 6400) && GBL.L2CONFIGURE == 1) {1} else {0}
+ prop NoGen :: 0
+ prop TabName :: "641x"
+ }
+ global L2MARMASK2 :: 0 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Label :: "MAR128-143 - bitmask controls EMIFA CE0 space"
+ prop JSName :: "C641XMARCE0"
+ prop Format :: "0x%04x"
+ prop Style :: 0x01 | 0x02
+ prop Visible :: 1
+ prop Writable :: if ((GBL.DSPSUBTYPE == 6400) && GBL.L2CONFIGURE == 1) {1} else {0}
+ prop NoGen :: 0
+ prop TabName :: "641x"
+ }
+ global L2MARMASK3 :: 0 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Label :: "MAR144-159 - bitmask controls EMIFA CE1 space"
+ prop JSName :: "C641XMARCE1"
+ prop Format :: "0x%04x"
+ prop Style :: 0x01 | 0x02
+ prop Visible :: 1
+ prop Writable :: if ((GBL.DSPSUBTYPE == 6400) && GBL.L2CONFIGURE == 1) {1} else {0}
+ prop NoGen :: 0
+ prop TabName :: "641x"
+ }
+ global L2MARMASK4 :: 0 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Label :: "MAR160-175 - bitmask controls EMIFA CE2 space"
+ prop JSName :: "C641XMARCE2"
+ prop Format :: "0x%04x"
+ prop Style :: 0x01 | 0x02
+ prop Visible :: 1
+ prop Writable :: if ((GBL.DSPSUBTYPE == 6400) && GBL.L2CONFIGURE == 1) {1} else {0}
+ prop NoGen :: 0
+ prop TabName :: "641x"
+ }
+ global L2MARMASK5 :: 0 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Label :: "MAR176-191 - bitmask controls EMIFA CE3 space"
+ prop JSName :: "C641XMARCE3"
+ prop Format :: "0x%04x"
+ prop Style :: 0x01 | 0x02
+ prop Visible :: 1
+ prop Writable :: if ((GBL.DSPSUBTYPE == 6400) && GBL.L2CONFIGURE == 1) {1} else {0}
+ prop NoGen :: 0
+ prop TabName :: "641x"
+ }
+ global L2REQPRIORITY :: "urgent" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "641x L2 Requestor Priority Queue - CCFG(P)"
+ prop JSName :: "C641XCCFGP"
+ prop Enum :: "urgent,high,medium,low"
+ prop Visible :: 1
+ prop Writable :: if ((GBL.DSPSUBTYPE == 6400) && GBL.L2CONFIGURE == 1) {1} else {0}
+ prop NoGen :: 1
+ prop Set :: (self.L2REQPRIORITY = $1, if (self.L2REQPRIORITY == "urgent") {self.C641XL2PRIORITY = 0} else {if (self.L2REQPRIORITY == "high") {self.C641XL2PRIORITY = 1} else {if (self.L2REQPRIORITY == "medium") {self.C641XL2PRIORITY = 2} else {self.C641XL2PRIORITY = 3}}}, "ok")
+ prop TabName :: "641x"
+ }
+ global L2CONFIGALLOC :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Configure Priority Queues"
+ prop JSName :: "C641XSETL2ALLOC"
+ prop Visible :: 1
+ prop Writable :: (GBL.DSPSUBTYPE == 6400 && GBL.L2CONFIGURE == 1)
+ prop NoGen :: 0
+ prop TabName :: "641x"
+ }
+ global L2ALLOC0 :: 6 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Max L2 Transfer Requests on URGENT Queue (L2ALLOC0)"
+ prop JSName :: "C641XL2ALLOC0"
+ prop Enum :: "0,1,2,3,4,5,6,7"
+ prop Visible :: 1
+ prop Writable :: if (GBL.DSPSUBTYPE == 6400 && GBL.L2CONFIGURE == 1 && GBL.L2CONFIGALLOC == 1) {1} else {0}
+ prop NoGen :: 1
+ prop TabName :: "641x"
+ }
+ global L2ALLOC1 :: 2 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Max L2 Transfer Requests on HIGH Queue (L2ALLOC1)"
+ prop JSName :: "C641XL2ALLOC1"
+ prop Enum :: "0,1,2,3,4,5,6,7"
+ prop Visible :: 1
+ prop Writable :: if (GBL.DSPSUBTYPE == 6400 && GBL.L2CONFIGURE == 1 && GBL.L2CONFIGALLOC == 1) {1} else {0}
+ prop NoGen :: 1
+ prop TabName :: "641x"
+ }
+ global L2ALLOC2 :: 2 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Max L2 Transfer Requests on MEDIUM Queue (L2ALLOC2)"
+ prop JSName :: "C641XL2ALLOC2"
+ prop Enum :: "0,1,2,3,4,5,6,7"
+ prop Visible :: 1
+ prop Writable :: if (GBL.DSPSUBTYPE == 6400 && GBL.L2CONFIGURE == 1 && GBL.L2CONFIGALLOC == 1) {1} else {0}
+ prop NoGen :: 1
+ prop TabName :: "641x"
+ }
+ global L2ALLOC3 :: 2 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Max L2 Transfer Requests on LOW Queue (L2ALLOC3)"
+ prop JSName :: "C641XL2ALLOC3"
+ prop Enum :: "0,1,2,3,4,5,6,7"
+ prop Visible :: 1
+ prop Writable :: if (GBL.DSPSUBTYPE == 6400 && GBL.L2CONFIGURE == 1 && GBL.L2CONFIGALLOC == 1) {1} else {0}
+ prop NoGen :: 1
+ prop TabName :: "641x"
+ }
+ global L2ALLOC :: = ((self.L2ALLOC0) | (self.L2ALLOC1 << 4) | (self.L2ALLOC2 << 8) | (self.L2ALLOC3 << 12)) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop NoGen :: 0
+ }
+}
+
+type MEM {
+ isa ObjectMgr
+ prop Label :: "MEM - Memory Section Manager"
+ prop name :: "MEM"
+ prop DependsOn :: "SEM"
+ prop IsContainedIn :: SYSTEM
+ prop GlobalIcon :: 115
+ prop InstanceIcon :: 116
+ prop GlobalHelpTopic :: (108)
+ prop InstanceHelpTopic :: (208)
+ prop InstancePropertyPage :: ("{3D658E70-05E7-11d0-BD44-0020AFEE33C8}")
+ prop GlobalPropertyPage :: ("{3D658E71-05E7-11d0-BD44-0020AFEE33C8}")
+ prop heapLabelStr :: (self.iHeapId)
+ prop GenLinkPrologue :: (if (GBL.DSPTYPE == 55) {"-stack 0x%1x\n-sysstack 0x%2x\n\nMEMORY {%4t\0, _cmd55stksz, _cmd55systksz"} else {"-stack 0x%1x\nMEMORY {%4t\0, _stackSize"})
+ prop _stackSize :: MEM.STACKSIZE
+ prop AllocType :: (if (self.REUSE == 0 && self.USERCMD == 0) {"19\0, _argsString, _argsSeg, _midPlace, _sysdataString, _sysdataSeg, _thirdPlace, _trcinitString, _trcinitSeg, _midPlace, _gblinitString, _gblinitSeg, _midPlace, _memObjString, _memObjSeg, _midPlace, _sysinitString, _initSeg, _sysinitPlace, _sysregsString, _regsSeg, _midPlace, _bssString, _bssSeg, _firstPlace, _farString, _farSeg, _secondPlace, _cinitString, _cinitSeg, _midPlace, _pinitString, _pinitSeg, _midPlace, _dataString, _dataSeg, _midPlace, _constString, _constSeg, _midPlace, _switchString, _switchSeg, _midPlace, _cioString, _cioSeg, _midPlace, _textString, _textSeg, _midPlace, _frtString, _frtSeg, _midPlace, _biosString, _biosSeg, _midPlace, _stackString, _stackSeg, _midPlace"} else {if (self.REUSE == 0 && self.USERCMD == 1) {"9\0, _argsString, _argsSeg, _midPlace, _sysdataString, _sysdataSeg, _thirdPlace, _trcinitString, _trcinitSeg, _midPlace, _gblinitString, _gblinitSeg, _midPlace, _memObjString, _memObjSeg, _midPlace, _sysinitString, _initSeg, _sysinitPlace, _sysregsString, _regsSeg, _midPlace, _biosString, _biosSeg, _midPlace, _stackString, _stackSeg, _midPlace"} else {if (self.REUSE == 1 && self.USERCMD == 0) {"18\0, _argsString, _argsSeg, _midPlace, _sysdataString, _sysdataSeg, _thirdPlace, _trcinitString, _trcinitSeg, _midPlace, _gblinitString, _gblinitSeg, _midPlace, _memObjString, _memObjSeg, _midPlace, _sysregsString, _regsSeg, _midPlace, _bssString, _bssSeg, _firstPlace, _farString, _farSeg, _secondPlace, _cinitString, _cinitSeg, _midPlace, _pinitString, _pinitSeg, _midPlace, _dataString, _dataSeg, _midPlace, _constString, _constSeg, _midPlace, _switchString, _switchSeg, _midPlace, _cioString, _cioSeg, _midPlace, _textString, _textSeg, _midPlace, _frtString, _frtSeg, _midPlace, _biosString, _biosSeg, _midPlace, _stackString, _stackSeg, _midPlace"} else {"8\0, _argsString, _argsSeg, _midPlace, _sysdataString, _sysdataSeg, _thirdPlace, _trcinitString, _trcinitSeg, _midPlace, _gblinitString, _gblinitSeg, _midPlace, _memObjString, _memObjSeg, _midPlace, _sysregsString, _regsSeg, _midPlace, _biosString, _biosSeg, _midPlace, _stackString, _stackSeg, _midPlace"}}})
+ prop _firstPlace :: 0
+ prop _secondPlace :: 0 + 1
+ prop _thirdPlace :: 0 + 2
+ prop _midPlace :: (0x7fffffff / 2)
+ prop _sysinitPlace :: (0x7fffffff / 2)
+ prop _argsString :: ("%8t .args: align=4 fill=0 {%12t\n *(.args)\n . += 0x%1x;%8t\n }\0, _argsSize")
+ prop _bssString :: ("%8t .bss: {}")
+ prop _farString :: ("%8t .far: {}")
+ prop _cinitString :: (if (self.ENABLELOADSEG == 1) {if (MEM.CINITSEG == MEM.LOADCINITSEG) {"%8t .cinit: {}"} else {"%8t .cinit: {} load > %1s, run\0, _loadcinitSeg"}} else {"%8t .cinit: {}"})
+ prop _pinitString :: (if (self.ENABLELOADSEG == 1) {if (MEM.PINITSEG == MEM.LOADPINITSEG) {"%8t .pinit: {}"} else {"%8t .pinit: {} load > %1s, run\0, _loadpinitSeg"}} else {"%8t .pinit: {}"})
+ prop _trcinitString :: (if (self.ENABLELOADSEG == 1) {if (MEM.TRCINITSEG == MEM.LOADTRCINITSEG) {"%8t .trcdata: {}"} else {"%8t .trcdata: {} load > %1s, run\0, _loadtrcinitSeg"}} else {"%8t .trcdata: {}"})
+ prop _gblinitString :: (if (self.ENABLELOADSEG == 1) {if (MEM.BIOSINITSEG == MEM.LOADBIOSINITSEG) {"%8t .gblinit: {}"} else {"%8t .gblinit: {} load > %1s, run\0, _loadgblinitSeg"}} else {"%8t .gblinit: {}"})
+ prop _dataString :: ("%8t .data: {}")
+ prop _constString :: (if (self.ENABLELOADSEG == 1) {if (MEM.CONSTSEG == MEM.LOADCONSTSEG) {"%8t GROUP {\n %8t .const: align = 0x8 {} \n %8t .printf (COPY): {} \n%8t }"} else {"%8t .const: align = 0x8 {} load > %1s run\0, _loadconstSeg"}} else {"%8t GROUP {\n %8t .const: align = 0x8 {} \n %8t .printf (COPY): {} \n%8t }"})
+ prop _switchString :: (if (self.ENABLELOADSEG == 1) {if (MEM.SWITCHSEG == MEM.LOADSWITCHSEG) {"%8t .switch: {}"} else {"%8t .switch: {} load > %1s, run\0, _loadswitchSeg"}} else {"%8t .switch: {}"})
+ prop _sysmemString :: ("%8t .sysmem: {}")
+ prop _cioString :: ("%8t .cio: {}")
+ prop _memObjString :: ("%8t .mem: {}")
+ prop _sysdataString :: (if ((GBL.ROM == 0) && (GBL.DSPTYPE == 54)) {"%8t .sysdata: align = 128 {%12t\n GBL_A_SYSPAGE = .;\n GBL_A_SYSDP = GBL_A_SYSPAGE >> 7;\n %8t }"} else {"%8t .sysdata: {}"})
+ prop _sysinitString :: (if (self.ENABLELOADSEG == 1) {if (MEM.INITSEG == MEM.LOADINITSEG) {"%8t .sysinit: {}"} else {"%8t .sysinit: {} load > %1s, run\0, _loadinitSeg"}} else {"%8t .sysinit: {}"})
+ prop _sysregsString :: ("%8t .sysregs: {}")
+ prop _textString :: (if (self.ENABLELOADSEG == 1) {if (MEM.TEXTSEG == MEM.LOADTEXTSEG) {"%8t .text: {}"} else {"%8t .text: {} load > %1s, run\0, _loadtextSeg"}} else {"%8t .text: {}"})
+ prop _frtString :: ("%8t frt: {}")
+ prop _biosString :: (if (self.ENABLELOADSEG == 1) {if (MEM.BIOSSEG == MEM.LOADBIOSSEG) {"%8t .bios: {}"} else {"%8t .bios: {} load > %1s, run\0, _loadbiosSeg"}} else {"%8t .bios: {}"})
+ prop _stackString :: (if (GBL.DSPTYPE == 62) {"%8t .stack: align = 0x8 {%12t\n GBL_stackbeg = .;\n *(.stack)\n GBL_stackend = GBL_stackbeg + 0x%1x - 1;%12t\n _HWI_STKBOTTOM = GBL_stackbeg + 0x%1x - 8;%12t\n _HWI_STKTOP = GBL_stackbeg;%8t\n }\0, _stackSize, _stackSize"} else {if (GBL.DSPTYPE == 54) {"%8t .stack: {%12t\n GBL_stackbeg = .;\n *(.stack)\n GBL_stackend = ((GBL_stackbeg + 0x%1x - 1) & 0xfffe) ;%8t\n _HWI_STKBOTTOM = GBL_stackend;%12t\n _HWI_STKTOP = GBL_stackbeg;%8t\n }\0, _stackSize"} else {if (GBL.DSPTYPE == 55) {"%8t GROUP { \n%16t .sysstack : align = 0x4 {%12t\n %16t GBL_sysstackbeg = .;\n %16t *(.sysstack)\n %16t GBL_sysstackend = GBL_sysstackbeg + 0x%2x -1 ;%12t\n %16t _HWI_SYSSTKTOP = GBL_sysstackbeg; %12t\n %16t_HWI_SYSSTKBOTTOM = (GBL_sysstackend+1);\n%16t} \n%16t .stack: align = 0x4 {%12t\n %16t GBL_stackbeg = .;\n %16t *(.stack)\n GBL_stackend = (GBL_stackbeg + 0x%1x - 1) ;%12t\n %16t _HWI_STKBOTTOM = (GBL_stackend+1);%12t\n %16t _HWI_STKTOP = (GBL_stackbeg);%16t\n }%8t\n } BLOCK(0x20000), run \0, _cmd55stksz, _cmd55systksz"} else {"%8t .stack: {%12t\n GBL_stackbeg = .;\n *(.stack)\n GBL_stackend = GBL_stackbeg + 0x%1x - 1;%8t\n _HWI_STKBOTTOM = GBL_stackbeg;%12t\n _HWI_STKTOP = (GBL_stackend + 1);%8t\n }\0, _stackSize"}}})
+ prop _memHdrSize :: 8
+ prop GenLinkEpilogue :: ("%0t}")
+ prop _stackSeg :: MEM.STACKSEG
+ prop _textSeg :: MEM.TEXTSEG
+ prop _frtSeg :: MEM.TEXTSEG
+ prop _biosSeg :: MEM.BIOSSEG
+ prop _dataSeg :: MEM.DATASEG
+ prop _cioSeg :: MEM.CIOSEG
+ prop _sysmemSeg :: MEM.SYSMEMSEG
+ prop _constSeg :: MEM.CONSTSEG
+ prop _initSeg :: MEM.INITSEG
+ prop _pinitSeg :: MEM.PINITSEG
+ prop _trcinitSeg :: MEM.TRCINITSEG
+ prop _gblinitSeg :: MEM.BIOSINITSEG
+ prop _regsSeg :: MEM.SYSDATASEG
+ prop _sysdataSeg :: MEM.SYSDATASEG
+ prop _argsSeg :: MEM.ARGSSEG
+ prop _argsSize :: MEM.ARGSSIZE
+ prop _bssSeg :: MEM.BSSSEG
+ prop _farSeg :: MEM.FARSEG
+ prop _cinitSeg :: MEM.CINITSEG
+ prop _memObjSeg :: MEM.CFGOBJSEG
+ prop _switchSeg :: MEM.SWITCHSEG
+ prop _loadtextSeg :: MEM.LOADTEXTSEG
+ prop _loadbiosSeg :: MEM.LOADBIOSSEG
+ prop _loadconstSeg :: MEM.LOADCONSTSEG
+ prop _loadinitSeg :: MEM.LOADINITSEG
+ prop _loadpinitSeg :: MEM.LOADPINITSEG
+ prop _loadtrcinitSeg :: MEM.LOADTRCINITSEG
+ prop _loadgblinitSeg :: MEM.LOADBIOSINITSEG
+ prop _loadcinitSeg :: MEM.LOADCINITSEG
+ prop _loadswitchSeg :: MEM.LOADSWITCHSEG
+ prop AllocInst :: (if (self.iAllocHeap == 1) {"1\0, _instAllocDesc, _objMemSeg, _placement"} )
+ prop _instAllocDesc :: (if self.INITSEG.iAllocHeap && self.REUSE && self.INITSEG == self {"%8t GROUP {%12t\n .sysinitgap {. += 0x%2x;}\n .sysinit:\n .%0r$heap: {%16t\n . += 0x%1x;%12t\n }%8t\n } RUN_START(%0r$B), RUN_START(_%0r_base), RUN_SIZE(%0r$L), RUN_SIZE(_%0r_length)\0, _heapsize, _sysinitgap, _heaplen"} else {"%8t .%0r$heap: {%12t\n . += 0x%1x;%8t\n } RUN_START(%0r$B), RUN_START(_%0r_base), RUN_SIZE(%0r$L), RUN_SIZE(_%0r_length)\0, _heapsize, _heaplen"})
+ prop _objMemSeg :: self
+ prop _placement :: 0x7fffffff - 1
+ prop _heapsize :: (self.iHeapSize)
+ prop _heaplen :: (self.iHeapSize)
+ prop _sysinitgap :: 2 * 4
+ prop GenInstLink :: (if GBL.DSPTYPE == 62 {"%0r %16t: origin = 0x%1x, %40tlen = 0x%2x%4t\0, _origin, _len"} else {if GBL.DSPTYPE == 55 {"PAGE %3d: %16t%0r: %26torigin = 0x%1x, %40tlen = 0x%2x%4t\0, _cmd55origin, _cmd55len, _page"} else {"PAGE %3d: %14t%0r: %26torigin = 0x%1x, %50tlen = 0x%2x%4t\0, _origin, _len, _page"}})
+ prop localInit :: ($d = "ok", scan ($i; MEM) {if ($i.space == "code" && $i.iAllocHeap == 1) {$d = self.error("Code memory cannot have a heap")} }, if (self.SEGZERO.iAllocHeap == 1) {self.SEGZERO.iReqHeapCount++} else {$d = self.error("Segment for DSP/BIOS objects must be a memory segment with a heap")}, if (self.MALLOCSEG.iAllocHeap == 1) {self.MALLOCSEG.iReqHeapCount++} else {$d = self.error("Segment for malloc()/free() must be a memory segment with a heap")}, $d)
+ prop _page :: (self.page)
+ prop _origin :: (self.base)
+ prop _len :: (self.len)
+ prop maxObjs :: (32767)
+ prop codeMember :: (if $1.dynamicLoading == 1 {0} else {if GBL.DSPTYPE == 62 {(($1.space == "code") || ($1.space == "code/data"))} else {if GBL.DSPTYPE == 54 {($1.space == "code")} else {if GBL.DSPTYPE == 28 {($1.space == "code" || ($1.space == "code/data"))} else {if GBL.DSPTYPE == 55 {(($1.space == "code") || ($1.space == "code/data"))} else {($1.space == "code/data")}}}}})
+ prop dataMember :: (if $1.dynamicLoading == 1 {0} else {if GBL.DSPTYPE == 62 {($1.space == "data" || $1.space == "code/data") && $1 != MEM_NULL} else {if GBL.DSPTYPE == 54 {(($1.space != "code") && ($1 != MEM_NULL)) && $1.space != "io"} else {if GBL.DSPTYPE == 28 {($1.space == "data" || $1.space == "code/data") && $1 != MEM_NULL} else {if GBL.DSPTYPE == 55 {($1.space == "data" || $1.space == "code/data") && $1 != MEM_NULL} else {(($1.space == "code/data") && ($1 != MEM_NULL))}}}}})
+ prop dataNullMember :: (if $1.dynamicLoading == 1 {0} else {if GBL.DSPTYPE == 62 {$1.space == "data" || $1.space == "code/data"} else {if GBL.DSPTYPE == 54 {$1.space != "code" && $1.space != "io"} else {if GBL.DSPTYPE == 28 {$1.space == "data" || $1.space == "code/data"} else {if GBL.DSPTYPE == 55 {$1.space == "data" || $1.space == "code/data"} else {$1.space == "code/data"}}}}})
+ prop dataCodeMember :: (if $1.dynamicLoading == 1 {0} else {if GBL.DSPTYPE == 62 {($1.space == "data" || $1.space == "code/data") && $1 != MEM_NULL} else {if GBL.DSPTYPE == 54 {$1.space == "code" && $1 != MEM_NULL} else {if GBL.DSPTYPE == 28 {($1.space == "code" || $1.space == "code/data") && $1 != MEM_NULL} else {if GBL.DSPTYPE == 55 {($1.space == "data" || $1.space == "code/data") && $1 != MEM_NULL} else {$1.space == "code/data" && $1 != MEM_NULL}}}}})
+ prop memWritable :: (self.iIsModifiable && self.iDelUser != "MEM")
+ prop validate :: ($e = self.checkMemOverlap($1), if ($e == "ok") {$e = self.checkHeapSize($1)} , if ($e == "ok") {$e = self.checkHeapSeg($1)} , $e)
+ prop checkHeapSeg :: ($e = "ok", if ($1 == MEM_NULL && MEM.NOHEAPS == 0) {if (MEM.MALLOCSEG == MEM_NULL) {$e = ("Heaps are enabled, but the segment for malloc (MEM.MALLOCSEG) is not set correctly. Please create a heap in one of your data segments and set MEM.MALLOCSEG to it.")} , if (MEM.SEGZERO == MEM_NULL) {$e = ("Heaps are enabled, but the segment for DSP/BIOS Objects (MEM.BIOSOBJSEG) is not set correctly. Please create a heap in one of your data segments and set MEM.BIOSOBJSEG to it.")} } , $e)
+ prop checkHeapSize :: ($e = "ok", if (MEM.NOHEAPS == 0) {if ($1.iAllocHeap && $1 != MEM_NULL) {if ($1.iHeapSize > $1.len) {$e = ("MEM segment %s: heap cannot be larger than the length of segment that contains it.")} } } , $e)
+ prop checkMemOverlap :: ($e = "ok", if ($1 != MEM_NULL && $1.iIsUsed == 1) {if ($1.len == 0) {$a = $1.base} else {$a = ($1.base + $1.len - 1)}, scan ($j; MEM) {if ($1 != $j && $j != MEM_NULL && $j.iIsUsed == 1 && (GBL.DSPTYPE == 62 || $1.space == $j.space)) {if (!($j == CACHE_L2 && GBL.L2CONFIGURE == 0)) {$b = $j.base, if ($j.len == 0) {$c = $j.base} else {$c = ($j.base + $j.len - 1)}, if ($a >= $b && $1.base <= $c) {$e = ("MEM segment %s: overlaps with another segment or cache configuration."), break} } } }} , $e)
+ prop _spaceEnum :: (self.ENUMSPACE)
+ prop checkHeapId :: ($e = "ok", scan ($i; MEM) {if ($i.iAllocHeap == 1 && $i.iUserHeapId == 1 && $i.iHeapId == $1 && $i.iHeapId != @segment_name) {$e = self.error("This identifier label is already in use"), break} }, $e)
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 2 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CALLBACKOBJ :: nil {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumHeap :: = ($a = 0, scan ($i; MEM) {if ($i != MEM_NULL) {$a += $i.iAllocHeap} }, $a) {
+ prop NoGen :: 0
+ }
+ global REUSE :: = (if self.INITSEG.space != "code" && self.INITSEG.iAllocHeap == 1 {self.SAVEREUSE} else {0}) {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Reuse Startup Code Space"
+ prop JSName :: "REUSECODESPACE"
+ prop Visible :: 1
+ prop Writable :: self.INITSEG.space != "code" && self.INITSEG.iAllocHeap == 1
+ prop NoGen :: 1
+ prop Set :: (self.SAVEREUSE = $1, "ok")
+ }
+ global SAVEREUSE :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ global doCheckOverlap :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global MAPSELECT :: "Map 1" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Map Mode"
+ prop JSName :: "MAPMODE"
+ prop Enum :: "Map 0,Map 1"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global ARGSSIZE :: 4 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: "0x%04x"
+ prop Style :: 0x01 | 0x02
+ prop Label :: "Argument Buffer Size"
+ prop JSName :: "ARGSSIZE"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: (if ($1 < 4) {self.error("The 'arguments' section must have at least 4 words.")} else {self.ARGSSIZE = $1, "ok"})
+ }
+ global ARGSSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.dataMember($1)
+ prop Label :: "Argument Buffer Section (.args)"
+ prop JSName :: "ARGSSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Data"
+ }
+ global BIOSSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.codeMember($1)
+ prop Label :: "BIOS Code Section (.bios)"
+ prop JSName :: "BIOSSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Code"
+ }
+ global STACKSIZE :: 1024 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: "0x%04x"
+ prop Style :: if GBL.DSPTYPE == 54 {0x01 | 0x02} else {0x02}
+ prop Label :: "Stack Size (MAUs)"
+ prop JSName :: "STACKSIZE"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: (if ((GBL.DSPTYPE == 55) && (GBL.DSPSUBTYPE != 5599)) {self.STACKSIZE = ($1 & -2)} else {if ((GBL.DSPTYPE == 55) && (GBL.DSPSUBTYPE == 5599)) {self.STACKSIZE = ($1 & -4)} else {self.STACKSIZE = $1}}, "ok")
+ prop PropSetOkUserMsg :: if (MEM.STACKSIZE < GlobalStatus.MinStackSize) {"Warning: You are setting the stack size to a value that is less than the Estimated Minimum Stack Size!"} else {"ok"}
+ }
+ global USERCMD :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "User .cmd File For Compiler Sections"
+ prop JSName :: "USERCOMMANDFILE"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ }
+ global STACKSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.dataMember($1)
+ prop Label :: "Stack Section (.stack)"
+ prop JSName :: "STACKSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Data"
+ prop Set :: (if (GBL.DSPTYPE == 55) {(MEM.STACKSEG = $1), (MEM.SYSSTACKSEG = $1)} else {(MEM.STACKSEG = $1)}, "ok")
+ }
+ global ENABLELOADSEG :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Specify Separate Load Addresses"
+ prop JSName :: "ENABLELOADADDR"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global LOADBIOSSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.codeMember($1)
+ prop Label :: "Load Address - BIOS Code Section (.bios)"
+ prop JSName :: "LOADBIOSSEG"
+ prop Visible :: 1
+ prop Writable :: (self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global INITSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.codeMember($1)
+ prop Label :: "Startup Code Section (.sysinit)"
+ prop JSName :: "SYSINITSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Code"
+ }
+ global LOADINITSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.codeMember($1)
+ prop Label :: "Load Address - Startup Code Section (.sysinit)"
+ prop JSName :: "LOADSYSINITSEG"
+ prop Visible :: 1
+ prop Writable :: (self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global BIOSINITSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.dataCodeMember($1)
+ prop Label :: "DSP/BIOS Init Tables (.gblinit)"
+ prop JSName :: "GBLINITSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Data"
+ }
+ global TRCINITSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.dataCodeMember($1)
+ prop Label :: "TRC Initial Value (.trcdata)"
+ prop JSName :: "TRCDATASEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Data"
+ }
+ global LOADBIOSINITSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.dataCodeMember($1)
+ prop Label :: "Load Address - DSP/BIOS Init Tables (.gblinit)"
+ prop JSName :: "LOADGBLINITSEG"
+ prop Visible :: 1
+ prop Writable :: (self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global LOADTRCINITSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.dataCodeMember($1)
+ prop Label :: "Load Address - TRC Initial Value (.trcdata)"
+ prop JSName :: "LOADTRCDATASEG"
+ prop Visible :: 1
+ prop Writable :: (self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global SYSDATASEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.dataMember($1)
+ prop Label :: "DSP/BIOS Kernel State (.sysdata)"
+ prop JSName :: "SYSDATASEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Data"
+ }
+ global CFGOBJSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.dataMember($1)
+ prop Label :: "DSP/BIOS Conf Sections (.*obj)"
+ prop JSName :: "OBJSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Data"
+ }
+ global NOHEAPS :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "No Dynamic Memory Heaps"
+ prop JSName :: "NOMEMORYHEAPS"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: (if ($1) {self.SEGZERO.iReqHeapCount--, self.SEGZERO = MEM_NULL, self.MALLOCSEG.iReqHeapCount--, self.MALLOCSEG = MEM_NULL, TSK.STACKSEG.iReqHeapCount--, TSK.STACKSEG = MEM_NULL, scan ($i; MEM) {if ($i.iAllocHeap && $i != MEM_NULL) {$i.iAllocHeap = 0, $i.iHeapSize = 0} }} , self.NOHEAPS = $1, "ok")
+ prop PropSetOkUserMsg :: if (MEM.NOHEAPS == 1) {"Currently specified heaps no longer valid"} else {"Please reconfigure heaps under individual mem segments"}
+ }
+ global SEGZERO :: MEM_NULL {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataNullMember($1) && $1.iAllocHeap)
+ prop Label :: "Segment For DSP/BIOS Objects"
+ prop JSName :: "BIOSOBJSEG"
+ prop Visible :: 1
+ prop Writable :: MEM.NOHEAPS == 0
+ prop NoGen :: 0
+ prop Set :: (if (self.SEGZERO.iReqHeapCount > 0) {self.SEGZERO.iReqHeapCount--} , self.SEGZERO = $1, self.SEGZERO.iReqHeapCount++, "ok")
+ }
+ global MALLOCSEG :: MEM_NULL {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataNullMember($1) && $1.iAllocHeap)
+ prop Label :: "Segment For malloc() / free()"
+ prop JSName :: "MALLOCSEG"
+ prop Visible :: 1
+ prop Writable :: (MEM.NOHEAPS == 0)
+ prop NoGen :: 0
+ prop Set :: (if (self.MALLOCSEG.iReqHeapCount > 0) {self.MALLOCSEG.iReqHeapCount--} , self.MALLOCSEG = $1, self.MALLOCSEG.iReqHeapCount++, "ok")
+ }
+ global USEMPC :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable Memory Protection Controller module"
+ prop JSName :: "USEMPC"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global LNKCMDFILE :: "" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Specify User Linker cmd File"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global TEXTSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.codeMember($1))
+ prop Label :: "Text Section (.text)"
+ prop JSName :: "TEXTSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0)
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ }
+ global LOADTEXTSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.codeMember($1))
+ prop Label :: "Load Address - Text Section (.text)"
+ prop JSName :: "LOADTEXTSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0 && self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global SWITCHSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataCodeMember($1))
+ prop Label :: "Switch Jump Tables (.switch)"
+ prop JSName :: "SWITCHSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0)
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ }
+ global LOADSWITCHSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataCodeMember($1))
+ prop Label :: "Load Address - Switch Jump Tables (.switch)"
+ prop JSName :: "LOADSWITCHSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0 && self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global BSSSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataMember($1))
+ prop Label :: "C Variables Section (.bss)"
+ prop JSName :: "BSSSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0)
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ }
+ global FARSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataMember($1))
+ prop Label :: "C Variables Section (.far)"
+ prop JSName :: "FARSEG"
+ prop Visible :: if GBL.DSPTYPE == 62 {1} else {0}
+ prop Writable :: (self.USERCMD == 0)
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ }
+ global CINITSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataCodeMember($1))
+ prop Label :: "Data Initialization Section (.cinit)"
+ prop JSName :: "CINITSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0)
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ }
+ global LOADCINITSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataCodeMember($1))
+ prop Label :: "Load Address - Data Initialization Section (.cinit)"
+ prop JSName :: "LOADCINITSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0 && self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global PINITSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataCodeMember($1))
+ prop Label :: "C Function Initialization Table (.pinit)"
+ prop JSName :: "PINITSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0)
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ }
+ global LOADPINITSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataCodeMember($1))
+ prop Label :: "Load Address - C Function Initialization Table (.pinit)"
+ prop JSName :: "LOADPINITSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0 && self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global CONSTSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataMember($1))
+ prop Label :: "Constant Sections (.const, .printf)"
+ prop JSName :: "CONSTSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0)
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ }
+ global LOADCONSTSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataMember($1))
+ prop Label :: "Load Address - Constant Sections (.const, .printf)"
+ prop JSName :: "LOADCONSTSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0 && self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global DATASEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataMember($1))
+ prop Label :: "Data Section (.data)"
+ prop JSName :: "DATASEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0)
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ }
+ global CIOSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataMember($1))
+ prop Label :: "Data Section (.cio)"
+ prop JSName :: "CIOSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0)
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ prop Set :: (self.CIOSEG = $1, self.SYSMEMSEG = $1, "ok")
+ }
+ global SYSMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataMember($1))
+ prop Label :: "Data Section (.sysmem)"
+ prop JSName :: "SYSMEMSEG"
+ prop Visible :: 0
+ prop Writable :: (self.USERCMD == 0)
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ }
+ global STUBMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.codeMember($1)
+ prop Label :: "Function Stub Memory (.hwi)"
+ prop JSName :: "HWISEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Code"
+ prop Set :: (self.STUBMEMSEG = $1, HWI.STUBMEMSEG = $1, "ok")
+ }
+ global LOADSTUBMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.codeMember($1)
+ prop Label :: "Load Address - Function Stub Memory (.hwi)"
+ prop JSName :: "LOADHWISEG"
+ prop Visible :: 1
+ prop Writable :: (self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global VECMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.codeMember($1)
+ prop Label :: "Interrupt Service Table Memory (.hwi_vec)"
+ prop JSName :: "HWIVECSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Code"
+ prop Set :: (self.VECMEMSEG = $1, HWI.VECMEMSEG = $1, GlobalStatus.gDirty = 1, if ($1.base == 0) {HWI.GENERATE_RESET_VEC = 0} , "ok")
+ }
+ global LOADVECMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.codeMember($1)
+ prop Label :: "Load Address -Interrupt Service Table Memory (.hwi_vec)"
+ prop JSName :: "LOADHWIVECSEG"
+ prop Visible :: 1
+ prop Writable :: (self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global RTDXTEXTMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.codeMember($1)
+ prop Label :: "RTDX Text Segment (.rtdx_text)"
+ prop JSName :: "RTDXTEXTSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Code"
+ prop Set :: (self.RTDXTEXTMEMSEG = $1, RTDX.TEXTMEMSEG = $1, "ok")
+ }
+ global LOADRTDXTEXTMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.codeMember($1)
+ prop Label :: "Load Address - RTDX Text Segment (.rtdx_text)"
+ prop JSName :: "LOADRTDXTEXTSEG"
+ prop Visible :: 1
+ prop Writable :: (self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global ENUMSPACE :: = if GBL.DSPTYPE == 62 {"code,data,code/data,reserved"} else {if GBL.DSPTYPE == 54 {"code,data,io,other,reserved"} else {if GBL.DSPTYPE == 28 {"code,code/data,data,io,other,reserved"} else {if GBL.DSPTYPE == 55 {"code/data,code,data,io,reserved"} else {"code/data,io,reserved"}}}} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "ENUMSPACE"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst base :: 0 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: if GBL.DSPTYPE == 62 {"0x%08x"} else {"0x%06x"}
+ prop Style :: 0x02
+ prop Label :: "base"
+ prop JSName :: "base"
+ prop Visible :: 1
+ prop Writable :: (self.iIsModifiable)
+ prop NoGen :: 1
+ prop Set :: ($e = "ok", $a = self.base, self.base = $1, if (MEM.CALLBACKOBJ != nil) {$e = MEM.CALLBACKOBJ.call(self), if ($e != "ok") {self.base = $a} } , $e)
+ }
+ inst len :: 0 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: if GBL.DSPTYPE == 62 {"0x%08x"} else {"0x%04x"}
+ prop Style :: 0x08
+ prop Label :: "len"
+ prop JSName :: "len"
+ prop Visible :: 1
+ prop Writable :: (self.memWritable)
+ prop NoGen :: 0
+ prop Set :: ($e = "ok", $a = self.len, self.len = $1, if (MEM.CALLBACKOBJ != nil) {$e = MEM.CALLBACKOBJ.call(self), if ($e != "ok") {self.len = $a} } , "ok")
+ }
+ inst page :: = (if GBL.DSPTYPE == 62 {-1} else {if (GBL.DSPTYPE == 55 || GBL.DSPTYPE == 28) {(if self.space == "code" {0} else {if self.space == "data" {1} else {if self.space == "io" {2} else {0}}})} else {if self.space == "code" {0} else {if self.space == "data" {1} else {if self.space == "io" {2} else {3}}}}}) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst iAllocHeap :: if MEM.NOHEAPS == 1 {0} else {1} {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "create a heap in this memory"
+ prop JSName :: "createHeap"
+ prop Visible :: 1
+ prop Writable :: (self.space == "data" || self.space == "code/data") && (MEM.NOHEAPS == 0) && self.memWritable
+ prop NoGen :: 0
+ prop Set :: ($a = "ok", if ($1 == 0 && self.iReqHeapCount > 0) {self.error("This heap is used by one or more of: segment for DSP/BIOS objects, segment for malloc()/free(), TSK default stack segment")} else {if ($1 == 0) {self.iUserHeapId = 0, self.iHeapId = @segment_name} , self.iAllocHeap = $1, MEM.gDirty = 1, $a})
+ }
+ inst iHeapSize :: 0x8000 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: if GBL.DSPTYPE == 62 {"0x%08x"} else {"0x%04x"}
+ prop Style :: 0x02
+ prop Label :: "heap size"
+ prop JSName :: "heapSize"
+ prop Visible :: 1
+ prop Writable :: (self.iAllocHeap) && (self.iIsModifiable) && (MEM.NOHEAPS == 0)
+ prop Set :: (self.iHeapSize = $1, "ok")
+ prop NoGen :: 1
+ }
+ inst iSegZero :: = MEM.SEGZERO
+ inst iUserHeapId :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "enter a user defined heap identifier label"
+ prop JSName :: "enableHeapLabel"
+ prop Set :: (if ($1 == 0) {self.iHeapId = @segment_name} , self.iUserHeapId = $1, "ok")
+ prop Visible :: 1
+ prop Writable :: (self.iAllocHeap) && (self.iIsModifiable) && (self.NOHEAPS == 0)
+ prop NoGen :: 1
+ }
+ inst iHeapId :: @segment_name {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "heap identifier label"
+ prop JSName :: "heapLabel"
+ prop Set :: ($e = self.checkHeapId($1), if ($e == "ok") {self.iHeapId = $1} , $e)
+ prop Writable :: (self.iAllocHeap) && (self.iIsModifiable) && (self.NOHEAPS == 0) && (self.iUserHeapId)
+ prop Visible :: 1
+ prop NoGen :: 0
+ }
+ inst iReqHeapCount :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst space :: (if GBL.DSPTYPE == 55 {"code/data"} else {"data"}) {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: MEM._spaceEnum()
+ prop JSName :: "space"
+ prop Visible :: 1
+ prop Writable :: (self.memWritable)
+ prop NoGen :: 1
+ prop Set :: ($e = "ok", if ($1 != "data" && $1 != "code/data" && self.iAllocHeap == 1) {$e = self.error("Cannot select this space if a heap will be created")} else {$a = self.space, self.space = $1, if (MEM.CALLBACKOBJ != nil) {$e = MEM.CALLBACKOBJ.call(self), if ($e != "ok") {self.space = $a} } }, $e)
+ }
+ inst dynamicLoading :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Reserved for dynamic loading"
+ prop JSName :: "dynamicLoading"
+ prop Visible :: GBL.ENABLEDLL
+ prop Writable :: GBL.ENABLEDLL
+ prop NoGen :: 1
+ }
+ inst iIsModifiable :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+object MEM_NULL :: MEM {
+ param iComment :: "Place holder segment which allows user to disable heaps"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param base :: 0
+ param len :: 0
+ param iAllocHeap :: 1
+ param iHeapSize :: 32768
+ param iUserHeapId :: 0
+ param iHeapId :: @segment_name
+ param iReqHeapCount :: 1
+ param space :: "data"
+ param dynamicLoading :: 0
+ param iIsModifiable :: 1
+}
+
+type OBJ {
+ isa ObjectMgr
+ prop name :: "OBJ"
+ prop Visible :: 0
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _objMemDesc, _memSeg, _placement"} )
+ prop _objMemDesc :: ("%8t .obj: {}")
+ prop _memSeg :: MEM.CFGOBJSEG
+ prop _placement :: (0x7fffffff / 2)
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+type BUF {
+ isa ObjectMgr
+ prop name :: "BUF"
+ prop Label :: "BUF - Buffer Manager"
+ prop IsContainedIn :: SYSTEM
+ prop GlobalIcon :: 199
+ prop InstanceIcon :: 200
+ prop InstanceHelpTopic :: (421)
+ prop GlobalHelpTopic :: (321)
+ prop InstancePropertyPage :: ("{B7240DE8-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop GlobalPropertyPage :: ("{B7240DE9-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop maxObjs :: (32767)
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _globalAllocDesc, _memSeg, _placement"} )
+ prop _globalAllocDesc :: ("%8t.buf:{}")
+ prop _placement :: (0x7fffffff / 2)
+ prop _memSeg :: self.OBJMEMSEG
+ prop AllocInst :: ("1\0, _instAllocDesc, _instMemSeg, _placement")
+ prop _instAllocDesc :: ("%8t .%0s$data: align = 0x%1x {%12t\n %0s$databeg = .;\n .+= %2d; %8t\n }\0, _objAlign, _buflength")
+ prop _objAlign :: self.align
+ prop _instMemSeg :: self.bufseg
+ prop _buflength :: (self.postalignsize * self.bufcount)
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"buf.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far BUF_Obj %0r;\n\0"} else {"extern BUF_Obj %0r;\n\0"})
+ prop objectSize :: (if (GBL.DSPTYPE == 62) {$a = ((7 + 3) * 4)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 1) {$a = ((7 + 4) * 4)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 0) {$a = ((7 + 3) * 4)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") {$a = (12 + 6)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE") {$a = (12 + 6)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL") {$a = (7 + 4)} , if (GBL.DSPTYPE == 28) {$a = (12 + 6)} , $a)
+ prop dataSize :: ($d = 0, scan ($i; BUF) {if ($i.IsConfObj()) {$d += $i.len} , $d += BUF.objectSize}, $d)
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global ENABLED :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Compile in logging"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst bufseg :: self.OBJMEMSEG {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Memory segment for buffer pool"
+ prop JSName :: "bufSeg"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst bufcount :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Buffer count"
+ prop JSName :: "bufCount"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (self.bufcount = $1, self.postalignsize = (self.size + (self.align - 1)) & ~(self.align - 1), self.len = $1 * self.postalignsize, "ok")
+ }
+ inst size :: 8 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Buffer size (MADUs)"
+ prop JSName :: "size"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (if ($1 < 8) {self.error("Size should be atleast 8 bytes")} else {self.size = $1, self.postalignsize = ($1 + (self.align - 1)) & ~(self.align - 1), self.len = self.postalignsize * self.bufcount, "ok"})
+ }
+ inst align :: 4 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Buffer alignment(Power of 2)"
+ prop JSName :: "align"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (if ($1 < 4) {self.error("Alignment should be atleast 4 ")} else {self.align = $1, self.postalignsize = (self.size + ($1 - 1)) & ~($1 - 1), self.len = self.postalignsize * self.bufcount, "ok"})
+ }
+ inst len :: self.size {
+ prop Label :: "Buffer pool length (MADUs)"
+ prop JSName :: "len"
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst postalignsize :: self.size {
+ prop Label :: "Buffer size after alignment (MADUs)"
+ prop JSName :: "postalignsize"
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+}
+
+type POOL {
+ isa Module
+ prop Visible :: 1
+ prop name :: "POOL"
+ prop Label :: "POOL - Allocator Manager"
+ prop IsConfMod :: self.USEPOOL
+ prop IsContainedIn :: SYSTEM
+ prop GlobalIcon :: 199
+ prop InstanceIcon :: 200
+ prop GlobalHelpTopic :: (324)
+ prop InstanceHelpTopic :: (424)
+ prop InstancePropertyPage :: ("{473C4A62-B1A8-11d0-9885-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{473C4A63-B1A8-11d0-9885-0020AFEE33C6}")
+ prop DependsOn :: "MEM,BUF"
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global USEPOOL :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable Allocator Manager"
+ prop JSName :: "ENABLEPOOL"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+}
+
+type CLK {
+ isa ObjectMgr
+ prop name :: "CLK"
+ prop Label :: "CLK - Clock Manager"
+ prop IsContainedIn :: SCH
+ prop IsConfMod :: 1
+ prop GlobalIcon :: 103
+ prop InstanceIcon :: 104
+ prop InstanceHelpTopic :: (202)
+ prop GlobalHelpTopic :: (102)
+ prop InstancePropertyPage :: ("{EEB2AB41-51E3-11d0-A61D-0000C070F3E9}")
+ prop GlobalPropertyPage :: ("{EEB2AB40-51E3-11d0-A61D-0000C070F3E9}")
+ prop objectSize :: ($a = (1 * 4), $a)
+ prop GenLinkPrologue :: ("SECTIONS {%4t\n.%1L: {\n%8t \n CLK_F_gethtime = %5s;\n %4S \n%4t} > %3s, RUN_START(%1U_A_TABBEG) \0, name, _objSize, _memSeg, _linkString, clkFxn, _clkStartFxn")
+ prop _clkStartFxn :: if (GBL.SUPPORTCSL && self.USETIMER) {@_CLK_start6x} else {@FXN_F_nop}
+ prop GenLinkEpilogue :: ("%0t}\n_CLK_PRD = CLK_PRD;\n_CLK_COUNTSPMS = CLK_COUNTSPMS;\n_CLK_REGS = CLK_REGS;\n_CLK_USETIMER = CLK_USETIMER;\n_CLK_TIMERNUM = CLK_TIMERNUM;\n_CLK_TDDR = CLK_TDDR;\n\0")
+ prop _linkString :: if self.gNumOf > 0 {"*(.%1L)"} else {"/* no CLK objs */"}
+ prop _memSeg :: CLK.OBJMEMSEG
+ prop _objSize :: self.objectSize()
+ prop clkFxn :: if (self.USETIMER == 1) {self.CLKFXN} else {@FXN_F_zero}
+ prop maxObjs :: (32767)
+ prop SortByField :: "iPri"
+ prop SortGroups :: 1
+ prop localInit :: (if (GBL.CALLBACKOBJ != CLK) {CLK.gGBLChain = GBL.CALLBACKOBJ, GBL.CALLBACKOBJ = CLK} )
+ prop dataSize :: (self.objectSize() * (CLK.gNumOf + 1))
+ prop localCanCreate :: (if self.USETIMER {"ok"} else {self.error("The CLK Manager must be enabled before inserting a CLK")})
+ prop localCreate :: (CLK.HOOKFXN = @HWI_F_dispatch, self.seizeHwi(self.WHICHHWI), "ok")
+ prop localDelete :: (if (self.gNumOf == 1) {if (GBL.CALLMODEL == "far") {CLK.HOOKFXN = @CLK_F_frete, self.seizeHwi(self.WHICHHWI)} else {CLK.HOOKFXN = @CLK_F_rete, self.seizeHwi(self.WHICHHWI)}} , "ok")
+ prop adjustPrd :: (if GBL.DSPTYPE == 62 {0} else {1})
+ prop seizeHwi :: (if ($1.client == "USER" && $1 == HWI_UNUSED) {self.error("Interrupt not mapped for selected timer.")} else {if ($1.client == "USER" && $1.function != @HWI_unused) {self.error("Interrupt mapped to selected timer is already in use.")} else {if ($1.client == "CSL") {self.error("Interrupt mapped to selected timer is already in use by CSL.")} else {$1.function = @CLK_F_isr, $1.client = "CLK", $1.iEventId = $1.iSource.iIntrSelectNum, $1.iUseDispatcher = (if CLK.HOOKFXN == @HWI_F_dispatch {1} else {0}), $1.iArg = (if $1.iUseDispatcher == 1 {@CLK_A_TABBEG} else {0}), HWI.gDirty = 1, "ok"}}})
+ prop releaseHwi :: ($1.function = @HWI_unused, $1.client = "USER", $1.iUseDispatcher = 0, $1.iArg = 0, HWI.gDirty = 1, "ok")
+ prop seizeTimer :: (if ($1 == "Timer 0") {self.WHICHTIMER = "Timer 0", self.WHICHHWI = Timer_0.iHwi, self.REGS = 0x01000, self.TIMERNUM = 0, self.TIMERIMR = 0x0, self.TIMERIFR = 0x1, self.INTBIT = 4, self.TIMERIMRMASK = self.WHICHHWI.Ier0Mask, self.IMR0TINTMASK = self.WHICHHWI.Ier0Mask, self.IMR1TINTMASK = 0x0, self.setMicroseconds(self.MICROSECONDS)} else {if ($1 == "Timer 1") {self.WHICHTIMER = "Timer 1", self.WHICHHWI = Timer_1.iHwi, self.REGS = 0x2400, self.TIMERNUM = 1, self.TIMERIMR = 0x45, self.TIMERIFR = 0x46, self.INTBIT = 6, self.TIMERIMRMASK = self.WHICHHWI.Ier1Mask, self.IMR0TINTMASK = 0x0, self.IMR1TINTMASK = self.WHICHHWI.Ier1Mask, self.setMicroseconds(self.MICROSECONDS)} else {if ($1 == "Timer 2") {self.WHICHTIMER = "Timer 2", self.WHICHHWI = Timer_2.iHwi, self.REGS = 0x4000, self.TIMERNUM = 2, self.TIMERIMR = 0x0, self.TIMERIFR = 0x1, self.INTBIT = 11, self.TIMERIMRMASK = self.WHICHHWI.Ier0Mask, self.IMR0TINTMASK = self.WHICHHWI.Ier0Mask, self.IMR1TINTMASK = 0x0, self.setMicroseconds(self.MICROSECONDS)} }}, "ok")
+ prop setMicroseconds :: ($a = if FIXTDDR == 1 {self.TDDR} else {0}, $b = 0xffffffff, $c = (float($a) + 1.0) * ((float($b) + self.adjustPrd) / (GBL.MIPS / 4)), if ($1 < $c && $1 > 0.1) {if (self.FIXTDDR == 0) {self.TDDR = int((1.0 * $1 * GBL.MIPS / 4) / (float($b) + self.adjustPrd))} , self.PRD = int((1.0 * $1 * GBL.MIPS) / (4 * (self.TDDR + 1.0))) - self.adjustPrd, self.MICROSECONDS = ((float((self.PRD)) + CLK.adjustPrd) * ((self.TDDR) + 1.0) * 4 / GBL.MIPS), if (self.CALLBACKOBJ != nil) {self.CALLBACKOBJ.call()} , "ok"} else {self.error("The on-chip timer does not have enough range to support this combination of DSP MIPS and Microseconds/Int")})
+ prop call :: ($a = ((float((CLK.PRD)) + CLK.adjustPrd) * ((CLK.TDDR) + 1.0) * 4 / GBL.MIPS), $b = CLK.MICROSECONDS, $e = "ok", if (($e = self.setMicroseconds(CLK.MICROSECONDS)) == "ok") {if (CLK.gGBLChain != nil) {$e = CLK.gGBLChain.call()} , if ($e != "ok") {self.setMicroseconds($b), self.error($e)} else {"ok"}} else {$e})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gGBLChain :: nil {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: self.USETIMER
+ prop NoGen :: 1
+ }
+ global WHICHHWI :: HWI_INT14 {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: HWI
+ prop Label :: "CPU Interrupt"
+ prop Visible :: 1
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global INTBIT :: = self.WHICHHWI.iIntrEnableMask
+ global WHICHTIMER :: "Timer 0" {
+ prop Label :: "Timer Selection"
+ prop JSName :: "TIMERSELECT"
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "Timer 0,Timer 1"
+ prop Visible :: 1
+ prop Writable :: self.USETIMER
+ prop NoGen :: 1
+ prop Set :: (if (self.WHICHTIMER != $1) {if (self.USETIMER == 0) {$e = "ok"} else {if ($1 == "Timer 0") {$a = Timer_0.iHwi} else {if ($1 == "Timer 1") {$a = Timer_1.iHwi} else {$a = Timer_2.iHwi}}, $e = self.seizeHwi($a)}, if ($e == "ok") {self.releaseHwi(self.WHICHHWI), if ($1 == "Timer 0") {self.TIMERNUM = 0, self.WHICHHWI = Timer_0.iHwi} else {if ($1 == "Timer 1") {self.TIMERNUM = 1, self.WHICHHWI = Timer_1.iHwi} else {self.TIMERNUM = 2, self.WHICHHWI = Timer_2.iHwi}}, self.WHICHTIMER = $1, self.HOOKFXN = if self.gNumOf > 0 {@HWI_F_dispatch} else {(if GBL.CALLMODEL == "far" {@CLK_F_frete} else {@CLK_F_rete})}, self.seizeHwi(self.WHICHHWI)} , $e} )
+ }
+ global REGS :: = if self.WHICHTIMER == "Timer 0" {self.TIMER0BASE} else {if self.WHICHTIMER == "Timer 1" {self.TIMER1BASE} else {self.TIMER2BASE}} {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Visible :: 0
+ prop Writable :: 1
+ }
+ global TIMER0BASE :: 26476544 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Writable :: 1
+ prop Visible :: 0
+ prop JSName :: "TIMER0BASE"
+ prop NoGen :: 1
+ }
+ global TIMER1BASE :: 26738688 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Writable :: 1
+ prop Visible :: 0
+ prop JSName :: "TIMER1BASE"
+ prop NoGen :: 1
+ }
+ global TIMER2BASE :: 28049408 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Writable :: 1
+ prop Visible :: 0
+ prop JSName :: "TIMER2BASE"
+ prop NoGen :: 1
+ }
+ global TIMERNUM :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop NoGen :: 0
+ }
+ global USETIMER :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable CLK Manager"
+ prop JSName :: "ENABLECLK"
+ prop Visible :: 1
+ prop Writable :: if self.gNumOf > 0 {0} else {1}
+ prop NoGen :: 0
+ prop Set :: (if ($1 == 1 && self.USETIMER == 0) {if (($e = self.seizeHwi(self.WHICHHWI)) == "ok") {self.USETIMER = 1, self.TIMEFXN = if CLK.HIRES {CLK.clkFxn()} else {@CLK_F_getltime}, self.HOOKFXN = if GBL.CALLMODEL == "far" {@CLK_F_frete} else {@CLK_F_rete}, self.seizeHwi(self.WHICHHWI), GlobalStatus.gDirty = 1, if (GlobalStatus.MinStackSize >= MEM.STACKSIZE) {self.releaseHwi(self.WHICHHWI), self.TIMEFXN = @FXN_F_zero, self.HOOKFXN = @FXN_F_nop, self.USETIMER = 0, GlobalStatus.gDirty = 1, self.error("Current stack size inadequate to enable CLK")} else {if (GBL.ENABLEINST == 1) {IDL_busyObj.Create("IDL"), IDL.USEIDLBUSYOBJ = 1, IDL_cpuLoad.Create("IDL"), IDL.AUTOCALCULATE = GBL.OLDAUTOCALCULATE} , $e}} else {$e}} else {if ($1 == 0 && self.USETIMER == 1) {self.releaseHwi(self.WHICHHWI), self.TIMEFXN = @FXN_F_zero, self.HOOKFXN = @FXN_F_nop, self.USETIMER = 0, if (GBL.ENABLEINST == 1) {IDL_busyObj.Delete("IDL"), IDL.USEIDLBUSYOBJ = 0, IDL_cpuLoad.Delete("IDL"), GBL.OLDAUTOCALCULATE = IDL.AUTOCALCULATE, IDL.AUTOCALCULATE = 0} , "ok"} else {"ok"}})
+ }
+ global HIRES :: = 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Use high resolution time for internal timings"
+ prop JSName :: "HIRESTIME"
+ prop Visible :: 1
+ prop Writable :: self.USETIMER
+ prop NoGen :: 1
+ prop Set :: (if (CLK.USETIMER) {CLK.HIRES = $1, if (CLK.USETIMER) {CLK.TIMEFXN = if CLK.HIRES {CLK.clkFxn()} else {@CLK_F_getltime}} , "ok"} else {self.error("CLK Manager must be enabled in order to get high resolution timings.")})
+ }
+ global INSTRPERCLK :: 4 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global MICROSECONDS :: 1000.000000 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: 0x04
+ prop Format :: "%.4f"
+ prop Label :: "Microseconds/Int"
+ prop JSName :: "MICROSECONDS"
+ prop Set :: (self.setMicroseconds($1))
+ prop Visible :: 1
+ prop Writable :: if ((CLK.PROGTIMREGS != 0) | (self.USETIMER == 0)) {0} else {1}
+ prop NoGen :: 1
+ }
+ global MICROSECS :: = int(round(self.MICROSECONDS)) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global PROGTIMREGS :: = 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Directly configure on-chip timer registers"
+ prop JSName :: "CONFIGURETIMER"
+ prop Visible :: 1
+ prop Writable :: self.USETIMER
+ prop NoGen :: 1
+ }
+ global TCR :: = 0x20 | CLK.TDDR {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01 | 0x02
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global FIXTDDR :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Fix TDDR"
+ prop JSName :: "FIXTDDR"
+ prop Visible :: (GBL.DSPTYPE != 62)
+ prop Writable :: CLK.PROGTIMREGS && (GBL.DSPTYPE != 62)
+ prop NoGen :: 1
+ }
+ global TDDR :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Label :: "TDDR Register"
+ prop JSName :: "TCRTDDR"
+ prop Set :: (if ((GBL.DSPTYPE != 62) && ($1 > 0)) {self.error("The on-chip timer does not have enough range to support this value, maximum is 15.")} else {CLK.TDDR = $1, CLK.MICROSECONDS = ((float((CLK.PRD)) + CLK.adjustPrd) * ((CLK.TDDR) + 1.0) * 4 / GBL.MIPS), if (CLK.CALLBACKOBJ != nil) {CLK.CALLBACKOBJ.call()} , "ok"})
+ prop Visible :: GBL.DSPTYPE != 62
+ prop Writable :: CLK.PROGTIMREGS && GBL.DSPTYPE != 62
+ prop NoGen :: 0
+ }
+ global TDDRHIGH :: = ((self.TDDR & 0xffff0000) >> 16) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ }
+ global PRD :: 56250 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Label :: if (GBL.CLKTYPE == 700) {"Compare0 Register"} else {"PRD Register"}
+ prop JSName :: "PRD"
+ prop Set :: (CLK.PRD = $1, CLK.MICROSECONDS = ((float((CLK.PRD)) + CLK.adjustPrd) * ((CLK.TDDR) + 1.0) * 4 / GBL.MIPS), if (CLK.CALLBACKOBJ != nil) {CLK.CALLBACKOBJ.call()} , "ok")
+ prop Visible :: 1
+ prop Writable :: if ((self.PROGTIMREGS) && (self.USETIMER)) {1} else {0}
+ prop NoGen :: 0
+ }
+ global PRDHIGH :: = ((self.PRD & 0xffff0000) >> 16) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ }
+ global COUNTSPMS :: = int(round(GBL.MIPS * 1000.0 / (CLK.TDDR + 1) / 4)) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ }
+ global COUNTSPMSHIGH :: = ((self.COUNTSPMS & 0xffff0000) >> 16) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ }
+ global INSTRUCTIONS :: = (1.0 * (float(CLK.PRD) + CLK.adjustPrd) * (CLK.TDDR + 1.0) * 4) {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: 0x04
+ prop Format :: "%.0f"
+ prop Label :: "Instructions/Int"
+ prop Visible :: 1
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global TIMEFXN :: = CLK.clkFxn() {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global HOOKFXN :: @HWI_F_dispatch {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global CLKFXN :: = if (CLK.PRD == 0xffffffff) {@CLK_F_getfhtime} else {@CLK_F_getshtime} {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CALLBACKOBJ :: PRD {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CALDIV :: = 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global CALMULT :: = 4 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global HTIMEDIV :: = 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global HTIMEMULT :: = if GBL.DSPSUBTYPE == 6499 {1} else {((self.TDDR + 1) * 4)} {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global LTIMEDIV :: = 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global LTIMEMULT :: = ((self.TDDR + 1) * (self.PRD + self.adjustPrd) * (4)) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global HTIMEPERLTIME :: = if GBL.DSPSUBTYPE == 6499 {int(round(GBL.MIPS * self.MICROSECONDS))} else {(self.PRD + CLK.adjustPrd)} {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst function :: @FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "function"
+ prop JSName :: "fxn"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ }
+ inst Order :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "order"
+ prop NoGen :: 1
+ prop Writable :: 1
+ }
+ inst iPri :: 0 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop NoGen :: 1
+ }
+}
+
+type PRD {
+ isa ObjectMgr
+ prop name :: "PRD"
+ prop Label :: "PRD - Periodic Function Manager"
+ prop IsContainedIn :: SCH
+ prop IsConfMod :: 1
+ prop GlobalIcon :: 119
+ prop InstanceIcon :: 120
+ prop InstanceHelpTopic :: (210)
+ prop GlobalHelpTopic :: (110)
+ prop InstancePropertyPage :: ("{B7240DE0-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop GlobalPropertyPage :: ("{B7240DE1-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop STSGetMaxFmt :: ("%g ticks")
+ prop STSGetSumFmt :: (PRD.STSGetMaxFmt())
+ prop STSGetAvgFmt :: ("%.2f ticks")
+ prop GetPeriod :: self.period
+ prop IsOneShot :: if self.mode == "one-shot" {1} else {0}
+ prop objectSize :: (if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL") {$a = (10 * 4)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 0) {$a = (9 * 4)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 1) {$a = (12 * 4)} , if (GBL.DSPTYPE == 28 || (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") || (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE")) {$a = (12 * 4)} , if (GBL.DSPTYPE == 62) {$a = (8 * 4)} , $a)
+ prop GenLinkPrologue :: ("SECTIONS {%4t\n.prd: RUN_START(PRD_A_TABBEG), RUN_END(PRD_A_TABEND) {%4t\n} > %1s%2s\0, memSeg, pageString")
+ prop GenLinkEpilogue :: ("%0t}\nPRD_A_TABLEN = %1d;\n\0, numInst")
+ prop linkString :: if self.gNumOf > 0 {"*(.%1L)"} else {"/* no %1U objects */"}
+ prop pageString :: if GBL.DSPTYPE == 62 {""} else {if (GBL.DSPTYPE == 55 || GBL.DSPTYPE == 28) {(if PRD.OBJMEMSEG.space() == "code" {" PAGE 0"} else {if PRD.OBJMEMSEG.space() == "data" {" PAGE 1"} else {if PRD.OBJMEMSEG.space() == "io" {" PAGE 2"} else {" PAGE 0"}}})} else {" PAGE 1"}}
+ prop memSeg :: PRD.OBJMEMSEG
+ prop objSize :: if GBL.DSPTYPE == 55 {self.objectSize() * 2} else {self.objectSize()}
+ prop numInst :: (PRD.gNumOf)
+ prop dataSize :: (self.objectSize() * PRD.gNumOf)
+ prop localInit :: (if (CLK.CALLBACKOBJ != nil) {self.error("PRD initialization failure")} , CLK.CALLBACKOBJ = PRD, if (PRD.USECLK && PRD_clock.iIsUsed == 0) {PRD_clock.Create("PRD")} , if (PRD_clock.iIsUsed == 1) {if (self.gNumOf == 0) {if (TSK.USETSK == 1 && TSK.TSKTICK == "PRD") {PRD_clock.function = @PRD_F_tick} else {PRD_clock.function = @FXN_F_nop}} else {PRD_clock.function = @PRD_F_tick}} )
+ prop localCanCreate :: (if (GlobalStatus.MinStackSize >= MEM.STACKSIZE) {self.error(" System Stack Size too small")} else {self.myCreate("can")})
+ prop localCreate :: (STS.gNumEmbed += 1, if (($a = self.myCreate("do")) == "ok") {if (PRD_clock.iIsUsed == 1) {if (self.gNumOf == 0) {PRD_clock.function = @PRD_F_tick} } } , $a)
+ prop localCanDelete :: (self.myDelete("can"))
+ prop localDelete :: (STS.gNumEmbed -= 1, if (($a = self.myDelete("do")) == "ok") {if (self.gNumOf == 1) {if (PRD_clock.iIsUsed == 1) {if (TSK.USETSK == 1 && TSK.TSKTICK == "PRD") {PRD_clock.function = @PRD_F_tick} else {PRD_clock.function = @FXN_F_nop}} } } , $a)
+ prop maxObjs :: (32767)
+ prop myCreate :: (if (PRD_swi.function != @PRD_F_swi) {PRD_swi.function = @PRD_F_swi} , if (PRD_swi.iIsUsed) {"ok"} else {if (SWI.CanCreate() == "ok") {if ($1 == "do") {if (KNL_swi.iIsUsed == 1 && PRD_swi.pri == 0) {PRD_swi.pri = 1} , PRD_swi.Create("PRD")} else {"ok"}} else {self.error("Can't create an SWI for PRD (try deleting a SWI)")}})
+ prop myDelete :: (if (PRD_swi.function != @PRD_F_swi) {PRD_swi.function = @PRD_F_swi} , if (self.gNumOf == 1) {if ($1 == "do") {PRD_swi.Delete("PRD")} else {"ok"}} else {"ok"})
+ prop call :: (if (CLK.USETIMER != 0) {PRD.MICROSECONDS = CLK.MICROSECONDS} , PRD.CALLBACKOBJ.call())
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"prd.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far PRD_Obj %0r;\n\0"} else {"extern PRD_Obj %0r;\n\0"})
+ prop SortByField :: "iPri"
+ prop SortGroups :: 1
+ prop DEFAULT_THOOKFXN :: @_KNL_tick
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global USECLK :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Use CLK Manager to drive PRD"
+ prop JSName :: "USECLK"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop Set :: (if ($1 == 1 && self.USECLK == 0) {if (CLK.USETIMER == 0) {self.error("In order to drive periodic functions, the CLK Manager must be enabled")} else {self.USECLK = 1, self.MICROSECONDS = CLK.MICROSECONDS, CLK.CALLBACKOBJ = PRD, PRD_clock.Create("PRD"), GlobalStatus.gDirty = 1, if (GlobalStatus.MinStackSize >= MEM.STACKSIZE) {self.USECLK = 0, self.MICROSECONDS = 0.0, CLK.CALLBACKOBJ = nil, PRD_clock.Delete("PRD"), self.error("Current Stack size inadequate to enable this option")} else {"ok"}}} else {if ($1 == 0 && self.USECLK == 1) {self.USECLK = 0, self.MICROSECONDS = 0.0, CLK.CALLBACKOBJ = nil, PRD_clock.Delete("PRD")} , "ok"})
+ prop NoGen :: 1
+ }
+ global MICROSECONDS :: 1000.000000 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: 0x04
+ prop Format :: "%.1f"
+ prop Label :: "Microseconds/Tick"
+ prop JSName :: "MICROSECONDS"
+ prop Visible :: 1
+ prop Writable :: self.USECLK == 0
+ prop NoGen :: 1
+ }
+ global SCALAR :: = ($d = 2, $f = 0, while ($d <= 0x4000 && $f == 0) {scan ($i; PRD) {if ((($i.period / $d) * $d != $i.period)) || ($i.mode == "one-shot") {$f = 1} }, if ($f == 0) {$d = 2 * $d} }, $d / 2) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global THOOKFXN :: @_KNL_tick {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "System Tick Hook Function"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global CALLBACKOBJ :: STS {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst period :: 0x7fff {
+ prop Label :: "period (ticks)"
+ prop JSName :: "period"
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01 | 0x02
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (if (($1 > 0) && ($1 < 0x8000)) {self.period = $1, self.gDirty = 1, "ok"} else {self.error("Periodic function periods must be greater than 0 and less than 0x8000")})
+ }
+ inst mode :: "continuous" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "continuous,one-shot"
+ prop JSName :: "mode"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst function :: @FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "fxn"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst arg0 :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "arg0"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst arg1 :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "arg1"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst milliseconds :: = ((self.period * PRD.MICROSECONDS) / 1000.0) {
+ prop Label :: "period (ms)"
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: 0x04
+ prop Format :: "%.1f"
+ prop Visible :: 1
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst Order :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "order"
+ prop NoGen :: 0
+ prop Writable :: 1
+ }
+ inst iPri :: 0 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop NoGen :: 1
+ }
+ inst filter :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "filter"
+ prop NoGen :: 0
+ }
+ inst maxformat :: "%g ticks" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "maxformat"
+ prop NoGen :: 0
+ }
+ inst sumformat :: "%g ticks" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "sumformat"
+ prop NoGen :: 0
+ }
+ inst avgformat :: "%.2f ticks" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "avgformat"
+ prop NoGen :: 0
+ }
+ inst unittype :: 2 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "unittype"
+ prop NoGen :: 0
+ }
+}
+
+object PRD_swi :: SWI {
+ param iComment :: "This Software ISR executes all configured PRD functions"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "PRD"
+ param iDelMsg :: "This object is automatically deleted when all PRD objects are deleted"
+ param function :: @PRD_F_swi
+ param pri :: 1
+ param mailbox :: 0
+ param arg0 :: 0
+ param arg1 :: 0
+ param dorta :: 1
+ param Order :: 0
+ param filter :: 2
+ param maxformat :: "%g inst"
+ param sumformat :: "%g inst"
+ param avgformat :: "%.2f inst"
+ param filtmaxmult :: 1
+ param filtsummult :: 1
+ param unittype :: 0
+}
+
+object PRD_clock :: CLK {
+ param iComment :: "This clock function calls PRD_tick from within the on-chip timer ISR"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "PRD"
+ param iDelMsg :: "This object is automatically deleted by disabling the 'Use CLK Manager to drive PRD' option of PRD"
+ param function :: @PRD_F_tick
+ param Order :: 0
+ param iPri :: 0
+}
+
+type RTDX {
+ isa ObjectMgr
+ prop Label :: "RTDX - Real-Time Data Exchange Settings"
+ prop name :: "RTDX"
+ prop IsConfMod :: self.USERTDX
+ prop IsContainedIn :: IOF
+ prop GlobalIcon :: 145
+ prop InstanceIcon :: 146
+ prop GlobalHelpTopic :: (113)
+ prop InstanceHelpTopic :: (213)
+ prop InstancePropertyPage :: ("{f80273c0-3838-11d2-a32c-006097656921}")
+ prop GlobalPropertyPage :: ("{050a0600-3839-11d2-a32c-006097656921}")
+ prop AllocType :: (if self.USERTDX {"2\0, _rtdxDataAllocDesc, _rtdxDataSeg, _placement,
+ _rtdxTextAllocDesc, _rtdxTextSeg, _placement"} else {""})
+ prop _rtdxDataAllocDesc :: (" .%1L_data: {} \0, name")
+ prop _rtdxTextAllocDesc :: (if (MEM.ENABLELOADSEG == 1) {if (MEM.RTDXTEXTMEMSEG == MEM.LOADRTDXTEXTMEMSEG) {" .%1L_text: {} \0, name"} else {" .%1L_text: {} load > %2s, run \0, name, _loadRtdxTextMemSeg"}} else {" .%1L_text: {} \0, name"})
+ prop _rtdxDataSeg :: RTDX.DATAMEMSEG
+ prop _rtdxTextSeg :: MEM.RTDXTEXTMEMSEG
+ prop _loadRtdxTextMemSeg :: MEM.LOADRTDXTEXTMEMSEG
+ prop _placement :: (0x7fffffff / 2)
+ prop _objSize :: RTDX.BUFMEMSIZE
+ prop GenLinkPrologue :: (if self.USERTDX {"_RTDX_interrupt_mask = 0x%1x;\n\0, _interruptMask"} else {""})
+ prop _interruptMask :: RTDX.MASK
+ prop cGen :: 1
+ prop noObjectAlias :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"rtdx.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {if (self.iChannelMode == "output") {"extern far RTDX_outputChannel %0r;\n\0"} else {"extern far RTDX_inputChannel %0r;\n\0"}} else {if (self.iChannelMode == "output") {"extern RTDX_outputChannel %0r;\n\0"} else {"extern RTDX_inputChannel %0r;\n\0"}})
+ prop cGenCInst :: (if (self.iChannelMode == "output") {"RTDX_CreateOutputChannel(%0r);\n\0"} else {"RTDX_CreateInputChannel(%0r);\n\0"})
+ prop dataSize :: ($d = 0, if (self.USERTDX) {$d = RTDX.BUFMEMSIZE} else {$d = 0}, scan ($a; RTDX) {if ($a.iChannelMode == "output") {$d += 1} else {$d += 3}}, $d)
+ prop localCanCreate :: ($e = "ok", if (RTDX.USERTDX != 1) {$e = self.error("RTDX manager not enabled")} , $e)
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global USERTDX :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable Real-Time Data Exchange (RTDX)"
+ prop JSName :: "ENABLERTDX"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (if ($1 == 0) {if (HST.LNKTYPE == "RTDX") {self.error("RTDX is being used by HST; select a different host link type before attempting to disable RTDX")} else {if (self.gNumOf > 0) {self.error("Cannot disable RTDX until all RTDX objects are deleted.")} else {GlobalStatus.gDirty = 1, self.USERTDX = $1, if (RTDX.CALLBACKOBJ != nil) {RTDX.CALLBACKOBJ.call()} , "ok"}}} else {GlobalStatus.gDirty = 1, self.USERTDX = $1, if (RTDX.CALLBACKOBJ != nil) {RTDX.CALLBACKOBJ.call()} , "ok"})
+ }
+ global USERTEXECUTION :: = 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable Real-Time Execution Control"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global RTDXTYPE :: "JTAG" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "JTAG,HSRTDX,Simulator"
+ prop Label :: "RTDX Mode"
+ prop JSName :: "MODE"
+ prop Visible :: 1
+ prop Writable :: self.USERTDX
+ prop NoGen :: 0
+ prop Set :: (self.RTDXTYPE = $1, if (RTDX.CALLBACKOBJ != nil) {RTDX.CALLBACKOBJ.call()} , "ok")
+ }
+ global DATAMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "RTDX Data Segment (.rtdx_data)"
+ prop JSName :: "RTDXDATASEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global BUFMEMSIZE :: = (256 + 2) * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Label :: "RTDX Buffer Size (MAUs)"
+ prop JSName :: "BUFSIZE"
+ prop Visible :: 1
+ prop Writable :: self.USERTDX
+ prop NoGen :: 0
+ prop Set :: (if (HST.RTDX == 0) {self.BUFMEMSIZE = $1, GlobalStatus.gDirty = 1, "ok"} else {if ($1 < (HST.MAXFRAMESET + 3) * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE)) {self.error("size (in MAUs) must be at least: (largest configured HST channel framesize in words + 3) * (MAUs per word)")} else {self.BUFMEMSIZE = $1, GlobalStatus.gDirty = 1, if (HST.LNKTYPE == "RTDX") {HST.MAXFRAMEALLOWED = (self.BUFMEMSIZE / (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE)) - 3, "ok"} else {"ok"}}})
+ }
+ global TEXTMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.codeMember($1)
+ prop Label :: "RTDX Text Segment (.rtdx_text)"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global MASK :: 0 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: "0x%08x"
+ prop Style :: 0x02
+ prop Label :: "RTDX Interrupt Mask"
+ prop JSName :: "INTERRUPTMASK"
+ prop Visible :: 1
+ prop Writable :: self.USERTDX
+ prop NoGen :: 1
+ prop Set :: (self.MASK = $1, "ok")
+ }
+ global CALLBACKOBJ :: HWI {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iChannelMode :: "output" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Channel Mode"
+ prop JSName :: "channelMode"
+ prop Enum :: "input,output"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (GlobalStatus.gDirty = 1, self.iChannelMode = $1, "ok")
+ }
+}
+
+type HST {
+ isa ObjectMgr
+ prop name :: "HST"
+ prop Label :: "HST - Host Channel Manager"
+ prop IsContainedIn :: IOF
+ prop DependsOn :: "HWI"
+ prop FileStream :: 1
+ prop GlobalIcon :: 107
+ prop InstanceIcon :: 108
+ prop GlobalHelpTopic :: (104)
+ prop InstanceHelpTopic :: (204)
+ prop maxObjs :: (GBL.DSPWORDSIZE)
+ prop dataSize :: ($b = 0, scan ($i; HST) {if ($i.IsConfObj()) {$b += (12 + $i.framesize) * $i.numframes + PIP.OBJSIZE + self.objectSize()} }, $b)
+ prop InstancePropertyPage :: ("{B7240DEA-AA51-11cf-9BFE-0000C0AC14C8}")
+ prop GlobalPropertyPage :: ("{B7240DEB-AA51-11cf-9BFE-0000C0AC14C8}")
+ prop localCreate :: (PIP.gNumEmbed += 1, if (self.gNumOf == 0) {(LNK_dataPump.Create("HST"))} , "ok")
+ prop localDelete :: (PIP.gNumEmbed -= 1, $b = 0, scan ($i; HST) {if ($i != self) {if ($i.IsConfObj()) {if ($i.framesize > $b) {$b = $i.framesize} } } }, self.MAXFRAMESET = $b, if (self.gNumOf == 1) {(LNK_dataPump.Delete("HST"))} , "ok")
+ prop GenLinkPrologue :: (if (self.LNKTYPE == "RTDX") {"_LNK_dspFrameReadyMask = LNK_dspFrameReadyMask; \n_LNK_dspFrameRequestMask = LNK_dspFrameRequestMask; \n_LNK_readDone = LNK_readDone; \n_LNK_readFail = LNK_readFail; \n_LNK_readPend = LNK_readPend; \n_LNK_writeFail = LNK_writeFail;"} )
+ prop AllocType :: ("2\0, _globalAllocDesc, _memSeg, _placement, _dsmAllocDesc, _dsmMemSeg, _placement")
+ prop _globalAllocDesc :: ("%8t .%1L: RUN_START(%1U_A_TABBEG), RUN_START(_%1U_A_TABBEG), RUN_END(%1U_A_TABEND), RUN_END(_%1U_A_TABEND) {%8t\n }\0, name")
+ prop objectSize :: (if (GBL.DSPTYPE == 28) {$a = (14 * 4)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") {$a = (12 * 4)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE") {$a = (12 * 4)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL") {$a = (10 * 4)} , if (GBL.DSPTYPE == 54 || GBL.DSPTYPE == 62) {$a = (7 * 4)} , $a)
+ prop _dsmAllocDesc :: ("%8t .dsm: {}")
+ prop _placement :: (0x7fffffff / 2)
+ prop AllocInst :: ("1\0, _instAllocDesc, _objMemSeg, _placement")
+ prop _instAllocDesc :: ("/* %0s buffer */\n.hst%2d: %3S\0, name, _objId, _alignString, _objAlign")
+ prop _alignString :: if self.bufalign > 1 {"align = 0x%4x {}"} else {""}
+ prop _objId :: self.iId
+ prop _objAlign :: self.bufalign
+ prop _objMemSeg :: self.bufseg
+ prop _linkString :: if (self.gNumOf + self.gNumEmbed) > 0 {"*(.%1L)"} else {"/* no %1U objects */"}
+ prop _memSeg :: HST.OBJMEMSEG
+ prop _dsmMemSeg :: HST.DSMBUFSEG
+ prop _objSize :: if GBL.DSPTYPE == 55 {(2 * self.objectSize())} else {self.objectSize()}
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"hst.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far HST_Obj %0r;\n\0"} else {"extern HST_Obj %0r;\n\0"})
+ prop modifiable :: ((if self.iDelUser == "USER" {1} else {0}))
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 3 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 2 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumEmbed :: 0 {
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global LNKTYPE :: "RTDX" {
+ prop Label :: "Host Link Type"
+ prop JSName :: "HOSTLINKTYPE"
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "RTDX,NONE"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: (if ($1 == "RTDX") {if (RTDX.USERTDX == 0) {self.error("RTDX module must be enabled before it can be used by HST")} else {if ((RTDX.BUFMEMSIZE / (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE)) - 2 < self.MAXFRAMESET) {self.error("RTDX buffer size too small for largest configured HST channel")} else {if (self.LNKTYPE == "NONE") {GlobalStatus.gDirty = 1, self.LNKTYPE = $1, $b = 0, scan ($i; HST) {if ($i.IsConfObj()) {if ($i.framesize > $b) {$b = $i.framesize} } }, self.MAXFRAMESET = $b, self.MAXFRAMEALLOWED = (RTDX.BUFMEMSIZE / (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE)) - 3, "ok"} else {self.LNKTYPE = $1, self.MAXFRAMEALLOWED = (RTDX.BUFMEMSIZE / (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE)) - 3, "ok"}}}} else {if ($1 == "Shared Memory") {if ((self.DSMMEMSIZE / 4) < self.MAXFRAMESET) {self.error("Shared memory buffer too small for largest configured HST channel")} else {if (self.LNKTYPE == "NONE") {GlobalStatus.gDirty = 1, self.LNKTYPE = $1, $b = 0, scan ($i; HST) {if ($i.IsConfObj()) {if ($i.framesize > $b) {$b = $i.framesize} } }, self.MAXFRAMESET = $b, self.MAXFRAMEALLOWED = self.DSMMEMSIZE / 4, "ok"} else {self.LNKTYPE = $1, self.MAXFRAMEALLOWED = self.DSMMEMSIZE / 4, "ok"}}} else {GlobalStatus.gDirty = 1, self.LNKTYPE = $1, "ok"}})
+ }
+ global RTDX :: = if self.LNKTYPE == "RTDX" {1} else {0} {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Use RTDX for host link"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global DSM :: = if self.LNKTYPE == "Shared Memory" {1} else {0} {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Use Shared Memory for host link"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global EVM54 :: = if self.LNKTYPE == "EVM54" {1} else {0} {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Use EVM54's I/O ports for host link"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global NONE :: = if self.LNKTYPE == "NONE" {1} else {0} {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "No host link"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global MAXFRAMESET :: 64 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Label :: "MAXFRAMESET"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global MAXFRAMEALLOWED :: 255 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Label :: "MAXFRAMEALLOWED"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global DSMBUFSEG :: = self.OBJMEMSEG {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Shared Memory Segment"
+ prop Visible :: 0
+ prop Writable :: self.DSM
+ prop NoGen :: 0
+ }
+ global DSMMEMSIZE :: = 1024 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01 | 0x02
+ prop Label :: "Shared Memory Frame Size (MAUs)"
+ prop Visible :: 0
+ prop Writable :: self.DSM
+ prop NoGen :: 0
+ prop Set :: (if ($1 < HST.MAXFRAMESET * 4) {self.error("size (in MAUs) must be at least: 4 * largest configured HST channel framesize (in words)")} else {self.DSMMEMSIZE = $1, GlobalStatus.gDirty = 1, if (self.LNKTYPE == "Shared Memory") {self.MAXFRAMEALLOWED = self.DSMMEMSIZE / 4, "ok"} else {"ok"}})
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst mode :: "output" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "mode"
+ prop Enum :: "input,output"
+ prop Visible :: 1
+ prop Writable :: self.modifiable()
+ prop NoGen :: 0
+ }
+ inst bufseg :: = self.OBJMEMSEG {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "bufseg"
+ prop JSName :: "bufSeg"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataNullMember($1)
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst bufalign :: 4 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01 | 0x02
+ prop JSName :: "bufAlign"
+ prop Visible :: 1
+ prop Writable :: self.modifiable()
+ prop NoGen :: 1
+ prop Set :: (if ($1 < 4) {self.error("Alignment must be greater than or equal to 4")} else {if (($1 % 2) != 0) {self.error("Alignment must be a power of 2")} else {$i = $1, while ((($i % 2) == 0) && ($i != 2)) {$i = $i / 2}, if (($i % 2) != 0) {self.error("Alignment must be a power of 2")} else {self.bufalign = $1, "ok"}}})
+ }
+ inst buf :: "<NULL>" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst framesize :: 0x80 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "framesize (words)"
+ prop JSName :: "frameSize"
+ prop Style :: 0x01 | 0x02
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (if ($1 < 1) {self.error("framesize must be >= 1.")} else {if (($1 > self.MAXFRAMEALLOWED) && ((self.RTDX == 1) || (self.DSM == 1))) {if (self.RTDX == 1) {self.error("size (in words) is limited to: (RTDX buffer size in MAUs) / (MAUs per word) - 3")} else {self.error("size (in words) is limited to: shared memory frame size (in MAUs)/4")}} else {self.framesize = $1, $b = 0, scan ($i; HST) {if ($i.IsConfObj()) {if ($i.framesize > $b) {$b = $i.framesize} } }, self.MAXFRAMESET = $b, GlobalStatus.gDirty = 1, "ok"}})
+ }
+ inst numframes :: 2 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop JSName :: "numFrames"
+ prop Visible :: 1
+ prop Writable :: self.modifiable()
+ prop NoGen :: 0
+ prop Set :: (if ($1 < 1) {self.error("Channels must contain at least 1 frame.")} else {GlobalStatus.gDirty = 1, self.numframes = $1, "ok"})
+ }
+ inst stsflg :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "statistics"
+ prop JSName :: "statistics"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst notify :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "notifyFxn"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "DHL" || self.iDelUser != "USER" {0} else {1})
+ prop NoGen :: 0
+ prop TabName :: "Notify Function"
+ }
+ inst arg0 :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "arg0"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "DHL" || self.iDelUser != "USER" {0} else {1})
+ prop NoGen :: 0
+ prop TabName :: "Notify Function"
+ }
+ inst arg1 :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "arg1"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "DHL" || self.iDelUser != "USER" {0} else {1})
+ prop NoGen :: 0
+ prop TabName :: "Notify Function"
+ }
+ inst lnk :: = if self.RTDX {"RTDX"} else {"NOTRTDX"} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "link type"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst iDHLAvailable :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Make this channel available for a new DHL device"
+ prop JSName :: "availableForDHL"
+ prop Set :: (if (($1 == 0) && (self.iDHLAvailable == 1)) {DHL.gChannelsAvailable--} else {if (($1 == 1) && (self.iDHLAvailable == 0)) {DHL.gChannelsAvailable++} }, self.iDHLAvailable = $1, "ok")
+ prop Writable :: self.modifiable()
+ prop Visible :: 1
+ prop NoGen :: 1
+ }
+ inst bufFrameAlign :: = self.bufalign {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+}
+
+object LNK_dataPump :: IDL {
+ param iComment :: "This object cannot be deleted"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "HST"
+ param iDelMsg :: "This object cannot be deleted"
+ param function :: @LNK_F_dataPump
+ param cycles :: 0
+ param calibration :: 1
+ param Order :: 0
+ param iPri :: 0
+}
+
+object RTA_dispatcher :: IDL {
+ param iComment :: "This object cannot be deleted"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "HST"
+ param iDelMsg :: "This object cannot be deleted"
+ param function :: @RTA_F_dispatch
+ param cycles :: 0
+ param calibration :: 1
+ param Order :: 0
+ param iPri :: 0
+}
+
+object RTA_fromHost :: HST {
+ param iComment :: "Used to access LOG and STS data"
+ param iIsUsed :: 1
+ param iId :: 1
+ param iDelUser :: "HST"
+ param iDelMsg :: "This object cannot be deleted"
+ param mode :: "input"
+ param bufseg :: IRAM
+ param bufalign :: 4
+ param buf :: "<NULL>"
+ param framesize :: 4
+ param numframes :: 1
+ param stsflg :: 0
+ param notify :: @_FXN_F_nop
+ param arg0 :: 0
+ param arg1 :: 0
+ param iDHLAvailable :: 0
+}
+
+object RTA_toHost :: HST {
+ param iComment :: "Used to access LOG and STS data"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "HST"
+ param iDelMsg :: "This object cannot be deleted"
+ param mode :: "output"
+ param bufseg :: IRAM
+ param bufalign :: 4
+ param buf :: "<NULL>"
+ param framesize :: 64
+ param numframes :: 1
+ param stsflg :: 0
+ param notify :: @_FXN_F_nop
+ param arg0 :: 0
+ param arg1 :: 0
+ param iDHLAvailable :: 0
+}
+
+type HWI {
+ isa ObjectMgr
+ prop name :: "HWI"
+ prop Label :: "HWI - Hardware Interrupt Service Routine Manager"
+ prop IsContainedIn :: SCH
+ prop SortChildHierView :: 0
+ prop GlobalIcon :: 109
+ prop InstanceIcon :: 110
+ prop InstanceHelpTopic :: (205)
+ prop GlobalHelpTopic :: (105)
+ prop dataSize :: (0 * HWI.gNumOf)
+ prop localCanCreate :: (self.error("New hardware interrupt objects cannot be created"))
+ prop InstancePropertyPage :: ("{B7240DE6-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop GlobalPropertyPage :: ("{B7240DE7-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop DependsOn :: "GBL,OBJ,BUF,CLK,IDL,LCK,LOG,MBX,MEM,PIP,POOL,PRD,QUE,RTDX,SEM,STS,SYS"
+ prop AllocType :: (if self.ZEROTAB {"1\0, _stubsAllocDesc, _memSeg, _placement"} else {if ((MEM.ENABLELOADSEG) && (MEM.VECMEMSEG != MEM.LOADVECMEMSEG)) {"2\0, _stubsAllocDesc, _memSeg, _placement,
+ _vectAllocDesc, _loadvecSeg, _minplace"} else {"2\0, _stubsAllocDesc, _memSeg, _placement,
+ _vectAllocDesc, _vecSeg, _minplace"}})
+ prop _stubsAllocDesc :: (if ((MEM.ENABLELOADSEG) && (MEM.STUBMEMSEG != MEM.LOADSTUBMEMSEG)) {"%8t .%1L: {} load > %2s, run\0, name, _loadstubSeg"} else {"%8t .%1L: {} \0, name"})
+ prop _vectAllocDesc :: (if ((MEM.ENABLELOADSEG) && (MEM.VECMEMSEG != MEM.LOADVECMEMSEG)) {"%8t .%1L_vec: {%12t\n *(.hwi_vec)%8t\n } run > %2s align = 0x400, RUN_START(%1U_A_VECS), load \0, name, _vecSeg"} else {"%8t .%1L_vec: {%12t\n *(.hwi_vec)%8t\n } align = 0x400, RUN_START(%1U_A_VECS)\0, name"})
+ prop _placement :: (0x7fffffff / 2)
+ prop _minplace :: 0
+ prop GenLinkPrologue :: (if self.ZEROTAB {if ((MEM.ENABLELOADSEG) && (MEM.VECMEMSEG != MEM.LOADVECMEMSEG)) {"SECTIONS {%4t\n .%1L_vec: {%8t\n %1U_A_VECS = .;\n *(.hwi_vec)%4t\n } load > %2s, run = 0x0 %0t\n}\n\0 , name, _loadvecSeg"} else {"SECTIONS {%4t\n .%1L_vec: 0x0 {%8t\n %1U_A_VECS = .;\n *(.hwi_vec)%4t\n }%0t\n}\n\0, name"}} else {if self.GENERATE_RESET_VEC {"SECTIONS {%4t\n .%1L_reset: 0x%2x {}%0t\n}\n\0, name, resetvector"} else {""}})
+ prop resetvector :: (self.RESETVECTORADDR)
+ prop GenLinkEpilogue :: ("%0t_HWI_CFGDISPATCHED = HWI_CFGDISPATCHED;\n\0")
+ prop localInit :: (if (RTDX.CALLBACKOBJ != nil) {self.error("HWI initialization failure.")} , RTDX.CALLBACKOBJ = HWI)
+ prop call :: (if (RTDX.USERTDX == 0) {HWI_RESERVED1.function = @HWI_unused, HWI_RESERVED1.iUseDispatcher = 0, if (HWI_INT11.iSource == HSRTDX11 && HWI_INT11.function == @_HSRTDX_xmt) {HWI_INT11.iSource = MCSP_0_Receive, HWI_INT11.iReMappable = 1, HWI_INT11.function = @HWI_unused, HWI_INT11.iUseDispatcher = 0, HWI_INT11.iIntrMask = "self", HWI_INT11.IntrMask = 0x800, HWI_INT11.client = "USER"} , if (HWI_INT12.iSource == HSRTDX12 && HWI_INT12.function == @_HSRTDX_rec) {HWI_INT12.iSource = MCSP_1_Transmit, HWI_INT12.iReMappable = 1, HWI_INT12.function = @HWI_unused, HWI_INT12.iUseDispatcher = 0, HWI_INT12.iIntrMask = "self", HWI_INT12.IntrMask = 0x1000, HWI_INT12.client = "USER"} } else {HWI_RESERVED1.function = @_RTDX_Poll, HWI_RESERVED1.iUseDispatcher = 1, if (RTDX.RTDXTYPE == "HSRTDX") {HWI_INT11.iSource = HSRTDX11, HWI_INT11.iReMappable = 0, HWI_INT11.function = @_HSRTDX_xmt, HWI_INT11.iUseDispatcher = 1, HWI_INT11.iIntrMask = "bitmask", HWI_INT11.IntrMask = 0x1808, HWI_INT11.client = "RTDX", HWI_INT12.iSource = HSRTDX12, HWI_INT12.iReMappable = 0, HWI_INT12.function = @_HSRTDX_rec, HWI_INT12.iUseDispatcher = 1, HWI_INT12.iIntrMask = "bitmask", HWI_INT12.IntrMask = 0x1808, HWI_INT12.client = "RTDX"} else {if (HWI_INT11.iSource == HSRTDX11 && HWI_INT11.function == @_HSRTDX_xmt) {HWI_INT11.iSource = MCSP_0_Receive, HWI_INT11.iReMappable = 1, HWI_INT11.function = @HWI_unused, HWI_INT11.iUseDispatcher = 0, HWI_INT11.iIntrMask = "self", HWI_INT11.IntrMask = 0x800, HWI_INT11.client = "USER"} , if (HWI_INT12.iSource == HSRTDX12 && HWI_INT12.function == @_HSRTDX_rec) {HWI_INT12.iSource = MCSP_1_Transmit, HWI_INT12.iReMappable = 1, HWI_INT12.function = @HWI_unused, HWI_INT12.iUseDispatcher = 0, HWI_INT12.iIntrMask = "self", HWI_INT12.IntrMask = 0x1000, HWI_INT12.client = "USER"} }})
+ prop _memSeg :: MEM.STUBMEMSEG
+ prop _loadstubSeg :: MEM.LOADSTUBMEMSEG
+ prop _linkString :: ($b = 0, scan ($a; HWI) {if ($a.monitor != "Nothing") {$b = 1} }, if ($b == 1) {"*(.hwi)"} else {"/* no HWI stubs are necessary */"})
+ prop name2addr :: ($i = 0, $b = nil, scan ($a; {"Nothing", "Data Value", "Stack Pointer", "Top of SW Stack", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10", "A11", "A12", "A13", "A14", "A15", "B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "B10", "B11", "B12", "B13", "B14", "B15"}) {if ($b == nil) {if ($a == $1) {$b = {0, 0, 0, @GBL_stackbeg, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}[$i]} , $i++} }, if ($b == nil) {$b = 0} , $b)
+ prop name2type :: ($i = 0, $b = nil, scan ($a; {"Nothing", "Data Value", "Stack Pointer", "Top of SW Stack", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10", "A11", "A12", "A13", "A14", "A15", "B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "B10", "B11", "B12", "B13", "B14", "B15"}) {if ($b == nil) {if ($a == $1) {if ($i < 5) {$b = {"unsigned", "signed", "unsigned", "unsigned", "unsigned"}[$i]} } , $i++} }, if ($b == nil) {$b = "unsigned"} , $b)
+ prop _vecSeg :: MEM.VECMEMSEG
+ prop _loadvecSeg :: MEM.LOADVECMEMSEG
+ prop HWIR0_DISP :: (if (HWI_RESERVED0.iUseDispatcher == 1) {0x4} else {0})
+ prop HWIR1_DISP :: (if (HWI_RESERVED1.iUseDispatcher == 1) {0x8} else {0})
+ prop HWI4_DISP :: (if (HWI_INT4.iUseDispatcher == 1) {0x10} else {0})
+ prop HWI5_DISP :: (if (HWI_INT5.iUseDispatcher == 1) {0x20} else {0})
+ prop HWI6_DISP :: (if (HWI_INT6.iUseDispatcher == 1) {0x40} else {0})
+ prop HWI7_DISP :: (if (HWI_INT7.iUseDispatcher == 1) {0x80} else {0})
+ prop HWI8_DISP :: (if (HWI_INT8.iUseDispatcher == 1) {0x100} else {0})
+ prop HWI9_DISP :: (if (HWI_INT9.iUseDispatcher == 1) {0x200} else {0})
+ prop HWI10_DISP :: (if (HWI_INT10.iUseDispatcher == 1) {0x400} else {0})
+ prop HWI11_DISP :: (if (HWI_INT11.iUseDispatcher == 1) {0x800} else {0})
+ prop HWI12_DISP :: (if (HWI_INT12.iUseDispatcher == 1) {0x1000} else {0})
+ prop HWI13_DISP :: (if (HWI_INT13.iUseDispatcher == 1) {0x2000} else {0})
+ prop HWI14_DISP :: (if (HWI_INT14.iUseDispatcher == 1) {0x4000} else {0})
+ prop HWI15_DISP :: (if (HWI_INT15.iUseDispatcher == 1) {0x8000} else {0})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 65535 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 16 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global STUBMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.codeMember($1)
+ prop Label :: "Function Stub Memory"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global ZEROTAB :: = if (6211 == 6499 || 6211 == 6747 || 6211 == 6748) {0} else {self.VECMEMSEG.base == self.RESETVECTORADDR} {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Writable :: 0
+ prop Visible :: 0
+ }
+ global VECMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop Label :: "Interrupt Service Table Memory"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop MemberTest :: MEM.codeMember($1)
+ prop Set :: (self.VECMEMSEG = $1, if ($1.base == 0) {self.GENERATE_RESET_VEC = 0} , "ok")
+ }
+ global GENERATE_RESET_VEC :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Generate RESET vector"
+ prop JSName :: "RESETVECTOR"
+ prop Writable :: self.ZEROTAB == 0
+ prop Visible :: 1
+ prop NoGen :: 0
+ }
+ global RESETVECTORADDR :: 0 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Label :: "RESET vector address"
+ prop JSName :: "RESETVECTORADDR"
+ prop Format :: "0x%08x"
+ prop Style :: 0x02
+ prop Writable :: self.GENERATE_RESET_VEC
+ prop Visible :: 1
+ prop NoGen :: 1
+ }
+ global EXT4_POLARITY :: "low-to-high" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "low-to-high,high-to-low"
+ prop Label :: "External Interrupt Pin 4 Polarity"
+ prop JSName :: "EXTPIN4POLARITY"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global EXT5_POLARITY :: "low-to-high" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "low-to-high,high-to-low"
+ prop Label :: "External Interrupt Pin 5 Polarity"
+ prop JSName :: "EXTPIN5POLARITY"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global EXT6_POLARITY :: "low-to-high" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "low-to-high,high-to-low"
+ prop Label :: "External Interrupt Pin 6 Polarity"
+ prop JSName :: "EXTPIN6POLARITY"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global EXT7_POLARITY :: "low-to-high" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "low-to-high,high-to-low"
+ prop Label :: "External Interrupt Pin 7 Polarity"
+ prop JSName :: "EXTPIN7POLARITY"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global POLARITYMASK :: = (if self.EXT4_POLARITY == "high-to-low" {1} else {0}) | (if self.EXT5_POLARITY == "high-to-low" {1} else {0}) << 1 | (if self.EXT6_POLARITY == "high-to-low" {1} else {0}) << 2 | (if self.EXT7_POLARITY == "high-to-low" {1} else {0}) << 3 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global INTRMULTLOW :: = (HWI_INT4.iEventId) | (HWI_INT5.iEventId << 5) | (HWI_INT6.iEventId << 10) | (HWI_INT7.iEventId << 16) | (HWI_INT8.iEventId << 21) | (HWI_INT9.iEventId << 26) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Writable :: 0
+ prop Visible :: 0
+ prop NoGen :: 0
+ }
+ global INTRMULTHIGH :: = (HWI_INT10.iEventId) | (HWI_INT11.iEventId << 5) | (HWI_INT12.iEventId << 10) | (HWI_INT13.iEventId << 16) | (HWI_INT14.iEventId << 21) | (HWI_INT15.iEventId << 26) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Writable :: 0
+ prop Visible :: 0
+ prop NoGen :: 0
+ }
+ global CFGDISPATCHED :: = (self.HWIR0_DISP | self.HWIR1_DISP | self.HWI4_DISP | self.HWI5_DISP | self.HWI6_DISP | self.HWI7_DISP | self.HWI8_DISP | self.HWI9_DISP | self.HWI10_DISP | self.HWI11_DISP | self.HWI12_DISP | self.HWI13_DISP | self.HWI14_DISP | self.HWI15_DISP) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "dispatched mask"
+ prop Style :: 0x02
+ prop Writable :: 1
+ prop Visible :: 0
+ prop NoGen :: 0
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iSource :: Reset {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: ISRC
+ prop MemberTest :: 1
+ prop Label :: "interrupt source"
+ prop JSName :: "interruptSource"
+ prop Visible :: if (GBL.CLKTYPE == 700) {0} else {if (GBL.DSPSUBTYPE == 6499 || GBL.DSPSUBTYPE == 6747 || GBL.DSPSUBTYPE == 6748) {0} else {1}}
+ prop Writable :: if (GBL.CLKTYPE == 700) {0} else {self.iReMappable}
+ prop NoGen :: 1
+ prop Set :: ($a = $1, if ($a == Reset) {self.error("The Reset interrupt source cannot be remapped")} else {if ($a == Non_Maskable) {self.error("The Non-Maskable interrupt source cannot be remapped")} else {if ($a == Reserved) {self.error("The Reserved interrupt source cannot be remapped")} else {if (CLK.WHICHHWI == self && $a != self.iSource && CLK.USETIMER) {self.error("This interrupt is in use by CLK, settings may be changed in the CLK Manager")} else {if ($a == CLK.WHICHHWI.iSource && CLK.USETIMER == 1) {self.error("Interrupt source is in use by CLK, settings may be changed in the CLK Manager.")} else {$a.iHwi = self, self.iSource.iHwi = HWI_UNUSED, self.iSource = $1, self.iEventId = self.iSource.iIntrSelectNum, "ok"}}}}})
+ }
+ inst iEventId :: = self.iSource.iIntrSelectNum {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "interrupt selection number"
+ prop JSName :: "interruptSelectNumber"
+ prop Style :: 0x02
+ prop Visible :: if (GBL.CLKTYPE == 700) {0} else {1}
+ prop Writable :: if (GBL.CLKTYPE == 700) {0} else {self.iReMappable}
+ prop NoGen :: 1
+ }
+ inst iReMappable :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iIntrEnableMask :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst function :: @HWI_unused {
+ prop JSName :: "fxn"
+ prop Visible :: 1
+ prop Writable :: if ((self.function == @RESERVED) || (self.client != "USER")) {0} else {1}
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop NoGen :: 0
+ prop Set :: (self.function = $1, GlobalStatus.gDirty = 1, "ok")
+ }
+ inst iSTSObj :: HWI_RESETSTS {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst monitor :: "Nothing" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "Nothing,Data Value,Stack Pointer,Top of SW Stack,A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,B13,B14,B15"
+ prop JSName :: "monitor"
+ prop Visible :: 1
+ prop Writable :: ((self.function != @HWI_unused && self.function != @RESERVED) && (self.iId != 0))
+ prop NoGen :: 0
+ prop Set :: (if ($1 != self.monitor) {$e = "ok", if ($1 == "Nothing") {if (($e = self.iSTSObj.Delete("HWI")) == "ok") {self.monitor = "Nothing", self.addr = self.name2addr(self.monitor), self.dataType = self.name2type(self.monitor)} } else {if (self.iSTSObj.iIsUsed || ($e = self.iSTSObj.Create("HWI")) == "ok") {self.monitor = $1, if (self.monitor == "Data Value") {self.addr = self.saveAddr, self.dataType = self.saveType} else {self.addr = self.name2addr(self.monitor), self.dataType = self.name2type(self.monitor)}} else {self.monitor = "Nothing"}}, $e} else {"ok"})
+ }
+ inst saveAddr :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst saveType :: "signed" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst addr :: 0 {
+ prop JSName :: "addr"
+ prop Visible :: 1
+ prop Writable :: (if self.monitor == "Data Value" {1} else {0})
+ prop NoGen :: 0
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Format :: if GBL.DSPTYPE == 62 {"0x%08x"} else {"0x%04x"}
+ prop Set :: (self.addr = $1, self.saveAddr = $1, "ok")
+ }
+ inst dataType :: "signed" {
+ prop Visible :: 1
+ prop Writable :: (if self.monitor == "Nothing" {0} else {1})
+ prop NoGen :: 0
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "signed,unsigned"
+ prop Label :: "type"
+ prop JSName :: "dataType"
+ prop Set :: (if (self.monitor != "Nothing") {self.dataType = $1, self.saveType = $1, "ok"} else {self.error("The monitor field must set to modify this field")})
+ }
+ inst operation :: "STS_add(*addr)" {
+ prop Visible :: 1
+ prop Writable :: (if self.monitor == "Nothing" {0} else {1})
+ prop NoGen :: 0
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "operation"
+ prop Enum :: "STS_add(*addr),STS_delta(*addr),STS_add(-*addr),STS_delta(-*addr),STS_add(|*addr|),STS_delta(|*addr|)"
+ prop Set :: (if (self.monitor != "Nothing") {self.operation = $1, "ok"} else {self.error("The monitor field must set to modify this field")})
+ }
+ inst client :: "USER" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst iUseDispatcher :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Use Dispatcher"
+ prop JSName :: "useDispatcher"
+ prop Visible :: 1
+ prop Writable :: if (self.client == "USER") {1} else {0}
+ prop NoGen :: 0
+ prop TabName :: "Dispatcher"
+ prop Set :: (if (($1 == 1) && (self == HWI_NMI)) {self.error("HWI dispatcher can't be used for NMI")} else {self.iUseDispatcher = $1, "ok"})
+ }
+ inst iArg :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Arg"
+ prop JSName :: "arg"
+ prop Visible :: 1
+ prop Writable :: if ((self.iUseDispatcher == 1) && (self.client == "USER")) {1} else {0}
+ prop NoGen :: 0
+ prop TabName :: "Dispatcher"
+ prop Set :: (self.iArg = $1, "ok")
+ }
+ inst iIntrMask :: "self" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Interrupt Mask"
+ prop JSName :: "interruptMask"
+ prop Enum :: "all,none,self,bitmask"
+ prop Visible :: 1
+ prop Writable :: if (self.iUseDispatcher == 1) {1} else {0}
+ prop NoGen :: 1
+ prop TabName :: "Dispatcher"
+ prop Set :: (if ($1 == "all") {self.IntrMask = 0xffff} else {if ($1 == "self") {self.IntrMask = 1 << self.iId} else {if ($1 == "none") {self.IntrMask = 0} }}, self.iIntrMask = $1, "ok")
+ }
+ inst IntrMask :: (1 << self.iId) {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: "0x%04x"
+ prop Style :: 0x02
+ prop Label :: "Interrupt Bit Mask"
+ prop JSName :: "interruptBitMask"
+ prop Visible :: 1
+ prop Writable :: if ((self.iUseDispatcher == 1) && (self.iIntrMask == "bitmask")) {1} else {0}
+ prop NoGen :: 0
+ prop TabName :: "Dispatcher"
+ prop Set :: (if ($1 > 0xffff) {self.error("Invalid Number")} else {self.IntrMask = $1, "ok"})
+ }
+ inst iCacheControl :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Don't modify cache control"
+ prop JSName :: "cacheControl"
+ prop Visible :: 1
+ prop Writable :: 0
+ prop NoGen :: 1
+ prop TabName :: "Dispatcher"
+ prop Set :: (if ($1 == 1) {self.iCCBitMask = 0x1} else {self.iCCBitMask = (self.iPCCBitMask | self.iDCCBitMask)}, self.iCacheControl = $1, "ok")
+ }
+ inst iPCCMask :: (if (GBL.DSPSUBTYPE == 6200 || GBL.DSPSUBTYPE == 6700) {"mapped"} else {"cache enable"}) {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "mapped,cache enable,cache freeze,cache bypass"
+ prop Label :: "Program Cache Control Mask"
+ prop JSName :: "progCacheMask"
+ prop Visible :: 1
+ prop Writable :: if ((self.iUseDispatcher == 1) && (self.iCacheControl == 0)) {1} else {0}
+ prop NoGen :: 1
+ prop TabName :: "Dispatcher"
+ prop Set :: (if ((GBL.DSPSUBTYPE == 6211 || GBL.DSPSUBTYPE == 6711 || GBL.DSPSUBTYPE == 6400) && $1 != "cache enable") {self.error("unsupported cache mode for 6x1x/64x device (cache enable must be selected)")} else {if ($1 == "mapped") {self.iPCCBitMask = 0x0000} else {if ($1 == "cache enable") {self.iPCCBitMask = 0x0040} else {if ($1 == "cache freeze") {self.iPCCBitMask = 0x0060} else {self.iPCCBitMask = 0x0080}}}, self.iPCCMask = $1, self.iCCBitMask = self.iPCCBitMask | self.iDCCBitMask, "ok"})
+ }
+ inst iPCCBitMask :: 0x0000 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDCCMask :: (if (GBL.DSPSUBTYPE == 6200 || GBL.DSPSUBTYPE == 6700) {"mapped"} else {"cache enable"}) {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "mapped,cache enable,cache freeze,cache bypass"
+ prop Label :: "Data Cache Control Mask"
+ prop JSName :: "dataCacheMask"
+ prop Visible :: 1
+ prop Writable :: if ((self.iUseDispatcher == 1) && (self.iCacheControl == 0)) {1} else {0}
+ prop NoGen :: 1
+ prop TabName :: "Dispatcher"
+ prop Set :: (if ((GBL.DSPSUBTYPE == 6211 || GBL.DSPSUBTYPE == 6711 || GBL.DSPSUBTYPE == 6400) && $1 != "cache enable") {self.error("unsupported cache mode for 6x1x/64x device (cache enable must be selected)")} else {if ($1 == "mapped") {self.iDCCBitMask = 0x0000} else {if ($1 == "cache enable") {self.iDCCBitMask = 0x0008} else {if ($1 == "cache freeze") {self.iDCCBitMask = 0x000C} else {self.iDCCBitMask = 0x0010}}}, self.iDCCMask = $1, self.iCCBitMask = self.iPCCBitMask | self.iDCCBitMask, "ok"})
+ }
+ inst iDCCBitMask :: 0x0000 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iCCBitMask :: 1 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst iLoadTrack :: 0 {
+ prop Label :: "Support CPU load tracking"
+ prop JSName :: "loadTrack"
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+}
+
+object HWI_RESET_STS :: STS {
+ param iComment :: "provides statistics for the RESET ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_RESET :: HWI {
+ param iComment :: "defines function for the RESET ISR"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: Reset
+ param iReMappable :: 0
+ param iIntrEnableMask :: 1
+ param function :: @_c_int00
+ param iSTSObj :: HWI_RESET_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 1
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_NMI_STS :: STS {
+ param iComment :: "provides statistics for the NMI ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_NMI :: HWI {
+ param iComment :: "defines function for the NMI ISR"
+ param iIsUsed :: 1
+ param iId :: 1
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: Non_Maskable
+ param iReMappable :: 0
+ param iIntrEnableMask :: 2
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_NMI_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 2
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_RESERVED0_STS :: STS {
+ param iComment :: "This STS object is being used by a HWI object and cannot be deleted"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_RESERVED0 :: HWI {
+ param iComment :: "RESERVED for RTDX"
+ param iIsUsed :: 1
+ param iId :: 2
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: Reserved
+ param iReMappable :: 0
+ param iIntrEnableMask :: 4
+ param function :: @RESERVED
+ param iSTSObj :: HWI_RESERVED0_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "RTDX"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 4
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_RESERVED1_STS :: STS {
+ param iComment :: "This STS object is being used by a HWI object and cannot be deleted"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_RESERVED1 :: HWI {
+ param iComment :: "RESERVED for RTDX"
+ param iIsUsed :: 1
+ param iId :: 3
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: Reserved
+ param iReMappable :: 0
+ param iIntrEnableMask :: 8
+ param function :: @_RTDX_Poll
+ param iSTSObj :: HWI_RESERVED1_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "RTDX"
+ param iUseDispatcher :: 1
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 8
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT4_STS :: STS {
+ param iComment :: "provides statistics for the INT4 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT4 :: HWI {
+ param iComment :: "defines the INT4 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 4
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: MCSP_1_Transmit
+ param iEventId :: 14
+ param iReMappable :: 1
+ param iIntrEnableMask :: 16
+ param function :: @_ISR_AIC
+ param iSTSObj :: HWI_INT4_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 1
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 16
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT5_STS :: STS {
+ param iComment :: "provides statistics for the INT5 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT5 :: HWI {
+ param iComment :: "defines the INT5 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 5
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: External_Pin_5
+ param iReMappable :: 1
+ param iIntrEnableMask :: 32
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT5_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 32
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT6_STS :: STS {
+ param iComment :: "provides statistics for the INT6 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT6 :: HWI {
+ param iComment :: "defines the INT6 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 6
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: External_Pin_6
+ param iReMappable :: 1
+ param iIntrEnableMask :: 64
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT6_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 64
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT7_STS :: STS {
+ param iComment :: "provides statistics for the INT7 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT7 :: HWI {
+ param iComment :: "defines the INT7 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 7
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: External_Pin_7
+ param iReMappable :: 1
+ param iIntrEnableMask :: 128
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT7_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 128
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT8_STS :: STS {
+ param iComment :: "provides statistics for the INT8 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT8 :: HWI {
+ param iComment :: "defines the INT8 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 8
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: EDMA_Controller
+ param iReMappable :: 1
+ param iIntrEnableMask :: 256
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT8_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 256
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT9_STS :: STS {
+ param iComment :: "provides statistics for the INT9 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT9 :: HWI {
+ param iComment :: "defines the INT9 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 9
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: MCSP_0_Transmit
+ param iReMappable :: 1
+ param iIntrEnableMask :: 512
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT9_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 512
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT10_STS :: STS {
+ param iComment :: "provides statistics for the INT10 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT10 :: HWI {
+ param iComment :: "defines the INT10 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 10
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: EMIF_SDRAM_Timer
+ param iReMappable :: 1
+ param iIntrEnableMask :: 1024
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT10_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 1024
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT11_STS :: STS {
+ param iComment :: "provides statistics for the INT11 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT11 :: HWI {
+ param iComment :: "defines the INT11 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 11
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: MCSP_0_Receive
+ param iReMappable :: 1
+ param iIntrEnableMask :: 2048
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT11_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 2048
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT12_STS :: STS {
+ param iComment :: "provides statistics for the INT12 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT12 :: HWI {
+ param iComment :: "defines the INT12 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 12
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: MCSP_1_Transmit
+ param iReMappable :: 1
+ param iIntrEnableMask :: 4096
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT12_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 4096
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT13_STS :: STS {
+ param iComment :: "provides statistics for the INT13 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT13 :: HWI {
+ param iComment :: "defines the INT13 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 13
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: Host_Port_Host_to_DSP
+ param iReMappable :: 1
+ param iIntrEnableMask :: 8192
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT13_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 8192
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT14_STS :: STS {
+ param iComment :: "provides statistics for the INT14 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT14 :: HWI {
+ param iComment :: "defines the INT14 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 14
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: Timer_0
+ param iEventId :: 1
+ param iReMappable :: 1
+ param iIntrEnableMask :: 16384
+ param function :: @CLK_F_isr
+ param iSTSObj :: HWI_INT14_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "CLK"
+ param iUseDispatcher :: 1
+ param iArg :: @CLK_A_TABBEG
+ param iIntrMask :: "self"
+ param IntrMask :: 16384
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT15_STS :: STS {
+ param iComment :: "provides statistics for the INT15 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT15 :: HWI {
+ param iComment :: "defines the INT15 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 15
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: Timer_1
+ param iReMappable :: 1
+ param iIntrEnableMask :: 32768
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT15_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 32768
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_UNUSED :: HWI {
+ param iComment :: "a dummy DSP interrupt for unused sources"
+ param iIsUsed :: 0
+ param iId :: 16
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: Reset
+ param iReMappable :: 1
+ param iIntrEnableMask :: 0
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT15_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 65536
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+type SWI {
+ isa ObjectMgr
+ prop name :: "SWI"
+ prop Label :: "SWI - Software Interrupt Manager"
+ prop IsContainedIn :: SCH
+ prop DependsOn :: "HWI,SIO,HST,MSGQ"
+ prop GlobalIcon :: 123
+ prop InstanceIcon :: 124
+ prop InstanceHelpTopic :: (211)
+ prop GlobalHelpTopic :: (111)
+ prop HighTimeBased :: (if CLK.HIRES == 1 {1} else {0})
+ prop LowTimeBased :: (if CLK.HIRES == 1 {0} else {1})
+ prop uType :: (if (self.HighTimeBased()) {$a = 0} else {if (self.LowTimeBased()) {$a = 1} else {$a = 2}}, $a)
+ prop STSGetMaxFmt :: (if (SWI.STSUNITS == "raw") {if CLK.HIRES {"%g inst"} else {"%g ints"}} else {if SWI.STSUNITS == "microseconds" {"%.1f us"} else {"%.2f ms"}})
+ prop STSGetSumFmt :: (SWI.STSGetMaxFmt())
+ prop STSGetAvgFmt :: (if (SWI.STSUNITS == "raw") {if CLK.HIRES {"%.2f inst"} else {"%.2f ints"}} else {if SWI.STSUNITS == "microseconds" {"%.1f us"} else {"%.2f ms"}})
+ prop STSFilterMaxMult :: ($a = 1)
+ prop STSFilterSumMult :: (SWI.STSFilterMaxMult($1))
+ prop GetPriority :: (self.pri)
+ prop objectSize :: (if ((GBL.DSPTYPE == 54 && GBL.FARMODE == 0) || (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL")) {$a = (12 * 4)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 1) {$a = (14 * 4)} , if (GBL.DSPTYPE == 28 || (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") || (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE")) {$a = (20 * 4)} , if (GBL.DSPTYPE == 62) {$a = (11 * 4)} , $a)
+ prop GenLinkPrologue :: ("SECTIONS {%4t\n.swi: RUN_START(SWI_A_TABBEG), RUN_END(SWI_A_TABEND) {%4t\n} > %1s%2s\0, memSeg, pageString")
+ prop GenLinkEpilogue :: ("%0t}\nSWI_A_TABLEN = %1d;\n\0, numInst")
+ prop linkString :: if self.gNumOf > 0 {"*(.%1L)"} else {"/* no %1U objects */"}
+ prop pageString :: if GBL.DSPTYPE == 62 {""} else {if (GBL.DSPTYPE == 55 || GBL.DSPTYPE == 28) {(if SWI.OBJMEMSEG.space() == "code" {" PAGE 0"} else {if SWI.OBJMEMSEG.space() == "data" {" PAGE 1"} else {if SWI.OBJMEMSEG.space() == "io" {" PAGE 2"} else {" PAGE 0"}}})} else {" PAGE 1"}}
+ prop memSeg :: SWI.OBJMEMSEG
+ prop objSize :: if GBL.DSPTYPE == 55 {(2 * self.objectSize())} else {self.objectSize()}
+ prop maxObjs :: (32767)
+ prop numInst :: (SWI.gNumOf)
+ prop dataSize :: (self.objectSize() * SWI.gNumOf)
+ prop localCanCreate :: (if (GlobalStatus.MinStackSize >= MEM.STACKSIZE) {self.error("System stack size (see MEM) is too small to support a new SWI priority level.")} else {"ok"})
+ prop localCreate :: (STS.gNumEmbed += 1, SWI.EXECFXN = @SWI_F_exec, SWI.RUNFXN = @SWI_F_run, "ok")
+ prop localDelete :: (STS.gNumEmbed -= 1, if (self.gNumOf == 1) {SWI.EXECFXN = @FXN_F_nop, SWI.RUNFXN = @FXN_F_nop} , "ok")
+ prop SortByField :: "pri"
+ prop SortGroups :: 15
+ prop InstancePropertyPage :: ("{B7240DEC-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop GlobalPropertyPage :: ("{B7240DED-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"swi.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far SWI_Obj %0r;\n\0"} else {"extern SWI_Obj %0r;\n\0"})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global EHOOKFXN :: @GBL_NULL {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable Scheduler and Return to Idle Function"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global IHOOKFXN :: @GBL_NULL {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Exit Scheduler and Return to Idle Function"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global EXECFXN :: @SWI_F_exec {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Configured SWI executive"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global RUNFXN :: @SWI_F_run {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Configured SWI executive body"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global STSUNITS :: "raw" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "raw,milliseconds,microseconds"
+ prop Label :: "Statistics Units"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst priority :: = (self.pri + 1) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "priority"
+ prop JSName :: ""
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst function :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "fxn"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ }
+ inst pri :: 1 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "0,1,2,3,4,5,6,7,8,9,10,11,12,13,14"
+ prop Label :: "priority"
+ prop JSName :: "priority"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: ($a = self.pri, self.pri = $1, if (self == KNL_swi) {if ($1 != 0) {self.pri = $a, self.error("KNL_swi must remain at Priority 0.")} else {"ok"}} else {if ($1 == 0 && KNL_swi.iIsUsed == 1) {self.pri = $a, self.error("Priority 0 reserved for KNL_swi only.")} else {GlobalStatus.gDirty = 1, if (GlobalStatus.MinStackSize >= MEM.STACKSIZE) {self.pri = $a, self.error("System stack size (see MEM) is too small to support a new SWI priority level.")} else {if ($1 > 14) {self.pri = $a, self.error("SWI can only support 15 priority levels.")} else {"ok"}}}})
+ }
+ inst mailbox :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01 | 0x02
+ prop JSName :: "mailbox"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ }
+ inst arg0 :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "arg0"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ }
+ inst arg1 :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "arg1"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ }
+ inst dorta :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst Order :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "order"
+ prop NoGen :: 0
+ prop Writable :: 1
+ }
+ inst filter :: 2 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "filter"
+ prop NoGen :: 0
+ }
+ inst maxformat :: self.STSGetMaxFmt() {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "maxformat"
+ prop NoGen :: 0
+ }
+ inst sumformat :: self.STSGetSumFmt() {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "sumformat"
+ prop NoGen :: 0
+ }
+ inst avgformat :: self.STSGetAvgFmt() {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "avgformat"
+ prop NoGen :: 0
+ }
+ inst filtmaxmult :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "filtmaxmult"
+ prop NoGen :: 0
+ }
+ inst filtsummult :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "filtsummult"
+ prop NoGen :: 0
+ }
+ inst unittype :: self.uType() {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "unittype"
+ prop NoGen :: 0
+ }
+}
+
+type TSK {
+ isa ObjectMgr
+ prop name :: "TSK"
+ prop Label :: "TSK - Task Manager"
+ prop IsConfMod :: self.USETSK
+ prop IsContainedIn :: SCH
+ prop DependsOn :: "SWI,HOOK"
+ prop GlobalIcon :: 143
+ prop InstanceIcon :: 144
+ prop GlobalHelpTopic :: (314)
+ prop InstanceHelpTopic :: (414)
+ prop InstancePropertyPage :: ("{473C4A64-B1A8-11d0-9885-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{473C4A65-B1A8-11d0-9885-0020AFEE33C6}")
+ prop SortByField :: "iPRI"
+ prop SortGroups :: 17
+ prop objectSize :: (if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL") {$a = (27 * 4)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") {$a = (44 * 4)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE") {$a = (44 * 4)} , if (GBL.DSPTYPE == 28) {$a = (40 * 4)} , if (GBL.DSPTYPE == 62 || (GBL.DSPTYPE == 54 && GBL.FARMODE == 0)) {$a = (24 * 4)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 1) {$a = (25 * 4)} , $a)
+ prop GenLinkPrologue :: (if (self.USETSK != 0) {"SECTIONS {%4t\n.%1L: {%8t\n %4S %4t\n} > %3s%5s\0, name, objSize, _bssmemSeg, linkString, pageString"} else {"_KNL_swi = 0;"})
+ prop linkString :: if self.gNumOf > 0 {"*(.%1L)"} else {"/* no %1U objects */"}
+ prop pageString :: if GBL.DSPTYPE == 62 {""} else {if (GBL.DSPTYPE == 55 || GBL.DSPTYPE == 28) {(if TSK.OBJMEMSEG.space() == "code" {" PAGE 0"} else {if TSK.OBJMEMSEG.space() == "data" {" PAGE 1"} else {if TSK.OBJMEMSEG.space() == "io" {" PAGE 2"} else {" PAGE 0"}}})} else {" PAGE 1"}}
+ prop GenLinkEpilogue :: (if (self.USETSK != 0) {"%0t}\n\0"} else {""})
+ prop _objAllocDesc :: ("%8t .TSK$obj: {}")
+ prop _bssmemSeg :: self.OBJMEMSEG
+ prop _objmemSeg :: MEM.CFGOBJSEG
+ prop AllocInst :: (if self.iAUTOSTK {"1\0, _instStackDesc, _instStackSeg, _placement"} else {"0\0"})
+ prop _instStackDesc :: ("%8t .%0s$stk: {%12t\n *(.%0s$stk)%8t\n }\0")
+ prop _self :: self
+ prop _instStackSize :: self.iSTKSZ * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE)
+ prop _instStackSeg :: self.iSTKSEG
+ prop _placement :: (0x7fffffff / 2)
+ prop localInit :: (KNL_swi.Create("SWI"), if (self.STACKSEG.iAllocHeap == 1) {self.STACKSEG.iReqHeapCount++, "ok"} else {self.error("TSK default stack segment must be a memory segment with a heap")})
+ prop HighTimeBased :: (if CLK.HIRES == 1 {1} else {0})
+ prop LowTimeBased :: (if CLK.HIRES == 1 {0} else {1})
+ prop uType :: (if (self.HighTimeBased()) {$a = 0} else {if (self.LowTimeBased()) {$a = 1} else {$a = 2}}, $a)
+ prop STSGetMaxFmt :: (if (TSK.STSUNITS == "raw") {if CLK.HIRES {"%g inst"} else {"%g ints"}} else {if TSK.STSUNITS == "microseconds" {"%.1f us"} else {"%.2f ms"}})
+ prop STSGetSumFmt :: (TSK.STSGetMaxFmt())
+ prop STSGetAvgFmt :: (if (TSK.STSUNITS == "raw") {if CLK.HIRES {"%.2f inst"} else {"%.2f ints"}} else {if TSK.STSUNITS == "microseconds" {"%.1f us"} else {"%.2f ms"}})
+ prop STSFilterMaxMult :: ($a = 1)
+ prop STSFilterSumMult :: (TSK.STSFilterMaxMult($1))
+ prop localCreate :: (STS.gNumEmbed += 1, "ok")
+ prop localCanCreate :: ($e = "ok", if (TSK.USETSK != 1) {$e = self.error("TSK manager not enabled")} , $e)
+ prop localDelete :: (STS.gNumEmbed -= 1, "ok")
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"tsk.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far TSK_Obj %0r;\n\0"} else {"extern TSK_Obj %0r;\n\0"})
+ prop NOPFXN :: @FXN_F_nop
+ prop _objId :: self.iId
+ prop objSize :: if GBL.DSPTYPE == 55 {(2 * self.objectSize())} else {self.objectSize()}
+ prop dataSize :: ($d = 0, scan ($i; TSK) {$d += ($i.iSTKSZ + self.objectSize() * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE))}, $d)
+ prop minStackSize :: ($a = self.STACKSIZE, scan ($i; TSK) {if ($i.STACKSIZE < $a) {$a = $i.STACKSIZE} }, $a)
+ prop maxObjs :: (32767)
+ prop GetPriority :: (self.iPRI)
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global USETSK :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable TSK Manager"
+ prop JSName :: "ENABLETSK"
+ prop Visible :: 1
+ prop Writable :: if GBL.DSPSUBTYPE == 0x55DA200 {0} else {1}
+ prop NoGen :: 1
+ prop Set :: (if ($1 == 0) {if (self.gNumOf > 1) {self.error("Cannot disable TSK until all TSK objects are deleted.")} else {self.STACKSEG.iReqHeapCount--, TSK.STACKSEG = MEM_NULL, TSK.OBJMEMSEG = MEM_NULL, TSK_idle.iSTKSEG = MEM_NULL, TSK_idle.Delete("TSK"), KNL_swi.Delete("TSK"), PRD.THOOKFXN = self.NOPFXN, if (PRD.gNumOf == 0) {if (PRD_clock.iIsUsed == 1) {PRD_clock.function = @FXN_F_nop} } , self.USETSK = $1, "ok"}} else {$e = "ok", GlobalStatus.gDirty = 1, if (GlobalStatus.MinStackSize >= MEM.STACKSIZE) {$e = self.error("Current stack size inadequate to enable TSK"), break} , scan ($a; SWI) {if ($a != KNL_swi && $a.pri == 0 && $a.iIsUsed == 1) {$e = self.error("Cannot enable TSK when there are SWI objects at Priority 0."), break} }, if ($e == "ok") {TSK.STACKSEG = MEM_NULL, scan ($b; MEM) {if ($b.iAllocHeap && $b != MEM_NULL) {TSK.STACKSEG = $b, break} }, self.STACKSEG.iReqHeapCount++, self.USETSK = $1, TSK.OBJMEMSEG = SWI.OBJMEMSEG, TSK_idle.iSTKSEG = self.OBJMEMSEG, TSK_idle.Create("TSK"), KNL_swi.Create("TSK"), PRD.THOOKFXN = PRD.DEFAULT_THOOKFXN, if (TSK.TSKTICK == "PRD") {if (PRD_clock.iIsUsed == 1) {PRD_clock.function = @PRD_F_tick} } , if (MEM.NOHEAPS) {self.STACKSEG.iReqHeapCount++} , $e} else {$e}})
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "OBJMEMSEG"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataNullMember($1)
+ prop Label :: "Object Memory"
+ prop Visible :: 1
+ prop Writable :: self.USETSK
+ prop NoGen :: 1
+ }
+ global CALLBACKOBJ :: nil {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global STACKSIZE :: 1024 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: if GBL.DSPTYPE == 54 {0x01} else {0x02}
+ prop Label :: "Default stack size (MAUs)"
+ prop JSName :: "STACKSIZE"
+ prop Visible :: 1
+ prop Writable :: self.USETSK
+ }
+ global STACKSEG :: MEM_NULL {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataNullMember($1) && $1.iAllocHeap
+ prop Label :: "Stack segment for dynamic tasks"
+ prop JSName :: "STACKSEG"
+ prop Visible :: 1
+ prop Writable :: self.USETSK && (MEM.NOHEAPS == 0)
+ prop Set :: (if (self.STACKSEG.iReqHeapCount > 0) {self.STACKSEG.iReqHeapCount--} , self.STACKSEG = $1, self.STACKSEG.iReqHeapCount++, "ok")
+ }
+ global PRIORITY :: 1 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "PRIORITY"
+ prop Enum :: "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15"
+ prop Label :: "Default task priority"
+ prop Visible :: 1
+ prop Writable :: self.USETSK
+ }
+ global CREATEFXN :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Create function"
+ prop JSName :: "CREATEFXN"
+ prop Visible :: 1
+ prop Writable :: self.USETSK
+ prop TabName :: "Function Hooks"
+ prop Set :: (self.CREATEFXN = $1, HOOK_KNL.createFxn = self.CREATEFXN, "ok")
+ prop NoGen :: 1
+ }
+ global VCREATEFXN :: = if HOOK_KNL.iIsUsed == 1 {@__HOOK_doCreate} else {self.CREATEFXN} {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ }
+ global DELETEFXN :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Delete function"
+ prop JSName :: "DELETEFXN"
+ prop Visible :: 1
+ prop Writable :: self.USETSK
+ prop TabName :: "Function Hooks"
+ prop Set :: (self.DELETEFXN = $1, HOOK_KNL.deleteFxn = self.DELETEFXN, "ok")
+ prop NoGen :: 1
+ }
+ global VDELETEFXN :: = if HOOK_KNL.iIsUsed == 1 {@__HOOK_doDelete} else {self.DELETEFXN} {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ }
+ global EXITFXN :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Exit function"
+ prop JSName :: "EXITFXN"
+ prop Visible :: 1
+ prop Writable :: self.USETSK
+ prop TabName :: "Function Hooks"
+ prop Set :: (self.EXITFXN = $1, HOOK_KNL.exitFxn = self.EXITFXN, "ok")
+ prop NoGen :: 1
+ }
+ global VEXITFXN :: = if HOOK_KNL.iIsUsed == 1 {@__HOOK_doExit} else {self.EXITFXN} {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ }
+ global DOSWITCH :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Call switch function"
+ prop JSName :: "CALLSWITCHFXN"
+ prop Writable :: self.USETSK
+ prop Visible :: 1
+ prop NoGen :: 1
+ prop Set :: (self.DOSWITCH = $1, HOOK_KNL.callSwitchFxn = self.DOSWITCH, "ok")
+ prop TabName :: "Function Hooks"
+ }
+ global VSWFXN :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Switch function"
+ prop JSName :: "SWITCHFXN"
+ prop Visible :: 1
+ prop NoGen :: 1
+ prop Writable :: self.DOSWITCH && self.USETSK
+ prop Set :: (self.VSWFXN = $1, HOOK_KNL.switchFxn = self.VSWFXN, "ok")
+ prop TabName :: "Function Hooks"
+ }
+ global SWITCHFXN :: = (if (HOOK_KNL.iIsUsed) {$i = 0, scan ($a; HOOK) {if ($a.callSwitchFxn) {$i = 1} }, if ($i) {@__HOOK_doSwitch} else {0}} else {if (self.DOSWITCH) {self.VSWFXN} else {0}}) {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: ""
+ prop TabName :: "Function Hooks"
+ }
+ global DOREADY :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Call ready function"
+ prop JSName :: "CALLREADYFXN"
+ prop Writable :: self.USETSK
+ prop Visible :: 1
+ prop NoGen :: 1
+ prop Set :: (self.DOREADY = $1, HOOK_KNL.callReadyFxn = self.DOREADY, "ok")
+ prop TabName :: "Function Hooks"
+ }
+ global VRDYFXN :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Ready function"
+ prop JSName :: "READYFXN"
+ prop Visible :: 1
+ prop Writable :: self.DOREADY && self.USETSK
+ prop NoGen :: 1
+ prop Set :: (self.VRDYFXN = $1, HOOK_KNL.readyFxn = self.VRDYFXN, "ok")
+ prop TabName :: "Function Hooks"
+ }
+ global READYFXN :: = (if (HOOK_KNL.iIsUsed) {$i = 0, scan ($a; HOOK) {if ($a.callReadyFxn) {$i = 1} }, if ($i) {@__HOOK_doReady} else {0}} else {if (self.DOREADY) {self.VRDYFXN} else {0}}) {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: ""
+ prop TabName :: "Function Hooks"
+ }
+ global NUM_HOOKS :: = HOOK.gNumOf {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ }
+ global STSUNITS :: "raw" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "raw,milliseconds,microseconds"
+ prop Label :: "Statistics Units"
+ prop Visible :: 0
+ prop Writable :: self.USETSK
+ prop NoGen :: 1
+ }
+ global TSKTICK :: "PRD" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "PRD,User"
+ prop Label :: "TSK tick driven by"
+ prop JSName :: "DRIVETSKTICK"
+ prop Visible :: 1
+ prop Writable :: self.USETSK
+ prop NoGen :: 1
+ prop Set :: (if ($1 != self.TSKTICK) {if ($1 == "PRD") {PRD.THOOKFXN = PRD.DEFAULT_THOOKFXN, if (TSK.USETSK == 1) {if (PRD_clock.iIsUsed == 1) {PRD_clock.function = @PRD_F_tick} } } , if ($1 == "User") {PRD.THOOKFXN = self.NOPFXN, if (PRD.gNumOf == 0) {if (PRD_clock.iIsUsed == 1) {PRD_clock.function = @FXN_F_nop} } } , if ($1 != "PRD" && $1 != "User") {self.error("Invalid TSK tick driver selection")} } , self.TSKTICK = $1, "ok")
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iFXN :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Task function"
+ prop JSName :: "fxn"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "TSK" {0} else {1}
+ prop TabName :: "Function"
+ }
+ inst iARG0 :: 0 {
+ prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
+ prop Label :: "Task function argument 0"
+ prop JSName :: "arg0"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "TSK" {0} else {1}
+ prop TabName :: "Function"
+ }
+ inst iARG1 :: 0 {
+ prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
+ prop Label :: "Task function argument 1"
+ prop JSName :: "arg1"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "TSK" {0} else {1}
+ prop TabName :: "Function"
+ }
+ inst iARG2 :: 0 {
+ prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
+ prop Label :: "Task function argument 2"
+ prop JSName :: "arg2"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "TSK" {0} else {1}
+ prop TabName :: "Function"
+ }
+ inst iARG3 :: 0 {
+ prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
+ prop Label :: "Task function argument 3"
+ prop JSName :: "arg3"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "TSK" {0} else {1}
+ prop TabName :: "Function"
+ }
+ inst iARG4 :: 0 {
+ prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
+ prop Label :: "Task function argument 4"
+ prop JSName :: "arg4"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "TSK" {0} else {1}
+ prop TabName :: "Function"
+ }
+ inst iARG5 :: 0 {
+ prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
+ prop Label :: "Task function argument 5"
+ prop JSName :: "arg5"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "TSK" {0} else {1}
+ prop TabName :: "Function"
+ }
+ inst iARG6 :: 0 {
+ prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
+ prop Label :: "Task function argument 6"
+ prop JSName :: "arg6"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "TSK" {0} else {1}
+ prop TabName :: "Function"
+ }
+ inst iARG7 :: 0 {
+ prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
+ prop Label :: "Task function argument 7"
+ prop JSName :: "arg7"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "TSK" {0} else {1}
+ prop TabName :: "Function"
+ }
+ inst iAUTOSTK :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Automatically allocate stack"
+ prop JSName :: "autoAllocateStack"
+ prop Set :: (if (($1 == 1) && (self.iAUTOSTK == 0)) {self.iSTKSZ = TSK.STACKSIZE} , self.iAUTOSTK = $1, "ok")
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "TSK" {0} else {1}
+ }
+ inst iMANSTK :: @null {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Manually allocated stack"
+ prop JSName :: "manualStack"
+ prop Visible :: 1
+ prop Writable :: self.iAUTOSTK == 0
+ }
+ inst iSTKSZ :: TSK.STACKSIZE {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: if GBL.DSPTYPE == 54 {0x01} else {0x02}
+ prop Label :: "Stack size (MAUs)"
+ prop JSName :: "stackSize"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop Set :: ($a = $1, if ($a < 32) {if (GBL.DSPSUBTYPE == 62) {self.error("Task stack size is too small.")} else {if ($a < 32) {self.error("Task stack size is too small.")} else {self.iSTKSZ = ($1 - ($1 - 1) % 8 + 7), GlobalStatus.gDirty = 1, "ok"}}} else {self.iSTKSZ = ($1 - ($1 - 1) % 8 + 7), GlobalStatus.gDirty = 1, "ok"})
+ }
+ inst iSTKSEG :: = self.OBJMEMSEG {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: $1 == MEM_NULL || MEM.dataMember($1)
+ prop Label :: "Stack Memory Segment"
+ prop JSName :: "stackMemSeg"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ inst iPRI :: TSK.PRIORITY {
+ prop Label :: "Priority"
+ prop JSName :: "priority"
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop Set :: (if (self == TSK_idle) {if ($1 == 0) {"ok"} else {self.error("Cannot change the priority of the idle task.")}} else {if ($1 == 0) {self.error("Priority 0 is reserved for the system idle task")} else {self.iPRI = $1, "ok"}})
+ }
+ inst iENV :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Environment pointer"
+ prop JSName :: "envPointer"
+ prop Visible :: 1
+ prop Writable :: self.iDelUser != "TSK"
+ prop TabName :: "Advanced"
+ }
+ inst iEXITFLAG :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Don't shut down system while this task is still running"
+ prop JSName :: "exitFlag"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop TabName :: "Advanced"
+ }
+ inst iUSETSKNAME :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Allocate Task Name on Target"
+ prop JSName :: "allocateTaskName"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop TabName :: "Advanced"
+ }
+ inst iSTATREG :: = GBL.CACHE {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: "0x%08x"
+ prop Label :: "Initial Status Register value"
+ prop Visible :: 0
+ prop Writable :: 1
+ }
+ inst Order :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "order"
+ prop NoGen :: 0
+ prop Writable :: 1
+ }
+ inst filter :: 2 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "filter"
+ prop NoGen :: 0
+ }
+ inst maxformat :: self.STSGetMaxFmt() {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "maxformat"
+ prop NoGen :: 0
+ }
+ inst sumformat :: self.STSGetSumFmt() {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "sumformat"
+ prop NoGen :: 0
+ }
+ inst avgformat :: self.STSGetAvgFmt() {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "avgformat"
+ prop NoGen :: 0
+ }
+ inst filtmaxmult :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "filtmaxmult"
+ prop NoGen :: 0
+ }
+ inst filtsummult :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "filtsummult"
+ prop NoGen :: 0
+ }
+ inst unittype :: self.uType() {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "unittype"
+ prop NoGen :: 0
+ }
+}
+
+object TSK_idle :: TSK {
+ param iComment :: "This is the idle task; it only runs when no other task is ready"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "TSK"
+ param iDelMsg :: "This task executes all IDL functions and cannot be deleted"
+ param iFXN :: @IDL_F_loop
+ param iARG0 :: 0
+ param iARG1 :: 0
+ param iARG2 :: 0
+ param iARG3 :: 0
+ param iARG4 :: 0
+ param iARG5 :: 0
+ param iARG6 :: 0
+ param iARG7 :: 0
+ param iAUTOSTK :: 1
+ param iMANSTK :: @null
+ param iSTKSZ :: 1024
+ param iSTKSEG :: IRAM
+ param iPRI :: 0
+ param iENV :: 0
+ param iEXITFLAG :: 1
+ param iUSETSKNAME :: 0
+ param Order :: 0
+ param filter :: 2
+ param maxformat :: "%g inst"
+ param sumformat :: "%g inst"
+ param avgformat :: "%.2f inst"
+ param filtmaxmult :: 1
+ param filtsummult :: 1
+ param unittype :: 0
+}
+
+object KNL_swi :: SWI {
+ param iComment :: "This Software Interrupt calls the TSK scheduler"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "TSK"
+ param iDelMsg :: "This object cannot be deleted in DSP/BIOS."
+ param function :: @_KNL_run
+ param pri :: 0
+ param mailbox :: 0
+ param arg0 :: 0
+ param arg1 :: 0
+ param dorta :: 1
+ param Order :: 0
+ param filter :: 2
+ param maxformat :: "%g inst"
+ param sumformat :: "%g inst"
+ param avgformat :: "%.2f inst"
+ param filtmaxmult :: 1
+ param filtsummult :: 1
+ param unittype :: 0
+}
+
+type IDL {
+ isa ObjectMgr
+ prop Label :: "IDL - Idle Function Manager"
+ prop name :: "IDL"
+ prop IsContainedIn :: SCH
+ prop GlobalIcon :: 111
+ prop InstanceIcon :: 112
+ prop GlobalHelpTopic :: (106)
+ prop InstanceHelpTopic :: (206)
+ prop InstancePropertyPage :: ("{586735F1-770B-11d0-A61F-0000C070F3E9}")
+ prop GlobalPropertyPage :: ("{586735F0-770B-11d0-A61F-0000C070F3E9}")
+ prop objectSize :: (if (GBL.DSPTYPE == 55 || GBL.DSPTYPE == 28) {$a = (2 * 4)} else {$a = (1 * 4)}, $a)
+ prop GenLinkPrologue :: ("SECTIONS {%4t\n.%1L: {%8t\n %4S %4t\n} > %3s%5s, RUN_START(%1U_A_TABBEG)\0, name, _objSize, _memSeg, _linkString, _pageString")
+ prop GenLinkEpilogue :: ("%4t\n.%1Lcal: {%8t\n %4S %4t\n} > %3s%5s, RUN_START(%1U_A_CALBEG) %0t\n}\n%6S\n\0, name, _objSize, _memSeg, _linkCalString, _pageString, _nilBusyObj")
+ prop _linkString :: "*(.%1L)"
+ prop _linkCalString :: "*(.%1Lcal)"
+ prop _pageString :: if GBL.DSPTYPE == 62 {""} else {if (GBL.DSPTYPE == 55 || GBL.DSPTYPE == 28) {(if IDL.OBJMEMSEG.space() == "code" {" PAGE 0"} else {if IDL.OBJMEMSEG.space() == "data" {" PAGE 1"} else {if IDL.OBJMEMSEG.space() == "io" {" PAGE 2"} else {" PAGE 0"}}})} else {" PAGE 1"}}
+ prop _nilBusyObj :: (if ((IDL.USEIDLBUSYOBJ == 0) && (GBL.ROM == 1)) {"IDL_busyObj = 0;\n"} else {""})
+ prop _memSeg :: IDL.OBJMEMSEG
+ prop _objSize :: if GBL.DSPTYPE == 55 {(2 * self.objectSize())} else {self.objectSize()}
+ prop dataSize :: (self.objectSize() * (IDL.gNumOf + 1))
+ prop maxObjs :: (32767)
+ prop SortByField :: "iPri"
+ prop SortGroups :: 1
+ prop idlFxnSum :: ($a = 0, scan ($i; IDL) {$a += $i.cycles}, $a)
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 3 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global AUTOCALCULATE :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Auto calculate idle loop instruction count"
+ prop JSName :: "AUTOCALCULATE"
+ prop Visible :: 1
+ prop Writable :: CLK.USETIMER
+ prop Set :: (if ($1 == 1 && CLK.USETIMER == 0) {self.error("CLK must be enabled to do idle loop intruction count")} else {if ($1 == 1 && GBL.ENABLEINST == 0) {self.error("Real Time Analysis must be enabled to do idle loop instruction count")} else {self.AUTOCALCULATE = $1, "ok"}})
+ prop NoGen :: 1
+ }
+ global USECLKIDLTIME :: = IDL.AUTOCALCULATE {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global USEIDLBUSYOBJ :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CALIBRFXN :: = (if (IDL.AUTOCALCULATE == 1) {if TSK.USETSK {@IDL_F_stub} else {@IDL_F_calibrate}} else {@GBL_NULL}) {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Idle Loop Auto-Calibrate Function"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global CALIBRERROR :: = (if (GBL.DSPTYPE == 62 && IDL.CALIBRFXN == @IDL_F_stub) {6} else {0}) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Idle Loop Auto-Calibrate Error"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global LOOPOVERHEAD :: 0 {
+ prop Label :: "Idle Loop Instruction Count"
+ prop JSName :: "LOOPINSTCOUNT"
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: self.AUTOCALCULATE == 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst function :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "fxn"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ }
+ inst cycles :: 0 {
+ prop Label :: "CPU cycles"
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: if (self.iDelUser == "USER") {1} else {0}
+ prop NoGen :: 1
+ }
+ inst calibration :: 1 {
+ prop Label :: "Include in CPU load calibration"
+ prop JSName :: "calibration"
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: if (self.iDelUser == "USER") {1} else {0}
+ prop NoGen :: 0
+ }
+ inst Order :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "order"
+ prop NoGen :: 1
+ prop Writable :: 1
+ }
+ inst iPri :: 0 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop NoGen :: 1
+ }
+}
+
+object IDL_cpuLoad :: IDL {
+ param iComment :: "This object is required by the system to acquire CPU load data"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "IDL"
+ param iDelMsg :: "This object is required to compute CPU load and can't be deleted"
+ param function :: @IDL_F_busy
+ param cycles :: 0
+ param calibration :: 1
+ param Order :: 0
+ param iPri :: 0
+}
+
+object IDL_busyObj :: STS {
+ param iComment :: "This object is required by the system to accumulate CPU load statistics"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "IDL"
+ param iDelMsg :: "This object is required to accumulate CPU load data and can't be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+type ISRC {
+ isa ObjectMgr
+ prop name :: "ISRC"
+ prop Label :: "ISRC - Interrupt Sources"
+ prop IsConfMod :: 1
+ prop Visible :: 0
+ prop InstancePropertyPage :: ("{91BA37C0-98C3-11d1-988B-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{91BA37C1-98C3-11d1-988B-0020AFEE33C6}")
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iHwi :: HWI_UNUSED {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: HWI
+ prop MemberTest :: 1
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iIntrSelectNum :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+}
+
+object Reset :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_RESET
+ param iIntrSelectNum :: -1
+}
+
+object Non_Maskable :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_NMI
+ param iIntrSelectNum :: -1
+}
+
+object Reserved :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_RESERVED0
+ param iIntrSelectNum :: -1
+}
+
+object Host_Port_Host_to_DSP :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT13
+ param iIntrSelectNum :: 0
+}
+
+object DSPINT :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 0
+}
+
+object Timer_0 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT14
+ param iIntrSelectNum :: 1
+}
+
+object Timer_1 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT15
+ param iIntrSelectNum :: 2
+}
+
+object EMIF_SDRAM_Timer :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT10
+ param iIntrSelectNum :: 3
+}
+
+object External_Pin_4 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 4
+}
+
+object External_Pin_5 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT5
+ param iIntrSelectNum :: 5
+}
+
+object External_Pin_6 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT6
+ param iIntrSelectNum :: 6
+}
+
+object External_Pin_7 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT7
+ param iIntrSelectNum :: 7
+}
+
+object EDMA_Controller :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT8
+ param iIntrSelectNum :: 8
+}
+
+object HSRTDX11 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT11
+ param iIntrSelectNum :: 10
+}
+
+object HSRTDX12 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT12
+ param iIntrSelectNum :: 11
+}
+
+object MCSP_0_Transmit :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 12
+}
+
+object MCSP_0_Receive :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 13
+}
+
+object MCSP_1_Transmit :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT4
+ param iIntrSelectNum :: 14
+}
+
+object MCSP_1_Receive :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 15
+}
+
+object GPIO_Interrupt_0 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 16
+}
+
+object I2C_Interrupt_0 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 22
+}
+
+object I2C_Interrupt_1 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 23
+}
+
+object MCASP_0_Transmit :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 28
+}
+
+object MCASP_0_Receive :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 29
+}
+
+object MCASP_1_Transmit :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 30
+}
+
+object MCASP_1_Receive :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 31
+}
+
+type LOG {
+ isa ObjectMgr
+ prop name :: "LOG"
+ prop Label :: "LOG - Event Log Manager"
+ prop IsContainedIn :: INS
+ prop GlobalIcon :: 113
+ prop InstanceIcon :: 114
+ prop InstanceHelpTopic :: (207)
+ prop GlobalHelpTopic :: (107)
+ prop InstancePropertyPage :: ("{B7240DE8-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop GlobalPropertyPage :: ("{B7240DE9-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop maxObjs :: (32767)
+ prop AllocType :: ("1\0, _globalAllocDesc, _memSeg, _placement")
+ prop _globalAllocDesc :: ("%8t .%1L: RUN_START(%1U_A_TABBEG), RUN_START(_%1U_A_TABBEG), RUN_END(%1U_A_TABEND), RUN_END(_%1U_A_TABEND) {%8t\n }\0, name")
+ prop objectSize :: (if (GBL.DSPTYPE == 28 || (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") || (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE")) {$a = (10 * 4)} , if (GBL.DSPTYPE == 62 || GBL.DSPTYPE == 54 || (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL")) {$a = (6 * 4)} , $a)
+ prop _placement :: (0x7fffffff / 2)
+ prop AllocInst :: ("1\0, _instAllocDesc, _objMemSeg, _placement")
+ prop GenLinkEpilogue :: ("%0tLOG_A_TABLEN = %1d; _LOG_A_TABLEN = %1d;\n\0, numInst")
+ prop _instAllocDesc :: ("%8t /* %0s buffer */\n .%0s$buf: align = 0x%1x {}\0, _objAlign")
+ prop _objSize :: if GBL.DSPTYPE == 55 {(2 * self.objectSize())} else {self.objectSize()}
+ prop _memSeg :: LOG.OBJMEMSEG
+ prop _linkString :: if self.gNumOf > 0 {"*(.%1L)"} else {"/* no %1U objects */"}
+ prop _objAlign :: if GBL.DSPTYPE == 55 {self.buflen * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE) * 2} else {self.buflen * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE)}
+ prop _objMemSeg :: self.bufseg
+ prop LogType :: self.iType
+ prop LogFormat :: self.iFormat
+ prop pageString :: (if GBL.DSPTYPE == 62 {""} else {if (GBL.DSPTYPE == 55 || GBL.DSPTYPE == 28) {(if LOG.OBJMEMSEG.space() == "code" {" PAGE 0"} else {if LOG.OBJMEMSEG.space() == "data" {" PAGE 1"} else {if LOG.OBJMEMSEG.space() == "io" {" PAGE 2"} else {" PAGE 0"}}})} else {" PAGE 1"}})
+ prop numInst :: (LOG.gNumOf)
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"log.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far LOG_Obj %0r;\n\0"} else {"extern LOG_Obj %0r;\n\0"})
+ prop dataSize :: ($d = 0, scan ($i; LOG) {if ($i.IsConfObj()) {$d += $i.buflen} , $d += self.objectSize()}, $d)
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global ENABLED :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Compile in logging"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global TS :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "timestamped LOGs"
+ prop JSName :: "TS"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst bufseg :: = self.OBJMEMSEG {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "bufseg"
+ prop JSName :: "bufSeg"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst buflen :: 64 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "0,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,524288,1048576,2097152,4194304,8388608,16777216,33554432"
+ prop Label :: "buflen (words)"
+ prop JSName :: "bufLen"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (GlobalStatus.gDirty = 1, self.buflen = $1, "ok")
+ }
+ inst logtype :: "circular" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "circular,fixed"
+ prop Label :: "logtype"
+ prop JSName :: "logType"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst iType :: "printf" {
+ prop Label :: "datatype"
+ prop JSName :: "dataType"
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "printf,raw data"
+ prop Visible :: 1
+ prop Writable :: if self.iType == "system" {0} else {1}
+ prop NoGen :: 0
+ }
+ inst iFormat :: "0x%x, 0x%x, 0x%x" {
+ prop Label :: "format"
+ prop JSName :: "format"
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: if self.iType == "raw data" {1} else {0}
+ prop NoGen :: 0
+ }
+}
+
+object LOG_system :: LOG {
+ param iComment :: "This object is required by the system to accumulate execution trace information"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "LOG"
+ param iDelMsg :: "LOG_system is a system log and cannot be deleted."
+ param bufseg :: IRAM
+ param buflen :: 64
+ param logtype :: "circular"
+ param iType :: "system"
+ param iFormat :: "0x%x, 0x%x, 0x%x"
+}
+
+type PIP {
+ isa ObjectMgr
+ prop Label :: "PIP - Buffered Pipe Manager"
+ prop IsContainedIn :: IOF
+ prop GlobalIcon :: 117
+ prop InstanceIcon :: 118
+ prop GlobalHelpTopic :: (109)
+ prop InstanceHelpTopic :: (209)
+ prop name :: "PIP"
+ prop maxObjs :: (32767)
+ prop objectSize :: (if (GBL.DSPTYPE == 54 && GBL.FARMODE == 0) {$a = (27 * 4)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 1) {$a = (34 * 4)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL") {$a = (30 * 4)} , if (GBL.DSPTYPE == 28 || (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") || (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE")) {$a = (50 * 4)} , if (GBL.DSPTYPE == 62) {$a = (25 * 4)} , $a)
+ prop dataSize :: ($b = 0, scan ($i; PIP) {if ($i.IsConfObj()) {$b += (12 + $i.framesize) * $i.numframes + self.objectSize()} }, $b)
+ prop InstancePropertyPage :: ("{B7240DF0-AA51-11cf-9BFE-0000C0AC14C8}")
+ prop GlobalPropertyPage :: ("{B7240DF1-AA51-11cf-9BFE-0000C0AC14C8}")
+ prop localCreate :: ("ok")
+ prop AllocType :: ("1\0, _globalAllocDesc, _memSeg, _placement")
+ prop _globalAllocDesc :: ("%8t .%1L: RUN_START(%1U_A_TABBEG), RUN_START(_%1U_A_TABBEG), RUN_END(%1U_A_TABEND), RUN_END(_%1U_A_TABEND) {%8t\n }\0, name")
+ prop AllocInst :: ("1\0, _instAllocDesc, _objMemSeg, _placement")
+ prop GenLinkEpilogue :: ("%0tPIP_A_TABLEN = %1d;\n\0, numInst")
+ prop _instAllocDesc :: (if self.bufalign > 0 {"%8t /* %0s buffer */\n .pip%1d: align = 0x%2x {}\0, _objId, _objAlign"} else {"%8t /* %0s buffer */\n .pip%1d: {}\0, _objId"})
+ prop _placement :: (0x7fffffff / 2)
+ prop _objId :: self.iId
+ prop _objAlign :: self.bufalign * 4
+ prop _objMemSeg :: self.bufseg
+ prop _linkString :: if (self.gNumOf + self.gNumEmbed) > 0 {"*(.%1L)"} else {"/* no %1U objects */"}
+ prop _memSeg :: PIP.OBJMEMSEG
+ prop _objSize :: if GBL.DSPTYPE == 55 {(2 * self.objectSize())} else {self.objectSize()}
+ prop numInst :: (HST.gNumOf + PIP.gNumOf)
+ prop mkId :: (self.iId = self.gNextId++, self.gNumOf++, self.iId)
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"pip.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far PIP_Obj %0r;\n\0"} else {"extern PIP_Obj %0r;\n\0"})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global gNumEmbed :: 2 {
+ prop NoGen :: 0
+ }
+ global gNextId :: 0
+ global OBJSIZE :: = self._objSize
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst bufseg :: = self.OBJMEMSEG {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "bufSeg"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 1
+ }
+ inst bufalign :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "bufAlign"
+ prop Style :: 0x01 | 0x02
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 1
+ prop Set :: ($e = "ok", if ($1 == 0) {$e = self.error("Cannot set align value to 0")} else {self.bufalign = $1}, $e)
+ }
+ inst buf :: "<NULL>" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst framesize :: 8 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "framesize (words)"
+ prop JSName :: "frameSize"
+ prop Style :: if GBL.DSPTYPE == 62 {0x02} else {0x01 | 0x02}
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ prop Set :: (if ($1 < 1) {self.error("framesize must be >= 1.")} else {GlobalStatus.gDirty = 1, self.framesize = $1, "ok"})
+ }
+ inst numframes :: 2 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop JSName :: "numFrames"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ prop Set :: (if ($1 < 1) {self.error("Pipes must contain at least 1 frame.")} else {GlobalStatus.gDirty = 1, self.numframes = $1, "ok"})
+ }
+ inst monitor :: "reader" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "monitor"
+ prop Enum :: "reader,writer,none"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst notifyWriter :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "notifyWriterFxn"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ prop TabName :: "Notify Functions"
+ }
+ inst nwarg0 :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "notifyWriterArg0"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ prop TabName :: "Notify Functions"
+ }
+ inst nwarg1 :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "notifyWriterArg1"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ prop TabName :: "Notify Functions"
+ }
+ inst notifyReader :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "notifyReaderFxn"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ prop TabName :: "Notify Functions"
+ }
+ inst nrarg0 :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "notifyReaderArg0"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ prop TabName :: "Notify Functions"
+ }
+ inst nrarg1 :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "notifyReaderArg1"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ prop TabName :: "Notify Functions"
+ }
+ inst bufFrameAlign :: = self._objAlign {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+}
+
+type SEM {
+ isa ObjectMgr
+ prop name :: "SEM"
+ prop Label :: "SEM - Semaphore Manager"
+ prop IsContainedIn :: SYN
+ prop GlobalIcon :: 137
+ prop InstanceIcon :: 138
+ prop GlobalHelpTopic :: (310)
+ prop InstanceHelpTopic :: (410)
+ prop InstancePropertyPage :: ("{D01ACC04-38DD-11d1-988B-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{D01ACC05-38DD-11d1-988B-0020AFEE33C6}")
+ prop maxObjs :: (32767)
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _globalAllocDesc, _memSeg, _placement"} )
+ prop _globalAllocDesc :: ("%8t .sem: {}")
+ prop _placement :: (0x7fffffff / 2)
+ prop _memSeg :: self.OBJMEMSEG
+ prop objectSize :: (if (GBL.DSPTYPE == 62) {$a = (8 + 3)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 1) {$a = (10 + 4)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 0) {$a = (8 + 3)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") {$a = (16 + 6)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE") {$a = (16 + 6)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL") {$a = (10 + 4)} , if (GBL.DSPTYPE == 28) {$a = (16 + 6)} , $a)
+ prop dataSize :: (SEM.objectSize * SEM.gNumOf * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE))
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"sem.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far SEM_Obj %0r;\n\0"} else {"extern SEM_Obj %0r;\n\0"})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CALLBACKOBJ :: nil {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iCount :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Label :: "Initial semaphore count"
+ prop JSName :: "count"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+}
+
+type MBX {
+ isa ObjectMgr
+ prop name :: "MBX"
+ prop Label :: "MBX - Mailbox Manager"
+ prop IsContainedIn :: SYN
+ prop GlobalIcon :: 131
+ prop InstanceIcon :: 132
+ prop GlobalHelpTopic :: (307)
+ prop InstanceHelpTopic :: (407)
+ prop InstancePropertyPage :: ("{0EB45D44-38C1-11d1-988B-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{0EB45D45-38C1-11d1-988B-0020AFEE33C6}")
+ prop maxObjs :: (32767)
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _bssAllocDesc, _memSeg, _placement"} )
+ prop _bssAllocDesc :: ("%8t .mbx: {}")
+ prop _placement :: (0x7fffffff / 2)
+ prop _memSeg :: self.OBJMEMSEG
+ prop AllocInst :: ("1\0 _instAllocDesc, _instMemSeg, _placement")
+ prop _instAllocDesc :: ("%8t .%0s$que: align = 0x4 {%12t\n %0s$queElems = .;\n . += %1d;%8t\n }\0, _qElemSize")
+ prop _instMemSeg :: self.iMbxSeg
+ prop _qElemSize :: (if ((GBL.DSPTYPE == 55) && (GBL.DSPSUBTYPE != 5599)) {$a = self.iMsgSize, if ($a & 0x1) {$a += 1} , (8 + $a) * self.iMbxLength * 2} else {if (GBL.DSPTYPE == 28) {$a = self.iMsgSize, if ($a & 0x1) {$a += 1} , (8 + $a) * self.iMbxLength} else {$a = self.iMsgSize, $b = GBL.DSPWORDSIZE / GBL.DSPCHARSIZE, $c = $a & ($b - 1), if ($c != 0) {$a = $a + ($b - $c)} , (8 + $a) * self.iMbxLength}})
+ prop objectSize :: (if (GBL.DSPTYPE == 62) {$a = (29)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 1) {$a = (28)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 0) {$a = (24)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") {$a = (46)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE") {$a = (46)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL") {$a = (28)} , if (GBL.DSPTYPE == 28) {$a = (46)} , $a)
+ prop dataSize :: ($d = 0, scan ($i; MBX) {$d += (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE) * (($i.iMsgSize + 2) * $i.iMbxLength + self.objectSize())}, $d)
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"mbx.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far MBX_Obj %0r;\n\0"} else {"extern MBX_Obj %0r;\n\0"})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CALLBACKOBJ :: nil {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iMsgSize :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Label :: "Message Size"
+ prop JSName :: "messageSize"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop Set :: (if ($1 == 0) {self.error("Message size cannot be zero")} else {GlobalStatus.gDirty = 1, self.iMsgSize = $1, "ok"})
+ }
+ inst iMbxLength :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Label :: "Mailbox Length"
+ prop JSName :: "length"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop Set :: (if ($1 == 0) {self.error("Mailbox length cannot be zero")} else {GlobalStatus.gDirty = 1, self.iMbxLength = $1, "ok"})
+ }
+ inst iMbxSeg :: MBX.OBJMEMSEG {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Element memory segment"
+ prop JSName :: "elementSeg"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+}
+
+type QUE {
+ isa ObjectMgr
+ prop name :: "QUE"
+ prop Label :: "QUE - Atomic Queue Manager"
+ prop IsContainedIn :: SYN
+ prop GlobalIcon :: 133
+ prop InstanceIcon :: 134
+ prop IsConfMod :: 1
+ prop GlobalHelpTopic :: (309)
+ prop InstanceHelpTopic :: (409)
+ prop InstancePropertyPage :: ("{D01ACC01-38DD-11d1-988B-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{D01ACC02-38DD-11d1-988B-0020AFEE33C6}")
+ prop maxObjs :: (32767)
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _globalAllocDesc, _memSeg, _placement"} )
+ prop _globalAllocDesc :: ("%8t .que: {}")
+ prop _placement :: (0x7fffffff / 2)
+ prop _memSeg :: self.OBJMEMSEG
+ prop objectSize :: (if (GBL.DSPTYPE == 62) {$a = (2)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 1) {$a = (2)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 0) {$a = (2)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") {$a = (4)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE") {$a = (4)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL") {$a = (2)} , if (GBL.DSPTYPE == 28) {$a = (4)} , $a)
+ prop dataSize :: (QUE.objectSize * QUE.gNumOf * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE))
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"que.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far QUE_Obj %0r;\n\0"} else {"extern QUE_Obj %0r;\n\0"})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CALLBACKOBJ :: nil {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+type LCK {
+ isa ObjectMgr
+ prop name :: "LCK"
+ prop Label :: "LCK - Resource Lock Manager"
+ prop IsContainedIn :: SYN
+ prop GlobalIcon :: 129
+ prop InstanceIcon :: 130
+ prop IsConfMod :: 1
+ prop GlobalHelpTopic :: (306)
+ prop InstanceHelpTopic :: (406)
+ prop InstancePropertyPage :: ("{0EB45D40-38C1-11d1-988B-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{0EB45D41-38C1-11d1-988B-0020AFEE33C6}")
+ prop maxObjs :: (32767)
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _bssAllocDesc, _memSeg, _placement"} )
+ prop _bssAllocDesc :: ("%8t .lck: {}")
+ prop _objAllocDesc :: ("%8t .LCK$obj: {}")
+ prop _placement :: (0x7fffffff / 2)
+ prop _memSeg :: self.OBJMEMSEG
+ prop objectSize :: (if (GBL.DSPTYPE == 62) {$a = (10)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 1) {$a = (12)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 0) {$a = (10)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") {$a = (20)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE") {$a = (20)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL") {$a = (12)} , if (GBL.DSPTYPE == 28) {$a = (20)} , $a)
+ prop dataSize :: (LCK.objectSize * LCK.gNumOf * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE))
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"lck.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far LCK_Obj %0r;\n\0"} else {"extern LCK_Obj %0r;\n\0"})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CALLBACKOBJ :: nil {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+type STS {
+ isa ObjectMgr
+ prop name :: "STS"
+ prop Label :: "STS - Statistics Object Manager"
+ prop IsContainedIn :: INS
+ prop GlobalIcon :: 125
+ prop InstanceIcon :: 126
+ prop InstanceHelpTopic :: (212)
+ prop GlobalHelpTopic :: (112)
+ prop AllocType :: ("1\0, _globalAllocDesc, _memSeg, _placement")
+ prop _globalAllocDesc :: ("%8t .%1L: RUN_START(%1U_A_TABBEG), RUN_START(_%1U_A_TABBEG), RUN_END(%1U_A_TABEND), RUN_END(_%1U_A_TABEND) {%8t\n }\0, name")
+ prop localInit :: (if (PRD.CALLBACKOBJ != nil) {self.error("STS initialization failure")} , PRD.CALLBACKOBJ = STS)
+ prop objectSize :: ((4 * 4))
+ prop _placement :: (0x7fffffff / 2)
+ prop _linkString :: if self.gNumOf > 0 {"*(.%1L)"} else {"/* no %1U objects */"}
+ prop _memSeg :: STS.OBJMEMSEG
+ prop _objSize :: if GBL.DSPTYPE == 55 {(2 * self.objectSize())} else {self.objectSize()}
+ prop dataSize :: (self.objectSize() * (STS.gNumOf + STS.gNumEmbed))
+ prop maxObjs :: (32767)
+ prop InstancePropertyPage :: ("{B7240DEE-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop GlobalPropertyPage :: ("{B7240DEF-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop STSGetMaxFmt :: (self.format)
+ prop STSGetSumFmt :: (self.format)
+ prop STSGetAvgFmt :: ("%.2f")
+ prop STSFilterSum :: ((self.iA * $1 + self.iB * $2) / (1.0 * self.iC))
+ prop STSFilterMax :: ((self.iA * $1 + self.iB) / (1.0 * self.iC))
+ prop HighTimeBased :: (if self.unittype == "High resolution time based" {1} else {0})
+ prop LowTimeBased :: (if self.unittype == "Low resolution time based" {1} else {0})
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"sts.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far STS_Obj %0r;\n\0"} else {"extern STS_Obj %0r;\n\0"})
+ prop modifiable :: ((if (self.iDelUser == "USER" || self.iDelUser == "HWI") {1} else {0}))
+ prop untype :: (if (self.unittype == "Not time based") {$a = 2} , if (self.unittype == "High resolution time based") {$a = 0} , if (self.unittype == "Low resolution time based") {$a = 1} , $a)
+ prop optype :: (if (self.operation == "Nothing") {$a = 0} , if (self.operation == "A * x") {$a = 1} , if (self.operation == "A * x + B") {$a = 2} , if (self.operation == "(A * x + B) / C") {$a = 3} , $a)
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global gNumEmbed :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst prev :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: self.modifiable()
+ prop JSName :: "previousVal"
+ prop NoGen :: GBL.DSPTYPE != 40 && GBL.DSPTYPE != 62
+ prop Set :: (self.prev = $1, self.prevlow = $1 & 0xffff, self.prevhigh = ($1 >> 16) & 0xffff, "ok")
+ }
+ inst format :: "%g" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "format"
+ prop NoGen :: 1
+ }
+ inst filter :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "filter"
+ prop NoGen :: 0
+ }
+ inst maxformat :: "%g" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "maxformat"
+ prop NoGen :: 0
+ }
+ inst sumformat :: "%g" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "sumformat"
+ prop NoGen :: 0
+ }
+ inst avgformat :: "%.2f" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "avgformat"
+ prop NoGen :: 0
+ }
+ inst unittype :: "Not time based" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "Not time based,High resolution time based,Low resolution time based"
+ prop Label :: "unit type"
+ prop JSName :: "unitType"
+ prop Visible :: 1
+ prop Writable :: self.modifiable()
+ prop NoGen :: 1
+ prop Set :: (self.unittype = $1, if ($1 == "High resolution time based") {self.iA = 1, self.iB = 0, self.iC = 1, self.operation = "A * x"} else {if ($1 == "Low resolution time based") {self.iA = 1, self.iB = 0, self.iC = 1, self.operation = "A * x"} else {self.iA = 1, self.iB = 0, self.iC = 1, self.operation = "Nothing"}}, "ok")
+ }
+ inst operation :: "Nothing" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "Nothing,A * x,A * x + B,(A * x + B) / C"
+ prop Label :: "host operation"
+ prop JSName :: "operation"
+ prop Visible :: 1
+ prop Writable :: ((self.unittype != "Low resolution time based") && self.modifiable())
+ prop NoGen :: 1
+ prop Set :: (self.operation = $1, if ($1 == "Nothing" && self.unittype != "High resolution time based") {self.iA = 1, self.iB = 0, self.iC = 1} else {if ($1 == "A * x") {self.iB = 0, self.iC = 1} else {if ($1 == "A * x + B") {self.iC = 1} }}, "ok")
+ }
+ inst op :: = self.optype() {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst uType :: = self.untype() {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst iA :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: (self.modifiable() && !(self.unittype != "Not time based" || self.operation == "Nothing"))
+ prop Label :: "A"
+ prop JSName :: "numA"
+ prop NoGen :: 0
+ }
+ inst iB :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: (self.modifiable() && !(self.unittype == "Low resolution time based" || self.operation == "Nothing" || self.operation == "A * x"))
+ prop Label :: "B"
+ prop JSName :: "numB"
+ prop NoGen :: 0
+ }
+ inst iC :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: (self.modifiable() && (self.unittype == "Not time based" && self.operation == "(A * x + B) / C"))
+ prop Label :: "C"
+ prop JSName :: "numC"
+ prop NoGen :: 0
+ }
+ inst prevhigh :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: GBL.DSPTYPE == 40 || GBL.DSPTYPE == 62
+ }
+ inst prevlow :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+}
+
+type SYS {
+ isa Module
+ prop name :: "SYS"
+ prop Label :: "SYS - System Settings"
+ prop IsContainedIn :: SYSTEM
+ prop GlobalIcon :: 141
+ prop InstanceIcon :: 142
+ prop IsConfMod :: 1
+ prop GlobalHelpTopic :: (313)
+ prop InstanceHelpTopic :: (413)
+ prop InstancePropertyPage :: ("{473C4A62-B1A8-11d0-9885-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{473C4A63-B1A8-11d0-9885-0020AFEE33C6}")
+ prop AllocType :: (if self.PUTCFXN == @_UTL_doPutc {"2\0, _globalAllocDesc, _memSeg, _midPlace, _traceString, _traceSeg, _midPlace"} else {"1\0, _globalAllocDesc, _memSeg, _midPlace"})
+ prop _globalAllocDesc :: ("%8t .sys: {}")
+ prop _traceString :: ("%8t .trace: fill = 0x0 align = 0x4 {%12t\n_SYS_PUTCBEG = .;\n. += 0x%1x;\n_SYS_PUTCEND = . - 1;%8t\n }\0, _traceSize")
+ prop _midPlace :: (0x7fffffff / 2)
+ prop _memSeg :: MEM.CFGOBJSEG
+ prop _traceSeg :: SYS.TRACESEG
+ prop _traceSize :: SYS.TRACESIZE
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CALLBACKOBJ :: nil {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global TRACESIZE :: 512 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: "%d"
+ prop Style :: 0x01 | 0x02
+ prop Label :: "Trace Buffer Size"
+ prop JSName :: "TRACESIZE"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global TRACESEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Trace Buffer Memory"
+ prop JSName :: "TRACESEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global ABORTFXN :: @_UTL_doAbort {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Abort Function"
+ prop JSName :: "ABORTFXN"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global ERRORFXN :: @_UTL_doError {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Error Function"
+ prop JSName :: "ERRORFXN"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global EXITFXN :: @_UTL_halt {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Exit Function"
+ prop JSName :: "EXITFXN"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global PUTCFXN :: @_UTL_doPutc {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Putc Function"
+ prop JSName :: "PUTCFXN"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+}
+
+type SIO {
+ isa ObjectMgr
+ prop name :: "SIO"
+ prop Label :: "SIO - Stream Input and Output Manager"
+ prop IsContainedIn :: IOF
+ prop DependsOn :: "DIO,DGN,DHL,DPI"
+ prop GlobalIcon :: 139
+ prop InstanceIcon :: 140
+ prop GlobalHelpTopic :: (311)
+ prop InstanceHelpTopic :: (411)
+ prop InstancePropertyPage :: ("{7C4C9A60-763E-11d1-988B-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{7C4C9A61-763E-11d1-988B-0020AFEE33C6}")
+ prop maxObjs :: (32767)
+ prop AllocType :: (if (self.gNumOf > 0) {"2\0, _bssAllocDesc, _memSeg, _placement,
+ _objAllocDesc, _memSeg, _placement"} )
+ prop _bssAllocDesc :: ("%8t .SIO$bss: {%12t\n *(.SIO$bss)%8t\n }")
+ prop _objAllocDesc :: ("%8t .SIO$obj: {%12t\n *(.SIO$obj)%8t\n }")
+ prop _placement :: (0x7fffffff / 2)
+ prop _memSeg :: self.OBJMEMSEG
+ prop AllocInst :: ("1\0, _instBufDesc, _instBufSeg, _placement")
+ prop _instBufDesc :: (if self.iAlign > 1 {"%8t .%0s$bufs: align = 0x%1x {}\0, _objAlign"} else {"%8t .%0s$bufs: {}"})
+ prop _objAlign :: self.iAlign
+ prop _instBufSeg :: self.iBufSegid
+ prop defDev :: ($h = nil, $i = nil, $j = nil, scan ($h; nil) {if ($h.isDriver == 1) {scan ($i; $h) {if ($j == nil && $i.iIsTerminal != 0 && $i.iIsVirtual == 0) {$j = $i, break} }} }, $j)
+ prop devList :: ($h = nil, $i = nil, $j = nil, scan ($h; nil) {if ($h.isDriver == 1) {scan ($i; $h) {if ($j == nil && $i.iIsTerminal != 0 && $i.iIsVirtual == 0) {$j = $i, scan ($a; DIO) {if ($a == $i) {$i.numTimeUse++} }, break} }} }, $j)
+ prop setDev :: ($h = nil, $i = nil, $j = nil, scan ($h; nil) {if ($h.isDriver == 1) {scan ($i; $h) {if ($i == $1) {$j = $i} }} }, $j)
+ prop localCanCreate :: (if (self.defDev == nil) {self.error("A driver device must be created before creating a stream.")} else {"ok"})
+ prop localDelete :: (scan ($a; DIO) {if ($a == self.iDevice) {self.iDevice.numTimeUse--} }, "ok")
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"sio.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far SIO_Obj %0r;\n\0"} else {"extern SIO_Obj %0r;\n\0"})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumEmbed :: 0 {
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global USEISSUERECLAIM :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Use Only Issue/Reclaim Model"
+ prop JSName :: "USEISSUERECLAIM"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: (self.USEISSUERECLAIM = $1, if ($1 == 1) {scan ($i; SIO) {$i.iModelName = "Issue/Reclaim"}} , "ok")
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDevice :: SIO.devList {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop TypeTest :: $1.isDriver == 1
+ prop MemberTest :: $1.driverType != "DEV_IOMTYPE"
+ prop Label :: "Device"
+ prop JSName :: "deviceName"
+ prop Set :: (if (($1.iIsTerminal == 0) && (self.iDevCtrlParam == "")) {self.error("To select a stacking device, enter first a terminal device in Device Control String")} else {if ($1.iIsVirtual == 1) {self.error("The device you have selected is a virtual instance, you must select a non-virtual device")} else {scan ($a; DIO) {if ($a == self.iDevice) {self.iDevice.numTimeUse--} }, scan ($b; DIO) {if ($b == $1) {$1.numTimeUse++} }, self.iDevice = self.setDev($1), "ok"}})
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ inst iDevCtrlParam :: "" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Device Control String"
+ prop JSName :: "controlParameter"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ inst iDevId :: = self.iDevice.iDevId
+ inst iFxns :: = self.iDevice.iFxns
+ inst iMode :: "input" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "input,output"
+ prop Label :: "Mode"
+ prop JSName :: "mode"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ inst iBufsize :: 0x80 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Label :: "Buffer size"
+ prop JSName :: "bufSize"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ inst iNbufs :: 2 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Label :: "Number of buffers"
+ prop JSName :: "numBufs"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ inst iBufSegid :: = self.OBJMEMSEG {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Place buffers in memory segment"
+ prop JSName :: "bufSegId"
+ prop Visible :: 1
+ prop Writable :: self.iAllocBuf == 1
+ }
+ inst iAlign :: 1 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768"
+ prop Label :: "Buffer alignment"
+ prop JSName :: "bufAlign"
+ prop Visible :: 1
+ prop Writable :: self.iAllocBuf == 1
+ }
+ inst iFlush :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Flush"
+ prop JSName :: "flush"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ inst iModelName :: "Standard" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "Standard,Issue/Reclaim"
+ prop Label :: "Model"
+ prop JSName :: "modelName"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: ($e = "ok", if (self.USEISSUERECLAIM == 1) {if ($1 == "Standard") {$e = self.error("SIO Issue/Reclaim model support selected")} else {self.iModel = if $1 == "Standard" {"SIO_STANDARD"} else {"SIO_ISSUERECLAIM"}, self.iModelName = $1}} else {self.iModel = if $1 == "Standard" {"SIO_STANDARD"} else {"SIO_ISSUERECLAIM"}, self.iModelName = $1}, $e)
+ }
+ inst iAllocBuf :: = self.iSaveAllocBuf {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Allocate Static Buffer(s)"
+ prop JSName :: "allocStaticBuf"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop Set :: (self.iSaveAllocBuf = $1, "ok")
+ }
+ inst iSaveAllocBuf :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst iModel :: "SIO_STANDARD" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "SIO_STANDARD,SIO_ISSUERECLAIM"
+ prop Visible :: 0
+ prop Writable :: 0
+ }
+ inst iTimeout :: = if self.iModel == "SIO_ISSUERECLAIM" {self.iSaveTimeout} else {-1} {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Timeout for I/O operation"
+ prop JSName :: "timeout"
+ prop Visible :: 1
+ prop Writable :: self.iModel == "SIO_ISSUERECLAIM"
+ prop Set :: (self.iSaveTimeout = $1, "ok")
+ }
+ inst iSaveTimeout :: -1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst useCallBackFxn :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "use callback function"
+ prop JSName :: "useCallBackFxn"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop TabName :: "Callback"
+ }
+ inst callBackFxn :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "callback function"
+ prop JSName :: "callBackFxn"
+ prop Visible :: 1
+ prop Writable :: self.useCallBackFxn
+ prop NoGen :: 0
+ prop TabName :: "Callback"
+ }
+ inst arg0 :: 0 {
+ prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
+ prop Label :: "argument 0"
+ prop JSName :: "arg0"
+ prop Visible :: 1
+ prop Writable :: self.useCallBackFxn
+ prop NoGen :: 0
+ prop TabName :: "Callback"
+ }
+ inst arg1 :: 0 {
+ prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
+ prop Label :: "argument 1"
+ prop JSName :: "arg1"
+ prop Visible :: 1
+ prop Writable :: self.useCallBackFxn
+ prop NoGen :: 0
+ prop TabName :: "Callback"
+ }
+}
+
+type GIO {
+ isa Module
+ prop Visible :: 1
+ prop name :: "GIO"
+ prop Label :: "GIO - General Input/Output Manager"
+ prop IsConfMod :: self.USEGIO
+ prop IsContainedIn :: IOF
+ prop DependsOn :: "UDEV"
+ prop GlobalIcon :: 141
+ prop InstanceIcon :: 142
+ prop GlobalHelpTopic :: (320)
+ prop InstanceHelpTopic :: (420)
+ prop InstancePropertyPage :: ("{473C4A62-B1A8-11d0-9885-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{473C4A63-B1A8-11d0-9885-0020AFEE33C6}")
+ prop AllocType :: ("1\0, _globalAllocDesc, _memSeg, _midPlace")
+ prop _globalAllocDesc :: ("%8t .gio: {}")
+ prop _midPlace :: (0x7fffffff / 2)
+ prop _memSeg :: MEM.CFGOBJSEG
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CALLBACKOBJ :: nil {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global USEGIO :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable General Input/Output Manager"
+ prop JSName :: "ENABLEGIO"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global CREATEFXN :: = if self.USEGIO == 1 {@_SEM_create} else {@_FXN_F_nop} {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Create Function"
+ prop JSName :: "CREATEFXN"
+ prop Visible :: 1
+ prop Writable :: self.USEGIO
+ prop NoGen :: 0
+ }
+ global DELETEFXN :: = if self.USEGIO == 1 {@_SEM_delete} else {@_FXN_F_nop} {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Delete Function"
+ prop JSName :: "DELETEFXN"
+ prop Visible :: 1
+ prop Writable :: self.USEGIO
+ prop NoGen :: 0
+ }
+ global PENDFXN :: = if self.USEGIO == 1 {@_SEM_pend} else {@_FXN_F_nop} {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Pend Function"
+ prop JSName :: "PENDFXN"
+ prop Visible :: 1
+ prop Writable :: self.USEGIO
+ prop NoGen :: 0
+ }
+ global POSTFXN :: = if self.USEGIO == 1 {@_SEM_post} else {@_FXN_F_nop} {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Post Function"
+ prop JSName :: "POSTFXN"
+ prop Visible :: 1
+ prop Writable :: self.USEGIO
+ prop NoGen :: 0
+ }
+}
+
+type DEV {
+ isa ObjectMgr
+ prop name :: "DEV"
+ prop Visible :: 0
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _bssAllocDesc, _memSeg, _placement"} , if (self.devCount() > 0) {"1\0, _devtableDesc, _memSeg, _placement"} )
+ prop _bssAllocDesc :: ("%8t .dev: {}")
+ prop _devtableDesc :: ("%8t .devtable: {}")
+ prop _memSeg :: MEM.CFGOBJSEG
+ prop _placement :: (0x7fffffff / 2)
+ prop DependsOn :: "HWI"
+ prop devCount :: ($i = nil, $a = 0, scan ($i; nil) {if ($i.isDriver == 1) {$a = $a + $i.gNumOf} }, $a)
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+type UDEV {
+ isa ObjectMgr
+ prop name :: "UDEV"
+ prop Label :: "User-Defined Devices"
+ prop IsContainedIn :: SIODRIVER
+ prop DependsOn :: "DEV"
+ prop GlobalIcon :: 127
+ prop InstanceIcon :: 128
+ prop GlobalHelpTopic :: (315)
+ prop InstanceHelpTopic :: (415)
+ prop InstancePropertyPage :: ("{7AE86AA0-35C0-11d1-988B-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{7AE86AA1-35C0-11d1-988B-0020AFEE33C6}")
+ prop maxObjs :: (32767)
+ prop isDriver :: (1)
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _globalAllocDesc, _memSeg, _placement"} )
+ prop _globalAllocDesc :: ("%8t .udev: {}")
+ prop _placement :: (0x7fffffff / 2)
+ prop _memSeg :: MEM.CFGOBJSEG
+ prop _driverType :: (if self.fxnTableType == "DEV_Fxns" {"DEV_SIOTYPE"} else {"DEV_IOMTYPE"})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iInit :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "init function"
+ prop JSName :: "initFxn"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: (self.iInit = $1, self.initFxn = self.iInit, "ok")
+ }
+ inst iFxns :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "function table ptr"
+ prop JSName :: "fxnTable"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ inst fxnTableType :: "DEV_Fxns" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "DEV_Fxns,IOM_Fxns"
+ prop Label :: "function table type"
+ prop JSName :: "fxnTableType"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst driverType :: = self._driverType {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "DEV_SIOTYPE,DEV_IOMTYPE"
+ prop Visible :: 0
+ }
+ inst iDevId :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "device id"
+ prop JSName :: "deviceId"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: (self.iDevId = $1, self.deviceId = self.iDevId, "ok")
+ }
+ inst iParams :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "device params ptr"
+ prop JSName :: "params"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ inst deviceId :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: ""
+ prop Visible :: 0
+ }
+ inst initFxn :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: ""
+ prop Visible :: 0
+ }
+ inst iIsStacking :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Stacking Device"
+ prop JSName :: "stackingDevice"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst deviceGlobalDataPtr :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "device global data ptr"
+ prop JSName :: "deviceGlobalDataPtr"
+ prop Visible :: 1
+ prop Writable :: self.fxnTableType == "IOM_Fxns"
+ }
+ inst iIsTerminal :: = if self.fxnTableType == "DEV_Fxns" {1} else {0} {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst iIsVirtual :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+}
+
+type DIO {
+ isa ObjectMgr
+ prop Visible :: 1
+ prop Label :: "DIO - Class Driver"
+ prop name :: "DIO"
+ prop IsContainedIn :: SIODRIVER
+ prop DependsOn :: "UDEV"
+ prop GlobalIcon :: 127
+ prop InstanceIcon :: 127
+ prop GlobalHelpTopic :: (319)
+ prop InstanceHelpTopic :: (419)
+ prop InstancePropertyPage :: ("{f80273c0-3838-11d2-a32c-006097656921}")
+ prop GlobalPropertyPage :: ("{050a0600-3839-11d2-a32c-006097656921}")
+ prop maxObjs :: (32767)
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _globalAllocDesc, _memSeg, _placement"} )
+ prop _globalAllocDesc :: ("%8t .dio: {}")
+ prop _placement :: (0x7fffffff / 2)
+ prop _memSeg :: self.OBJMEMSEG
+ prop isDriver :: (1)
+ prop mdObject :: ($h = nil, $j = nil, scan ($h; UDEV) {if ($h.driverType == "DEV_IOMTYPE") {$j = $h, break} }, $j)
+ prop localCanCreate :: (if (self.mdObject == nil) {self.error("An IOM type device must be created first.")} else {"ok"})
+ prop numTsk :: ($a = 0, $h = nil, scan ($h; DIO) {if ($h.useCallBackFxn == 0) {$a = $a + $h.numTimeUse} }, $a)
+ prop numSwi :: ($a = 0, $h = nil, scan ($h; DIO) {if ($h.useCallBackFxn == 1) {$a = $a + $h.numTimeUse} }, $a)
+ prop functionTablePtr :: (if (self.STATIC) {if (self.useCallBackFxn) {@_DIO_cbStaticFxns} else {@_DIO_tskStaticFxns}} else {if (self.useCallBackFxn) {@_DIO_cbDynamicFxns} else {@_DIO_tskDynamicFxns}})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global STATIC :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Create all DIO Objects Statically"
+ prop JSName :: "STATICCREATE"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global NUMTSKBASE :: = self.numTsk {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "TSK based"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global NUMSWIBASE :: = self.numSwi {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "SWI based"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst useCallBackFxn :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "use callback version of DIO function table (for SWI)"
+ prop JSName :: "useCallBackFxn"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst fxnsTable :: = self.functionTablePtr {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst initFxn :: @_DIO_init {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst deviceName :: self.mdObject {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: UDEV
+ prop MemberTest :: $1.driverType == "DEV_IOMTYPE"
+ prop Label :: "device name"
+ prop JSName :: "deviceName"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst chanParams :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "channel parameters"
+ prop JSName :: "chanParams"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst numTimeUse :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDevId :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iFxns :: = self.functionTablePtr {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iIsTerminal :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst iIsVirtual :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+}
+
+type DGN {
+ isa ObjectMgr
+ prop name :: "DGN"
+ prop Label :: "DGN - Software Generator Driver"
+ prop IsContainedIn :: SIODRIVER
+ prop GlobalIcon :: 127
+ prop InstanceIcon :: 128
+ prop GlobalHelpTopic :: (302)
+ prop InstanceHelpTopic :: (402)
+ prop InstancePropertyPage :: ("{054FE166-B014-11d0-9885-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{054FE167-B014-11d0-9885-0020AFEE33C6}")
+ prop DependsOn :: "DEV"
+ prop maxObjs :: (32767)
+ prop isDriver :: (1)
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _globalAllocDesc, _memSeg, _placement"} )
+ prop _globalAllocDesc :: ("%8t .dgn: {}")
+ prop _placement :: (0x7fffffff / 2)
+ prop _memSeg :: MEM.CFGOBJSEG
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDevice :: "user" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: if GBL.DSPARITHMETIC == "FLOAT" {"user,sine,random,constant,printFloat,printHex,printInt"} else {"user,sine,random,constant,printHex,printInt"}
+ prop Label :: "Device category"
+ prop JSName :: "device"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: ($a = $1, if ($a != self.iDevice) {self.iDevice = $a, self.iUserFxn = @_FXN_F_nop} , if ($a == "user") {self.iUserFxn = self.iSaveUserFxn} , if ($a == "printFloat") {self.iUserFxn = @_DGN_printFloat} , if ($a == "printHex") {self.iUserFxn = @_DGN_printHex} , if ($a == "printInt") {self.iUserFxn = @_DGN_printInt} , "ok")
+ }
+ inst iUseDefaults :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Use default parameters"
+ prop Visible :: 1
+ prop JSName :: "useDefaultParam"
+ prop Writable :: self.iDevice == "sine" || self.iDevice == "constant" || self.iDevice == "random" || self.iDevice == "user"
+ }
+ inst iDevId :: = if self.iDevice == "constant" {@DGN_CONST} else {if self.iDevice == "random" {@DGN_RAND} else {if self.iDevice == "sine" {@DGN_SINE} else {@DGN_USER}}} {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Device ID"
+ prop JSName :: "deviceId"
+ prop Visible :: 1
+ prop Writable :: 0
+ }
+ inst iIsTerminal :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst iIsVirtual :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst iConstant :: if GBL.DSPARITHMETIC == "FIXED" {1} else {1.0} {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: if GBL.DSPARITHMETIC == "FIXED" {0} else {0x04}
+ prop Format :: if GBL.DSPARITHMETIC == "FIXED" {"%d"} else {"%f"}
+ prop Label :: "Constant value"
+ prop JSName :: "constant"
+ prop Visible :: 1
+ prop Writable :: self.iUseDefaults == 0 && (self.iDevice == "constant" || self.iDevice == "user")
+ }
+ inst iRandSeed :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Seed value"
+ prop JSName :: "seedValue"
+ prop Visible :: 1
+ prop Writable :: self.iUseDefaults == 0 && (self.iDevice == "random" || self.iDevice == "user")
+ }
+ inst iRandLower :: if GBL.DSPARITHMETIC == "FIXED" {-32767} else {0.0} {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: if GBL.DSPARITHMETIC == "FIXED" {0} else {0x04}
+ prop Format :: if GBL.DSPARITHMETIC == "FIXED" {"%d"} else {"%f"}
+ prop Label :: "Lower limit"
+ prop JSName :: "lowerLimit"
+ prop Visible :: 1
+ prop Writable :: self.iUseDefaults == 0 && (self.iDevice == "random" || self.iDevice == "user")
+ }
+ inst iRandUpper :: if GBL.DSPARITHMETIC == "FIXED" {32767} else {1.0} {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: if GBL.DSPARITHMETIC == "FIXED" {0} else {0x04}
+ prop Format :: if GBL.DSPARITHMETIC == "FIXED" {"%d"} else {"%f"}
+ prop Label :: "Upper limit"
+ prop JSName :: "upperLimit"
+ prop Visible :: 1
+ prop Writable :: self.iUseDefaults == 0 && (self.iDevice == "random" || self.iDevice == "user")
+ }
+ inst iSineGain :: if GBL.DSPARITHMETIC == "FIXED" {32767} else {1.0} {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: if GBL.DSPARITHMETIC == "FIXED" {0} else {0x04}
+ prop Format :: if GBL.DSPARITHMETIC == "FIXED" {"%d"} else {"%f"}
+ prop Label :: "Gain"
+ prop JSName :: "gain"
+ prop Visible :: 1
+ prop Writable :: self.iUseDefaults == 0 && (self.iDevice == "sine" || self.iDevice == "user")
+ }
+ inst iSineFreq :: if GBL.DSPARITHMETIC == "FIXED" {1} else {1000.0} {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: if GBL.DSPARITHMETIC == "FIXED" {0} else {0x04}
+ prop Format :: if GBL.DSPARITHMETIC == "FIXED" {"%d"} else {"%f"}
+ prop Label :: "Frequency (Hz)"
+ prop JSName :: "frequency"
+ prop Visible :: 1
+ prop Writable :: self.iUseDefaults == 0 && (self.iDevice == "sine" || self.iDevice == "user")
+ }
+ inst iSinePhase :: if GBL.DSPARITHMETIC == "FIXED" {0} else {0.0} {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: if GBL.DSPARITHMETIC == "FIXED" {0} else {0x04}
+ prop Format :: if GBL.DSPARITHMETIC == "FIXED" {"%d"} else {"%f"}
+ prop Label :: "Phase (radians)"
+ prop JSName :: "phase"
+ prop Visible :: 1
+ prop Writable :: self.iUseDefaults == 0 && (self.iDevice == "sine" || self.iDevice == "user")
+ }
+ inst iSineRate :: if GBL.DSPARITHMETIC == "FIXED" {256} else {44000} {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Sample rate (samples/sec)"
+ prop JSName :: "rate"
+ prop Visible :: 1
+ prop Writable :: self.iUseDefaults == 0 && (self.iDevice == "sine" || self.iDevice == "user")
+ }
+ inst iUserFxn :: if self.iDevice == "printFloat" {@_DGN_printFloat} else {if self.iDevice == "printHex" {@_DGN_printHex} else {if self.iDevice == "printInt" {@_DGN_printInt} else {@_FXN_F_nop}}} {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "User function"
+ prop JSName :: "fxn"
+ prop Visible :: 1
+ prop Writable :: self.iDevice == "user"
+ prop Set :: (self.iUserFxn = $1, self.iSaveUserFxn = self.iUserFxn, "ok")
+ }
+ inst iSaveUserFxn :: @_FXN_F_nop {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iUserArg :: = 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "User function argument"
+ prop JSName :: "arg"
+ prop Visible :: 1
+ prop Writable :: self.iDevice == "user"
+ }
+ inst iFxns :: @_DGN_FXNS {
+ prop NoGen :: 1
+ }
+}
+
+type DHL {
+ isa ObjectMgr
+ prop name :: "DHL"
+ prop Label :: "DHL - Host Link Driver"
+ prop IsContainedIn :: SIODRIVER
+ prop GlobalHelpTopic :: (303)
+ prop InstanceHelpTopic :: (403)
+ prop InstancePropertyPage :: ("{9C29DA20-90F9-11d1-988B-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{9C29DA21-90F9-11d1-988B-0020AFEE33C6}")
+ prop GlobalIcon :: 127
+ prop InstanceIcon :: 128
+ prop DependsOn :: "DEV"
+ prop Visible :: 1
+ prop isDriver :: 1
+ prop objectSize :: (if (GBL.DSPTYPE == 62) {$a = (19)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 1) {$a = (22)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 0) {$a = (19)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") {$a = (34)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE") {$a = (34)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL") {$a = (22)} , if (GBL.DSPTYPE == 28) {$a = (34)} , $a)
+ prop dataSize :: (DHL.objectSize * DHL.gNumOf * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE))
+ prop localCanCreate :: (if (self.gChannelsAvailable > 0) {"ok"} else {self.warning("No HST channels are available for a new DHL device.")})
+ prop localCreate :: (self.gChannelsAvailable--, self.seizeHSTChannel(self.iHSTChannel), "ok")
+ prop seizeHSTChannel :: ($1.iDelUser = "DHL", $1.iDHLAvailable = 0, $1.notify = @_DHL_notify, $1.arg0 = $1.iId, "ok")
+ prop localDelete :: (self.gChannelsAvailable++, self.releaseHSTChannel(self.iHSTChannel), "ok")
+ prop releaseHSTChannel :: ($1.iDelUser = "USER", $1.iDHLAvailable = 1, $1.notify = @_FXN_F_nop, $1.arg0 = 0, "ok")
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _globalAllocDesc, _memSeg, _placement"} )
+ prop _globalAllocDesc :: "%8t .dhl: {}"
+ prop _memSeg :: self.OBJMEMSEG
+ prop _placement :: (0x7fffffff / 2)
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gChannelsAvailable :: 0
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iHSTChannel :: (scan ($i; HST) {if ($i.iDHLAvailable == 1) {$a = $i} }, $a) {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Underlying HST Channel"
+ prop JSName :: "hstChannel"
+ prop MemberType :: HST
+ prop MemberTest :: (if (($1.iDHLAvailable == 1) || ($1 == self.iHSTChannel)) {1} else {0})
+ prop Set :: (if ($1.iDHLAvailable != 1) {self.error("This channel is already in use.")} else {self.releaseHSTChannel(self.iHSTChannel), self.seizeHSTChannel($1), self.iHSTChannel = $1, "ok"})
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst iMode :: = self.iHSTChannel.mode {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Mode"
+ prop JSName :: "mode"
+ prop Visible :: 1
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst iDevId :: = (self.iHSTChannel.iId) {
+ prop NoGen :: 0
+ }
+ inst iIsTerminal :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst iIsVirtual :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst iFxns :: @_DHL_FXNS {
+ prop NoGen :: 1
+ }
+}
+
+type DPI {
+ isa ObjectMgr
+ prop name :: "DPI"
+ prop Label :: "DPI - Pipe Driver"
+ prop IsContainedIn :: SIODRIVER
+ prop GlobalIcon :: 127
+ prop InstanceIcon :: 128
+ prop GlobalHelpTopic :: (304)
+ prop InstanceHelpTopic :: (404)
+ prop InstancePropertyPage :: ("{7FE06FA0-2DE9-11d1-988B-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{7FE06FA1-2DE9-11d1-988B-0020AFEE33C6}")
+ prop DependsOn :: "DEV"
+ prop maxObjs :: (32767)
+ prop isDriver :: (1)
+ prop localCreate :: (self.gCurDevId += 1, "ok")
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gCurDevId :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDevId :: DPI.gCurDevId {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop Set :: (self.error("DPI.iDevId parameter no longer settable, it is now handled automatically"))
+ }
+ inst iIsVirtual :: 0 {
+ prop Label :: "Allow virtual instances of this device."
+ prop JSName :: "allowVirtual"
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (if ($1 == 1) {$a = "ok", $b = 1, scan ($i; SIO) {if ($i.iDevice == self) {$a = self.error("This DPI instance is being used by one or more SIO instances, cannot reconfigure"), $b = 0} }, if ($b == 1) {self.iIsVirtual = 1} , $a} else {self.iIsVirtual = 0, "ok"})
+ }
+ inst iIsTerminal :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst iFxns :: @_DPI_FXNS {
+ prop NoGen :: 1
+ }
+}
+
+type MSGQ {
+ isa Module
+ prop Visible :: 1
+ prop name :: "MSGQ"
+ prop Label :: "MSGQ - Message Queue Manager"
+ prop IsConfMod :: self.USEMSGQ
+ prop IsContainedIn :: IOF
+ prop DependsOn :: "GIO,SIO"
+ prop GlobalIcon :: 131
+ prop InstanceIcon :: 132
+ prop GlobalHelpTopic :: (323)
+ prop InstanceHelpTopic :: (423)
+ prop InstancePropertyPage :: ("{473C4A62-B1A8-11d0-9885-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{473C4A63-B1A8-11d0-9885-0020AFEE33C6}")
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global USEMSGQ :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable MSGQ Manager"
+ prop JSName :: "ENABLEMSGQ"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+}
+
+type HOOK {
+ isa ObjectMgr
+ prop name :: "HOOK"
+ prop Label :: "HOOK - Module Hook Manager"
+ prop IsContainedIn :: SYSTEM
+ prop DependsOn :: "SWI"
+ prop InstancePropertyPage :: ("{473C4A64-B1A8-11d0-9885-0020AFEE33C6}")
+ prop GlobalIcon :: 181
+ prop InstanceIcon :: 182
+ prop GlobalHelpTopic :: (318)
+ prop InstanceHelpTopic :: (418)
+ prop localCreate :: (if (self.gNumOf == 0) {HOOK_KNL.iIsUsed = 1, self.mkId(0)} , "ok")
+ prop localDelete :: (if (self.gNumOf == 2) {HOOK_KNL.iIsUsed = 0, self.rmId} , "ok")
+ prop maxObjs :: (32767)
+ prop SortByField :: "iPri"
+ prop SortGroups :: 1
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global KNLID :: = (HOOK_KNL.Order - 1) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst initFxn :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Initialization function"
+ prop JSName :: "initFxn"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ inst createFxn :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Create function"
+ prop JSName :: "createFxn"
+ prop Visible :: 1
+ prop Writable :: self.iDelUser == "USER"
+ }
+ inst deleteFxn :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Delete function"
+ prop JSName :: "deleteFxn"
+ prop Visible :: 1
+ prop Writable :: self.iDelUser == "USER"
+ }
+ inst exitFxn :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Exit function"
+ prop JSName :: "exitFxn"
+ prop Visible :: 1
+ prop Writable :: self.iDelUser == "USER"
+ }
+ inst callSwitchFxn :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Call switch function"
+ prop JSName :: "callSwitchFxn"
+ prop Visible :: 1
+ prop Writable :: self.iDelUser == "USER"
+ }
+ inst switchFxn :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Switch function"
+ prop JSName :: "switchFxn"
+ prop Visible :: 1
+ prop Writable :: self.callSwitchFxn
+ }
+ inst callReadyFxn :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Call ready function"
+ prop JSName :: "callReadyFxn"
+ prop Visible :: 1
+ prop Writable :: self.iDelUser == "USER"
+ }
+ inst readyFxn :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Ready function"
+ prop JSName :: "readyFxn"
+ prop Visible :: 1
+ prop Writable :: self.callReadyFxn
+ }
+ inst Order :: 2 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "order"
+ prop NoGen :: 1
+ prop Writable :: 1
+ }
+ inst iPri :: 0 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop NoGen :: 1
+ }
+}
+
+object HOOK_KNL :: HOOK {
+ param iComment :: "Used to support TSK function hooks (cannot be deleted)"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HOOK"
+ param iDelMsg :: "This hook instance is used by TSK and cannot be deleted"
+ param initFxn :: @_FXN_F_nop
+ param createFxn :: @_FXN_F_nop
+ param deleteFxn :: @_FXN_F_nop
+ param exitFxn :: @_FXN_F_nop
+ param callSwitchFxn :: 0
+ param switchFxn :: @_FXN_F_nop
+ param callReadyFxn :: 0
+ param readyFxn :: @_FXN_F_nop
+ param Order :: 1
+ param iPri :: 0
+}
+
+object SDRAM :: MEM {
+ param iComment :: "This object defines 8MB for the DSP's off-chip memory"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param base :: -2147483648
+ param len :: 8388608
+ param iAllocHeap :: 0
+ param iHeapSize :: 32768
+ param iUserHeapId :: 0
+ param iHeapId :: @segment_name
+ param iReqHeapCount :: 0
+ param space :: "code/data"
+ param dynamicLoading :: 0
+ param iIsModifiable :: 1
+}
+
+object IRAM :: MEM {
+ param iComment :: "Internal L2 memory"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param base :: 0
+ param len :: 262144
+ param iAllocHeap :: 0
+ param iHeapSize :: 32768
+ param iUserHeapId :: 0
+ param iHeapId :: @segment_name
+ param iReqHeapCount :: 0
+ param space :: "code/data"
+ param dynamicLoading :: 0
+ param iIsModifiable :: 1
+}
+
diff --git a/Project/RTDSP/.gconf/RTDSP/lab3/RTDSP/dsp_bios_.tcf b/Project/RTDSP/.gconf/RTDSP/lab3/RTDSP/dsp_bios_.tcf
new file mode 100644
index 0000000..131cf32
--- /dev/null
+++ b/Project/RTDSP/.gconf/RTDSP/lab3/RTDSP/dsp_bios_.tcf
@@ -0,0 +1,14 @@
+utils.loadPlatform("ti.platforms.dsk6713");
+
+/* The following DSP/BIOS Features are enabled. */
+bios.enableRealTimeAnalysis(prog);
+bios.enableRtdx(prog);
+bios.enableTskManager(prog);
+
+bios.HWI.instance("HWI_INT4").interruptSource = prog.get("MCSP_1_Receive");
+bios.HWI.instance("HWI_INT4").fxn = prog.extern("ISR_AIC");
+bios.HWI.instance("HWI_INT4").useDispatcher = 1;
+bios.HWI.instance("HWI_INT4").interruptSource = prog.get("MCSP_1_Transmit");
+// !GRAPHICAL_CONFIG_TOOL_SCRIPT_INSERT_POINT!
+
+prog.gen();
diff --git a/Project/RTDSP/.gconf/RTDSP/lab3/RTDSP/dsp_bios_cfg.cmd b/Project/RTDSP/.gconf/RTDSP/lab3/RTDSP/dsp_bios_cfg.cmd
new file mode 100644
index 0000000..3a02123
--- /dev/null
+++ b/Project/RTDSP/.gconf/RTDSP/lab3/RTDSP/dsp_bios_cfg.cmd
@@ -0,0 +1,292 @@
+/* Do *not* directly modify this file. It was */
+/* generated by the Configuration Tool; any */
+/* changes risk being overwritten. */
+
+/* INPUT dsp_bios_.cdb */
+
+/* MODULE PARAMETERS */
+-u _GBL_setPLLto225MHz
+GBL_USERINITFXN = _GBL_setPLLto225MHz;
+
+-u MEM_NULL
+MEM_SEGZERO = MEM_NULL;
+-u MEM_NULL
+MEM_MALLOCSEG = MEM_NULL;
+
+-u CLK_F_getshtime
+CLK_TIMEFXN = CLK_F_getshtime;
+-u HWI_F_dispatch
+CLK_HOOKFXN = HWI_F_dispatch;
+
+-u _KNL_tick
+PRD_THOOKFXN = _KNL_tick;
+
+-u IRAM
+RTDX_DATAMEMSEG = IRAM;
+
+-u IRAM
+HST_DSMBUFSEG = IRAM;
+
+-u GBL_NULL
+SWI_EHOOKFXN = GBL_NULL;
+-u GBL_NULL
+SWI_IHOOKFXN = GBL_NULL;
+-u SWI_F_exec
+SWI_EXECFXN = SWI_F_exec;
+-u SWI_F_run
+SWI_RUNFXN = SWI_F_run;
+
+-u MEM_NULL
+TSK_STACKSEG = MEM_NULL;
+-u _FXN_F_nop
+TSK_VCREATEFXN = _FXN_F_nop;
+-u _FXN_F_nop
+TSK_VDELETEFXN = _FXN_F_nop;
+-u _FXN_F_nop
+TSK_VEXITFXN = _FXN_F_nop;
+
+-u IDL_F_stub
+IDL_CALIBRFXN = IDL_F_stub;
+
+-u _UTL_doAbort
+SYS_ABORTFXN = _UTL_doAbort;
+-u _UTL_doError
+SYS_ERRORFXN = _UTL_doError;
+-u _UTL_halt
+SYS_EXITFXN = _UTL_halt;
+-u _UTL_doPutc
+SYS_PUTCFXN = _UTL_doPutc;
+
+-u _FXN_F_nop
+GIO_CREATEFXN = _FXN_F_nop;
+-u _FXN_F_nop
+GIO_DELETEFXN = _FXN_F_nop;
+-u _FXN_F_nop
+GIO_PENDFXN = _FXN_F_nop;
+-u _FXN_F_nop
+GIO_POSTFXN = _FXN_F_nop;
+
+/* OBJECT ALIASES */
+_SDRAM = SDRAM;
+_IRAM = IRAM;
+_PRD_clock = PRD_clock;
+_RTA_fromHost = RTA_fromHost;
+_RTA_toHost = RTA_toHost;
+_HWI_RESET = HWI_RESET;
+_HWI_NMI = HWI_NMI;
+_HWI_RESERVED0 = HWI_RESERVED0;
+_HWI_RESERVED1 = HWI_RESERVED1;
+_HWI_INT4 = HWI_INT4;
+_HWI_INT5 = HWI_INT5;
+_HWI_INT6 = HWI_INT6;
+_HWI_INT7 = HWI_INT7;
+_HWI_INT8 = HWI_INT8;
+_HWI_INT9 = HWI_INT9;
+_HWI_INT10 = HWI_INT10;
+_HWI_INT11 = HWI_INT11;
+_HWI_INT12 = HWI_INT12;
+_HWI_INT13 = HWI_INT13;
+_HWI_INT14 = HWI_INT14;
+_HWI_INT15 = HWI_INT15;
+_KNL_swi = KNL_swi;
+_TSK_idle = TSK_idle;
+_IDL_cpuLoad = IDL_cpuLoad;
+_LNK_dataPump = LNK_dataPump;
+_RTA_dispatcher = RTA_dispatcher;
+_LOG_system = LOG_system;
+_IDL_busyObj = IDL_busyObj;
+
+/* MODULE GBL */
+
+SECTIONS {
+ .vers (COPY): {} /* version information */
+}
+
+-priority
+--trampolines
+-llnkrtdx.a67
+-ldrivers.a67 /* device drivers support */
+-lsioboth.a67 /* supports both SIO models */
+-lbiosC6000.a67 /* BIOS clock specific library */
+-lbios6x1x.a67 /* BIOS c6x1x specific library */
+-lbios.a67 /* DSP/BIOS support */
+-lrtdx.lib /* RTDX support */
+-lrts6700.lib /* C and C++ run-time library support */
+
+_GBL_CACHE = GBL_CACHE;
+
+/* MODULE MEM */
+-stack 0x400
+MEMORY {
+ SDRAM : origin = 0x80000000, len = 0x800000
+ IRAM : origin = 0x0, len = 0x40000
+}
+/* MODULE CLK */
+SECTIONS {
+ .clk: {
+
+ CLK_F_gethtime = CLK_F_getshtime;
+ *(.clk)
+ } > IRAM, RUN_START(CLK_A_TABBEG)
+}
+_CLK_PRD = CLK_PRD;
+_CLK_COUNTSPMS = CLK_COUNTSPMS;
+_CLK_REGS = CLK_REGS;
+_CLK_USETIMER = CLK_USETIMER;
+_CLK_TIMERNUM = CLK_TIMERNUM;
+_CLK_TDDR = CLK_TDDR;
+
+/* MODULE PRD */
+SECTIONS {
+ .prd: RUN_START(PRD_A_TABBEG), RUN_END(PRD_A_TABEND) {
+ } > IRAM
+}
+PRD_A_TABLEN = 0;
+
+/* MODULE RTDX */
+_RTDX_interrupt_mask = 0x0;
+
+/* MODULE HST */
+_LNK_dspFrameReadyMask = LNK_dspFrameReadyMask;
+_LNK_dspFrameRequestMask = LNK_dspFrameRequestMask;
+_LNK_readDone = LNK_readDone;
+_LNK_readFail = LNK_readFail;
+_LNK_readPend = LNK_readPend;
+_LNK_writeFail = LNK_writeFail;
+/* MODULE HWI */
+SECTIONS {
+ .hwi_vec: 0x0 {
+ HWI_A_VECS = .;
+ *(.hwi_vec)
+ }
+}
+
+_HWI_CFGDISPATCHED = HWI_CFGDISPATCHED;
+
+/* MODULE SWI */
+SECTIONS {
+ .swi: RUN_START(SWI_A_TABBEG), RUN_END(SWI_A_TABEND) {
+ } > IRAM
+}
+SWI_A_TABLEN = 1;
+
+/* MODULE TSK */
+SECTIONS {
+ .tsk: {
+ *(.tsk)
+ } > IRAM
+}
+
+/* MODULE IDL */
+SECTIONS {
+ .idl: {
+ *(.idl)
+ } > IRAM, RUN_START(IDL_A_TABBEG)
+
+ .idlcal: {
+ *(.idlcal)
+ } > IRAM, RUN_START(IDL_A_CALBEG)
+}
+
+
+LOG_A_TABLEN = 1; _LOG_A_TABLEN = 1;
+
+PIP_A_TABLEN = 2;
+
+
+SECTIONS {
+ .bss: {} > IRAM
+
+ .far: {} > IRAM
+
+ .sysdata: {} > IRAM
+
+ .dsm: {} > IRAM
+
+ frt: {} > IRAM
+
+ .mem: {} > IRAM
+
+ .bios: {} > IRAM
+
+ .cio: {} > IRAM
+
+ .data: {} > IRAM
+
+ .gio: {} > IRAM
+
+ .pinit: {} > IRAM
+
+ .sys: {} > IRAM
+
+ .sysregs: {} > IRAM
+
+ .text: {} > IRAM
+
+ .cinit: {} > IRAM
+
+ .switch: {} > IRAM
+
+ .gblinit: {} > IRAM
+
+ .sysinit: {} > IRAM
+
+ .trcdata: {} > IRAM
+
+ .hwi: {} > IRAM
+
+ .rtdx_data: {} > IRAM
+
+ .rtdx_text: {} > IRAM
+
+ .TSK_idle$stk: {
+ *(.TSK_idle$stk)
+ } > IRAM
+
+ /* LOG_system buffer */
+ .LOG_system$buf: align = 0x100 {} > IRAM
+
+ /* RTA_fromHost buffer */
+ .hst1: align = 0x4 {} > IRAM
+
+ /* RTA_toHost buffer */
+ .hst0: align = 0x4 {} > IRAM
+
+ GROUP {
+ .const: align = 0x8 {}
+ .printf (COPY): {}
+ } > IRAM
+
+ .args: align=4 fill=0 {
+ *(.args)
+ . += 0x4;
+ } > IRAM
+
+ .trace: fill = 0x0 align = 0x4 {
+ _SYS_PUTCBEG = .;
+ . += 0x200;
+ _SYS_PUTCEND = . - 1;
+ } > IRAM
+
+ .hst: RUN_START(HST_A_TABBEG), RUN_START(_HST_A_TABBEG), RUN_END(HST_A_TABEND), RUN_END(_HST_A_TABEND) {
+ } > IRAM
+
+ .log: RUN_START(LOG_A_TABBEG), RUN_START(_LOG_A_TABBEG), RUN_END(LOG_A_TABEND), RUN_END(_LOG_A_TABEND) {
+ } > IRAM
+
+ .pip: RUN_START(PIP_A_TABBEG), RUN_START(_PIP_A_TABBEG), RUN_END(PIP_A_TABEND), RUN_END(_PIP_A_TABEND) {
+ } > IRAM
+
+ .sts: RUN_START(STS_A_TABBEG), RUN_START(_STS_A_TABBEG), RUN_END(STS_A_TABEND), RUN_END(_STS_A_TABEND) {
+ } > IRAM
+
+ .stack: align = 0x8 {
+ GBL_stackbeg = .;
+ *(.stack)
+ GBL_stackend = GBL_stackbeg + 0x400 - 1;
+ _HWI_STKBOTTOM = GBL_stackbeg + 0x400 - 8;
+ _HWI_STKTOP = GBL_stackbeg;
+ } > IRAM
+
+}
+
diff --git a/Project/RTDSP/.gconf/RTDSP/lab3/RTDSP/dsp_bios_cfg.h b/Project/RTDSP/.gconf/RTDSP/lab3/RTDSP/dsp_bios_cfg.h
new file mode 100644
index 0000000..616731f
--- /dev/null
+++ b/Project/RTDSP/.gconf/RTDSP/lab3/RTDSP/dsp_bios_cfg.h
@@ -0,0 +1,29 @@
+/* Do *not* directly modify this file. It was */
+/* generated by the Configuration Tool; any */
+/* changes risk being overwritten. */
+
+/* INPUT dsp_bios_.cdb */
+
+/* Include Header Files */
+#include <std.h>
+#include <hst.h>
+#include <swi.h>
+#include <tsk.h>
+#include <log.h>
+#include <sts.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern far HST_Obj RTA_fromHost;
+extern far HST_Obj RTA_toHost;
+extern far SWI_Obj KNL_swi;
+extern far TSK_Obj TSK_idle;
+extern far LOG_Obj LOG_system;
+extern far STS_Obj IDL_busyObj;
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
diff --git a/Project/RTDSP/.gconf/RTDSP/lab3/RTDSP/dsp_bios_cfg.h62 b/Project/RTDSP/.gconf/RTDSP/lab3/RTDSP/dsp_bios_cfg.h62
new file mode 100644
index 0000000..1f831ca
--- /dev/null
+++ b/Project/RTDSP/.gconf/RTDSP/lab3/RTDSP/dsp_bios_cfg.h62
@@ -0,0 +1,197 @@
+;; Do *not* directly modify this file. It was
+;; generated by the Configuration Tool; any
+;; changes risk being overwritten.
+
+;; INPUT dsp_bios_.cdb
+
+;; CONFIGURATION/VERSION INFORMATION
+ .asg "dsp_bios_.cdb", VERS$CDB
+ .asg ";;;", VERS$CDBRELATIVEPATH
+ .asg "dsp_bios_cfg", VERS$CFG
+ .asg "@(#)*** xdcutils-e03", VERS$TREE
+
+;; EXTERNAL REFERENCES
+ .global HWI_unused
+ .global RESERVED
+ .global _FXN_F_nop
+ .global segment_name
+ .global _CLK_start6x
+ .global FXN_F_nop
+ .global FXN_F_zero
+ .global HWI_F_dispatch
+ .global CLK_F_frete
+ .global CLK_F_rete
+ .global CLK_F_getltime
+ .global CLK_F_isr
+ .global CLK_A_TABBEG
+ .global CLK_F_getfhtime
+ .global CLK_F_getshtime
+ .global PRD_F_tick
+ .global PRD_F_swi
+ .global _KNL_tick
+ .global LNK_F_dataPump
+ .global RTA_F_dispatch
+ .global _HSRTDX_xmt
+ .global _HSRTDX_rec
+ .global _RTDX_Poll
+ .global GBL_stackbeg
+ .global _c_int00
+ .global SWI_F_exec
+ .global SWI_F_run
+ .global GBL_NULL
+ .global __HOOK_doCreate
+ .global __HOOK_doDelete
+ .global __HOOK_doExit
+ .global __HOOK_doSwitch
+ .global __HOOK_doReady
+ .global null
+ .global _IDL_loop
+ .global IDL_F_loop
+ .global _KNL_run
+ .global IDL_F_stub
+ .global IDL_F_calibrate
+ .global IDL_F_busy
+ .global _UTL_doPutc
+ .global _UTL_doAbort
+ .global _UTL_doError
+ .global _UTL_halt
+ .global _SEM_create
+ .global _SEM_delete
+ .global _SEM_pend
+ .global _SEM_post
+ .global _DIO_cbStaticFxns
+ .global _DIO_tskStaticFxns
+ .global _DIO_cbDynamicFxns
+ .global _DIO_tskDynamicFxns
+ .global _DIO_init
+ .global _DGN_printFloat
+ .global _DGN_printHex
+ .global _DGN_printInt
+ .global DGN_CONST
+ .global DGN_RAND
+ .global DGN_SINE
+ .global DGN_USER
+ .global _DGN_FXNS
+ .global _DHL_notify
+ .global _DHL_FXNS
+ .global _DPI_FXNS
+ .global _GBL_setPLLto225MHz
+ .global _ISR_AIC
+
+;; MODULE PARAMETERS
+GBL$ .set 1
+GBL_ROM .set 00H
+GBL_PROCID .set 00H
+GBL_CLKIN .set 04e20H
+GBL_FREQ .set 036ee8H
+GBL_DSPTYPE .set 03eH
+GBL_DSPSUBTYPE .set 01a39H
+GBL_CLKTYPE .set 01770H
+GBL_BIGENDIAN .set 00H
+GBL_USERINIT .set 01H
+GBL_ENABLEINST .set 01H
+GBL_CACHE .set 00H
+GBL_L2CONFIGURE .set 01H
+GBL_L2MODE .set 00H
+GBL_L2PRIORITY .set 00H
+GBL_L2MARMASK .set 01H
+GBL_SUPPORTCSL .set 00H
+GBL_TRCMASKVALUE .set 0dbefH
+GBL_CALLCSLCFGINIT .set 01H
+GBL_C641XL2PRIORITY .set 00H
+GBL_L2MARMASK1 .set 00H
+GBL_L2MARMASK2 .set 00H
+GBL_L2MARMASK3 .set 00H
+GBL_L2MARMASK4 .set 00H
+GBL_L2MARMASK5 .set 00H
+GBL_L2CONFIGALLOC .set 00H
+GBL_L2ALLOC .set 02226H
+MEM$ .set 1
+MEM_gNumHeap .set 00H
+MEM_USEMPC .set 00H
+OBJ$ .set 0
+BUF$ .set 0
+BUF_ENABLED .set 01H
+POOL$ .set 0
+POOL_USEPOOL .set 00H
+CLK$ .set 1
+CLK_INTBIT .set 04000H
+CLK_REGS .set 01940000H
+CLK_TIMERNUM .set 00H
+CLK_USETIMER .set 01H
+CLK_MICROSECS .set 03e8H
+CLK_TCR .set 020H
+CLK_TDDR .set 00H
+CLK_TDDRHIGH .set 00H
+CLK_PRD .set 0dbbaH
+CLK_PRDHIGH .set 00H
+CLK_COUNTSPMS .set 0dbbaH
+CLK_COUNTSPMSHIGH .set 00H
+CLK_CALDIV .set 01H
+CLK_CALMULT .set 04H
+CLK_HTIMEDIV .set 01H
+CLK_HTIMEMULT .set 04H
+CLK_LTIMEDIV .set 01H
+CLK_LTIMEMULT .set 036ee8H
+CLK_HTIMEPERLTIME .set 0dbbaH
+PRD$ .set 1
+PRD_SCALAR .set 04000H
+RTDX$ .set 1
+RTDX_USERTDX .set 01H
+RTDX_USERTEXECUTION .set 00H
+ .asg "JTAG", RTDX_RTDXTYPE
+RTDX_BUFMEMSIZE .set 0408H
+HST$ .set 1
+HST_RTDX .set 01H
+HST_DSM .set 00H
+HST_NONE .set 00H
+HST_MAXFRAMESET .set 040H
+HST_MAXFRAMEALLOWED .set 0ffH
+HST_DSMMEMSIZE .set 0400H
+HWI$ .set 1
+HWI_ZEROTAB .set 01H
+HWI_GENERATE_RESET_VEC .set 00H
+HWI_POLARITYMASK .set 00H
+HWI_INTRMULTLOW .set 0310718aeH
+HWI_INTRMULTHIGH .set 082039a3H
+HWI_CFGDISPATCHED .set 04018H
+SWI$ .set 1
+TSK$ .set 1
+TSK_STACKSIZE .set 0400H
+TSK_PRIORITY .set 01H
+TSK_SWITCHFXN .set 00H
+TSK_READYFXN .set 00H
+TSK_NUM_HOOKS .set 00H
+IDL$ .set 1
+IDL_USECLKIDLTIME .set 01H
+IDL_CALIBRERROR .set 06H
+ISRC$ .set 1
+LOG$ .set 1
+LOG_ENABLED .set 01H
+PIP$ .set 0
+PIP_gNumEmbed .set 02H
+PIP_gNextId .set 00H
+PIP_OBJSIZE .set 064H
+SEM$ .set 0
+MBX$ .set 0
+QUE$ .set 1
+LCK$ .set 1
+STS$ .set 1
+SYS$ .set 1
+SIO$ .set 0
+GIO$ .set 0
+DEV$ .set 0
+UDEV$ .set 0
+DIO$ .set 0
+DIO_STATIC .set 00H
+DIO_NUMTSKBASE .set 00H
+DIO_NUMSWIBASE .set 00H
+DGN$ .set 0
+DHL$ .set 0
+DHL_gChannelsAvailable .set 00H
+DPI$ .set 0
+MSGQ$ .set 0
+MSGQ_USEMSGQ .set 00H
+HOOK$ .set 0
+HOOK_KNLID .set 00H
+DEV$NUMDEVICES .set 0
diff --git a/Project/RTDSP/.gconf/RTDSP/lab3/RTDSP/dsp_bios_cfg.s62 b/Project/RTDSP/.gconf/RTDSP/lab3/RTDSP/dsp_bios_cfg.s62
new file mode 100644
index 0000000..1cd3e3e
--- /dev/null
+++ b/Project/RTDSP/.gconf/RTDSP/lab3/RTDSP/dsp_bios_cfg.s62
@@ -0,0 +1,1091 @@
+;; Do *not* directly modify this file. It was
+;; generated by the Configuration Tool; any
+;; changes risk being overwritten.
+
+;; INPUT dsp_bios_.cdb
+
+;; CONFIGURATION/VERSION INFORMATION
+ .asg "Thu Jan 18 13:48:06 2018", VERS$DATE
+
+;; PROLOGUE
+ .include dsp_bios_cfg.h62
+ .copy confbeg.s62
+
+;; TYPE HEADERS
+ .include gbl.h62
+ .include mem.h62
+ .include obj.h62
+ .include buf.h62
+ .include pool.h62
+ .include clk.h62
+ .include prd.h62
+ .include rtdx.h62
+ .include hst.h62
+ .include hwi.h62
+ .include swi.h62
+ .include tsk.h62
+ .include idl.h62
+ .include isrc.h62
+ .include log.h62
+ .include pip.h62
+ .include sem.h62
+ .include mbx.h62
+ .include que.h62
+ .include lck.h62
+ .include sts.h62
+ .include sys.h62
+ .include sio.h62
+ .include gio.h62
+ .include dev.h62
+ .include udev.h62
+ .include dio.h62
+ .include dgn.h62
+ .include dhl.h62
+ .include dpi.h62
+ .include msgq.h62
+ .include hook.h62
+
+;; TYPE ATTRIBUTES
+MEM$NUMOF .set 2
+MEM$SETOF .set 00H
+OBJ$NUMOF .set 0
+OBJ$SETOF .set 00H
+BUF$NUMOF .set 0
+BUF$SETOF .set 00H
+CLK$NUMOF .set 1
+CLK$SETOF .set 00H
+PRD$NUMOF .set 0
+PRD$SETOF .set 00H
+RTDX$NUMOF .set 0
+RTDX$SETOF .set 00H
+HST$NUMOF .set 2
+HST$SETOF .set 03H
+HWI$NUMOF .set 16
+HWI$SETOF .set 0ffffH
+SWI$NUMOF .set 1
+SWI$SETOF .set 00H
+TSK$NUMOF .set 1
+TSK$SETOF .set 00H
+IDL$NUMOF .set 3
+IDL$SETOF .set 00H
+ISRC$NUMOF .set 0
+ISRC$SETOF .set 00H
+LOG$NUMOF .set 1
+LOG$SETOF .set 00H
+PIP$NUMOF .set 0
+PIP$SETOF .set 00H
+SEM$NUMOF .set 0
+SEM$SETOF .set 00H
+MBX$NUMOF .set 0
+MBX$SETOF .set 00H
+QUE$NUMOF .set 0
+QUE$SETOF .set 00H
+LCK$NUMOF .set 0
+LCK$SETOF .set 00H
+STS$NUMOF .set 1
+STS$SETOF .set 00H
+SIO$NUMOF .set 0
+SIO$SETOF .set 00H
+DEV$NUMOF .set 0
+DEV$SETOF .set 00H
+UDEV$NUMOF .set 0
+UDEV$SETOF .set 00H
+DIO$NUMOF .set 0
+DIO$SETOF .set 00H
+DGN$NUMOF .set 0
+DGN$SETOF .set 00H
+DHL$NUMOF .set 0
+DHL$SETOF .set 00H
+DPI$NUMOF .set 0
+DPI$SETOF .set 00H
+HOOK$NUMOF .set 0
+HOOK$SETOF .set 00H
+
+;; module GBL (ROM, PROCID, CLKIN, FREQ, DSPTYPE, DSPSUBTYPE, CLKTYPE, BIGENDIAN, USERINIT, USERINITFXN, ENABLEINST, CACHE, L2CONFIGURE, L2MODE, L2PRIORITY, L2MARMASK, SUPPORTCSL, TRCMASKVALUE, CALLCSLCFGINIT, C641XL2PRIORITY, L2MARMASK1, L2MARMASK2, L2MARMASK3, L2MARMASK4, L2MARMASK5, L2CONFIGALLOC, L2ALLOC)
+ .global GBL$ ; == 1
+ .global GBL_ROM ; dsp_bios_cfg.h62
+ .global GBL_PROCID ; dsp_bios_cfg.h62
+ .global GBL_CLKIN ; dsp_bios_cfg.h62
+ .global GBL_FREQ ; dsp_bios_cfg.h62
+ .global GBL_DSPTYPE ; dsp_bios_cfg.h62
+ .global GBL_DSPSUBTYPE ; dsp_bios_cfg.h62
+ .global GBL_CLKTYPE ; dsp_bios_cfg.h62
+ .global GBL_BIGENDIAN ; dsp_bios_cfg.h62
+ .global GBL_USERINIT ; dsp_bios_cfg.h62
+ .global GBL_USERINITFXN ; dsp_bios_cfg.cmd
+ .global GBL_ENABLEINST ; dsp_bios_cfg.h62
+ .global GBL_CACHE ; dsp_bios_cfg.h62
+ .global GBL_L2CONFIGURE ; dsp_bios_cfg.h62
+ .global GBL_L2MODE ; dsp_bios_cfg.h62
+ .global GBL_L2PRIORITY ; dsp_bios_cfg.h62
+ .global GBL_L2MARMASK ; dsp_bios_cfg.h62
+ .global GBL_SUPPORTCSL ; dsp_bios_cfg.h62
+ .global GBL_TRCMASKVALUE ; dsp_bios_cfg.h62
+ .global GBL_CALLCSLCFGINIT ; dsp_bios_cfg.h62
+ .global GBL_C641XL2PRIORITY ; dsp_bios_cfg.h62
+ .global GBL_L2MARMASK1 ; dsp_bios_cfg.h62
+ .global GBL_L2MARMASK2 ; dsp_bios_cfg.h62
+ .global GBL_L2MARMASK3 ; dsp_bios_cfg.h62
+ .global GBL_L2MARMASK4 ; dsp_bios_cfg.h62
+ .global GBL_L2MARMASK5 ; dsp_bios_cfg.h62
+ .global GBL_L2CONFIGALLOC ; dsp_bios_cfg.h62
+ .global GBL_L2ALLOC ; dsp_bios_cfg.h62
+
+;; module MEM (gNumHeap, SEGZERO, MALLOCSEG, USEMPC)
+ .global MEM$ ; == 1
+ .global MEM_gNumHeap ; dsp_bios_cfg.h62
+ .global MEM_SEGZERO ; dsp_bios_cfg.cmd
+ .global MEM_MALLOCSEG ; dsp_bios_cfg.cmd
+ .global MEM_USEMPC ; dsp_bios_cfg.h62
+
+;; module OBJ ()
+ .global OBJ$ ; == 0
+
+;; module BUF (ENABLED)
+ .global BUF$ ; == 0
+ .global BUF_ENABLED ; dsp_bios_cfg.h62
+
+;; module POOL (USEPOOL)
+ .global POOL$ ; == 0
+ .global POOL_USEPOOL ; dsp_bios_cfg.h62
+
+;; module CLK (INTBIT, REGS, TIMERNUM, USETIMER, MICROSECS, TCR, TDDR, TDDRHIGH, PRD, PRDHIGH, COUNTSPMS, COUNTSPMSHIGH, TIMEFXN, HOOKFXN, CALDIV, CALMULT, HTIMEDIV, HTIMEMULT, LTIMEDIV, LTIMEMULT, HTIMEPERLTIME)
+ .global CLK$ ; == 1
+ .global CLK_INTBIT ; dsp_bios_cfg.h62
+ .global CLK_REGS ; dsp_bios_cfg.h62
+ .global CLK_TIMERNUM ; dsp_bios_cfg.h62
+ .global CLK_USETIMER ; dsp_bios_cfg.h62
+ .global CLK_MICROSECS ; dsp_bios_cfg.h62
+ .global CLK_TCR ; dsp_bios_cfg.h62
+ .global CLK_TDDR ; dsp_bios_cfg.h62
+ .global CLK_TDDRHIGH ; dsp_bios_cfg.h62
+ .global CLK_PRD ; dsp_bios_cfg.h62
+ .global CLK_PRDHIGH ; dsp_bios_cfg.h62
+ .global CLK_COUNTSPMS ; dsp_bios_cfg.h62
+ .global CLK_COUNTSPMSHIGH ; dsp_bios_cfg.h62
+ .global CLK_TIMEFXN ; dsp_bios_cfg.cmd
+ .global CLK_HOOKFXN ; dsp_bios_cfg.cmd
+ .global CLK_CALDIV ; dsp_bios_cfg.h62
+ .global CLK_CALMULT ; dsp_bios_cfg.h62
+ .global CLK_HTIMEDIV ; dsp_bios_cfg.h62
+ .global CLK_HTIMEMULT ; dsp_bios_cfg.h62
+ .global CLK_LTIMEDIV ; dsp_bios_cfg.h62
+ .global CLK_LTIMEMULT ; dsp_bios_cfg.h62
+ .global CLK_HTIMEPERLTIME ; dsp_bios_cfg.h62
+
+;; module PRD (SCALAR, THOOKFXN)
+ .global PRD$ ; == 1
+ .global PRD_SCALAR ; dsp_bios_cfg.h62
+ .global PRD_THOOKFXN ; dsp_bios_cfg.cmd
+
+;; module RTDX (USERTDX, USERTEXECUTION, RTDXTYPE, DATAMEMSEG, BUFMEMSIZE)
+ .global RTDX$ ; == 1
+ .global RTDX_USERTDX ; dsp_bios_cfg.h62
+ .global RTDX_USERTEXECUTION ; dsp_bios_cfg.h62
+ .global RTDX_RTDXTYPE ; dsp_bios_cfg.h62
+ .global RTDX_DATAMEMSEG ; dsp_bios_cfg.cmd
+ .global RTDX_BUFMEMSIZE ; dsp_bios_cfg.h62
+
+;; module HST (RTDX, DSM, NONE, MAXFRAMESET, MAXFRAMEALLOWED, DSMBUFSEG, DSMMEMSIZE)
+ .global HST$ ; == 1
+ .global HST_RTDX ; dsp_bios_cfg.h62
+ .global HST_DSM ; dsp_bios_cfg.h62
+ .global HST_NONE ; dsp_bios_cfg.h62
+ .global HST_MAXFRAMESET ; dsp_bios_cfg.h62
+ .global HST_MAXFRAMEALLOWED ; dsp_bios_cfg.h62
+ .global HST_DSMBUFSEG ; dsp_bios_cfg.cmd
+ .global HST_DSMMEMSIZE ; dsp_bios_cfg.h62
+
+;; module HWI (ZEROTAB, GENERATE_RESET_VEC, POLARITYMASK, INTRMULTLOW, INTRMULTHIGH, CFGDISPATCHED)
+ .global HWI$ ; == 1
+ .global HWI_ZEROTAB ; dsp_bios_cfg.h62
+ .global HWI_GENERATE_RESET_VEC ; dsp_bios_cfg.h62
+ .global HWI_POLARITYMASK ; dsp_bios_cfg.h62
+ .global HWI_INTRMULTLOW ; dsp_bios_cfg.h62
+ .global HWI_INTRMULTHIGH ; dsp_bios_cfg.h62
+ .global HWI_CFGDISPATCHED ; dsp_bios_cfg.h62
+
+;; module SWI (EHOOKFXN, IHOOKFXN, EXECFXN, RUNFXN)
+ .global SWI$ ; == 1
+ .global SWI_EHOOKFXN ; dsp_bios_cfg.cmd
+ .global SWI_IHOOKFXN ; dsp_bios_cfg.cmd
+ .global SWI_EXECFXN ; dsp_bios_cfg.cmd
+ .global SWI_RUNFXN ; dsp_bios_cfg.cmd
+
+;; module TSK (STACKSIZE, STACKSEG, PRIORITY, VCREATEFXN, VDELETEFXN, VEXITFXN, SWITCHFXN, READYFXN, NUM_HOOKS)
+ .global TSK$ ; == 1
+ .global TSK_STACKSIZE ; dsp_bios_cfg.h62
+ .global TSK_STACKSEG ; dsp_bios_cfg.cmd
+ .global TSK_PRIORITY ; dsp_bios_cfg.h62
+ .global TSK_VCREATEFXN ; dsp_bios_cfg.cmd
+ .global TSK_VDELETEFXN ; dsp_bios_cfg.cmd
+ .global TSK_VEXITFXN ; dsp_bios_cfg.cmd
+ .global TSK_SWITCHFXN ; dsp_bios_cfg.h62
+ .global TSK_READYFXN ; dsp_bios_cfg.h62
+ .global TSK_NUM_HOOKS ; dsp_bios_cfg.h62
+
+;; module IDL (USECLKIDLTIME, CALIBRFXN, CALIBRERROR)
+ .global IDL$ ; == 1
+ .global IDL_USECLKIDLTIME ; dsp_bios_cfg.h62
+ .global IDL_CALIBRFXN ; dsp_bios_cfg.cmd
+ .global IDL_CALIBRERROR ; dsp_bios_cfg.h62
+
+;; module ISRC ()
+ .global ISRC$ ; == 1
+
+;; module LOG (ENABLED)
+ .global LOG$ ; == 1
+ .global LOG_ENABLED ; dsp_bios_cfg.h62
+
+;; module PIP (gNumEmbed, gNextId, OBJSIZE)
+ .global PIP$ ; == 0
+ .global PIP_gNumEmbed ; dsp_bios_cfg.h62
+ .global PIP_gNextId ; dsp_bios_cfg.h62
+ .global PIP_OBJSIZE ; dsp_bios_cfg.h62
+
+;; module SEM ()
+ .global SEM$ ; == 0
+
+;; module MBX ()
+ .global MBX$ ; == 0
+
+;; module QUE ()
+ .global QUE$ ; == 1
+
+;; module LCK ()
+ .global LCK$ ; == 1
+
+;; module STS ()
+ .global STS$ ; == 1
+
+;; module SYS (ABORTFXN, ERRORFXN, EXITFXN, PUTCFXN)
+ .global SYS$ ; == 1
+ .global SYS_ABORTFXN ; dsp_bios_cfg.cmd
+ .global SYS_ERRORFXN ; dsp_bios_cfg.cmd
+ .global SYS_EXITFXN ; dsp_bios_cfg.cmd
+ .global SYS_PUTCFXN ; dsp_bios_cfg.cmd
+
+;; module SIO ()
+ .global SIO$ ; == 0
+
+;; module GIO (CREATEFXN, DELETEFXN, PENDFXN, POSTFXN)
+ .global GIO$ ; == 0
+ .global GIO_CREATEFXN ; dsp_bios_cfg.cmd
+ .global GIO_DELETEFXN ; dsp_bios_cfg.cmd
+ .global GIO_PENDFXN ; dsp_bios_cfg.cmd
+ .global GIO_POSTFXN ; dsp_bios_cfg.cmd
+
+;; module DEV ()
+ .global DEV$ ; == 0
+
+;; module UDEV ()
+ .global UDEV$ ; == 0
+
+;; module DIO (STATIC, NUMTSKBASE, NUMSWIBASE)
+ .global DIO$ ; == 0
+ .global DIO_STATIC ; dsp_bios_cfg.h62
+ .global DIO_NUMTSKBASE ; dsp_bios_cfg.h62
+ .global DIO_NUMSWIBASE ; dsp_bios_cfg.h62
+
+;; module DGN ()
+ .global DGN$ ; == 0
+
+;; module DHL (gChannelsAvailable)
+ .global DHL$ ; == 0
+ .global DHL_gChannelsAvailable ; dsp_bios_cfg.h62
+
+;; module DPI ()
+ .global DPI$ ; == 0
+
+;; module MSGQ (USEMSGQ)
+ .global MSGQ$ ; == 0
+ .global MSGQ_USEMSGQ ; dsp_bios_cfg.h62
+
+;; module HOOK (KNLID)
+ .global HOOK$ ; == 0
+ .global HOOK_KNLID ; dsp_bios_cfg.h62
+
+;; MODULE CONFIGURATION
+
+;; ======== GBL_config ========
+ .asg 00H, _ROM
+ .asg 00H, _PROCID
+ .asg 04e20H, _CLKIN
+ .asg 036ee8H, _FREQ
+ .asg 03eH, _DSPTYPE
+ .asg 01a39H, _DSPSUBTYPE
+ .asg 01770H, _CLKTYPE
+ .asg 00H, _BIGENDIAN
+ .asg 01H, _USERINIT
+ .asg _GBL_setPLLto225MHz, _USERINITFXN
+ .asg 01H, _ENABLEINST
+ .asg 00H, _CACHE
+ .asg 01H, _L2CONFIGURE
+ .asg 00H, _L2MODE
+ .asg 00H, _L2PRIORITY
+ .asg 01H, _L2MARMASK
+ .asg 00H, _SUPPORTCSL
+ .asg 0dbefH, _TRCMASKVALUE
+ .asg 01H, _CALLCSLCFGINIT
+ .asg 00H, _C641XL2PRIORITY
+ .asg 00H, _L2MARMASK1
+ .asg 00H, _L2MARMASK2
+ .asg 00H, _L2MARMASK3
+ .asg 00H, _L2MARMASK4
+ .asg 00H, _L2MARMASK5
+ .asg 00H, _L2CONFIGALLOC
+ .asg 02226H, _L2ALLOC
+ GBL_config _ROM, _PROCID, _CLKIN, _FREQ, _DSPTYPE, _DSPSUBTYPE, _CLKTYPE, _BIGENDIAN, _USERINIT, _USERINITFXN, _ENABLEINST, _CACHE, _L2CONFIGURE, _L2MODE, _L2PRIORITY, _L2MARMASK, _SUPPORTCSL, _TRCMASKVALUE, _CALLCSLCFGINIT, _C641XL2PRIORITY, _L2MARMASK1, _L2MARMASK2, _L2MARMASK3, _L2MARMASK4, _L2MARMASK5, _L2CONFIGALLOC, _L2ALLOC
+
+;; ======== MEM_config ========
+ .asg 00H, _gNumHeap
+ .asg MEM_NULL, _SEGZERO
+ .asg MEM_NULL, _MALLOCSEG
+ .asg 00H, _USEMPC
+ MEM_config _gNumHeap, _SEGZERO, _MALLOCSEG, _USEMPC
+
+;; ======== OBJ_config ========
+ OBJ_config
+
+;; ======== BUF_config ========
+ .asg 01H, _ENABLED
+ BUF_config _ENABLED
+
+;; ======== POOL_config ========
+ .asg 00H, _USEPOOL
+ POOL_config _USEPOOL
+
+;; ======== CLK_config ========
+ .asg 04000H, _INTBIT
+ .asg 01940000H, _REGS
+ .asg 00H, _TIMERNUM
+ .asg 01H, _USETIMER
+ .asg 03e8H, _MICROSECS
+ .asg 020H, _TCR
+ .asg 00H, _TDDR
+ .asg 00H, _TDDRHIGH
+ .asg 0dbbaH, _PRD
+ .asg 00H, _PRDHIGH
+ .asg 0dbbaH, _COUNTSPMS
+ .asg 00H, _COUNTSPMSHIGH
+ .asg CLK_F_getshtime, _TIMEFXN
+ .asg HWI_F_dispatch, _HOOKFXN
+ .asg 01H, _CALDIV
+ .asg 04H, _CALMULT
+ .asg 01H, _HTIMEDIV
+ .asg 04H, _HTIMEMULT
+ .asg 01H, _LTIMEDIV
+ .asg 036ee8H, _LTIMEMULT
+ .asg 0dbbaH, _HTIMEPERLTIME
+ CLK_config _INTBIT, _REGS, _TIMERNUM, _USETIMER, _MICROSECS, _TCR, _TDDR, _TDDRHIGH, _PRD, _PRDHIGH, _COUNTSPMS, _COUNTSPMSHIGH, _TIMEFXN, _HOOKFXN, _CALDIV, _CALMULT, _HTIMEDIV, _HTIMEMULT, _LTIMEDIV, _LTIMEMULT, _HTIMEPERLTIME
+
+;; ======== PRD_config ========
+ .asg 04000H, _SCALAR
+ .asg _KNL_tick, _THOOKFXN
+ PRD_config _SCALAR, _THOOKFXN
+
+;; ======== RTDX_config ========
+ .asg 01H, _USERTDX
+ .asg 00H, _USERTEXECUTION
+ .asg "JTAG", _RTDXTYPE
+ .asg IRAM, _DATAMEMSEG
+ .asg 0408H, _BUFMEMSIZE
+ RTDX_config _USERTDX, _USERTEXECUTION, _RTDXTYPE, _DATAMEMSEG, _BUFMEMSIZE
+
+;; ======== HST_config ========
+ .asg 01H, _RTDX
+ .asg 00H, _DSM
+ .asg 00H, _NONE
+ .asg 040H, _MAXFRAMESET
+ .asg 0ffH, _MAXFRAMEALLOWED
+ .asg IRAM, _DSMBUFSEG
+ .asg 0400H, _DSMMEMSIZE
+ HST_config _RTDX, _DSM, _NONE, _MAXFRAMESET, _MAXFRAMEALLOWED, _DSMBUFSEG, _DSMMEMSIZE
+
+;; ======== HWI_config ========
+ .asg 01H, _ZEROTAB
+ .asg 00H, _GENERATE_RESET_VEC
+ .asg 00H, _POLARITYMASK
+ .asg 0310718aeH, _INTRMULTLOW
+ .asg 082039a3H, _INTRMULTHIGH
+ .asg 04018H, _CFGDISPATCHED
+ HWI_config _ZEROTAB, _GENERATE_RESET_VEC, _POLARITYMASK, _INTRMULTLOW, _INTRMULTHIGH, _CFGDISPATCHED
+
+;; ======== SWI_config ========
+ .asg GBL_NULL, _EHOOKFXN
+ .asg GBL_NULL, _IHOOKFXN
+ .asg SWI_F_exec, _EXECFXN
+ .asg SWI_F_run, _RUNFXN
+ SWI_config _EHOOKFXN, _IHOOKFXN, _EXECFXN, _RUNFXN
+
+;; ======== TSK_config ========
+ .asg 0400H, _STACKSIZE
+ .asg MEM_NULL, _STACKSEG
+ .asg 01H, _PRIORITY
+ .asg _FXN_F_nop, _VCREATEFXN
+ .asg _FXN_F_nop, _VDELETEFXN
+ .asg _FXN_F_nop, _VEXITFXN
+ .asg 00H, _SWITCHFXN
+ .asg 00H, _READYFXN
+ .asg 00H, _NUM_HOOKS
+ TSK_config _STACKSIZE, _STACKSEG, _PRIORITY, _VCREATEFXN, _VDELETEFXN, _VEXITFXN, _SWITCHFXN, _READYFXN, _NUM_HOOKS
+
+;; ======== IDL_config ========
+ .asg 01H, _USECLKIDLTIME
+ .asg IDL_F_stub, _CALIBRFXN
+ .asg 06H, _CALIBRERROR
+ IDL_config _USECLKIDLTIME, _CALIBRFXN, _CALIBRERROR
+
+;; ======== ISRC_config ========
+ ISRC_config
+
+;; ======== LOG_config ========
+ .asg 01H, _ENABLED
+ LOG_config _ENABLED
+
+;; ======== PIP_config ========
+ .asg 02H, _gNumEmbed
+ .asg 00H, _gNextId
+ .asg 064H, _OBJSIZE
+ PIP_config _gNumEmbed, _gNextId, _OBJSIZE
+
+;; ======== SEM_config ========
+ SEM_config
+
+;; ======== MBX_config ========
+ MBX_config
+
+;; ======== QUE_config ========
+ QUE_config
+
+;; ======== LCK_config ========
+ LCK_config
+
+;; ======== STS_config ========
+ STS_config
+
+;; ======== SYS_config ========
+ .asg _UTL_doAbort, _ABORTFXN
+ .asg _UTL_doError, _ERRORFXN
+ .asg _UTL_halt, _EXITFXN
+ .asg _UTL_doPutc, _PUTCFXN
+ SYS_config _ABORTFXN, _ERRORFXN, _EXITFXN, _PUTCFXN
+
+;; ======== SIO_config ========
+ SIO_config
+
+;; ======== GIO_config ========
+ .asg _FXN_F_nop, _CREATEFXN
+ .asg _FXN_F_nop, _DELETEFXN
+ .asg _FXN_F_nop, _PENDFXN
+ .asg _FXN_F_nop, _POSTFXN
+ GIO_config _CREATEFXN, _DELETEFXN, _PENDFXN, _POSTFXN
+
+;; ======== DEV_config ========
+ DEV_config
+
+;; ======== UDEV_config ========
+ UDEV_config
+
+;; ======== DIO_config ========
+ .asg 00H, _STATIC
+ .asg 00H, _NUMTSKBASE
+ .asg 00H, _NUMSWIBASE
+ DIO_config _STATIC, _NUMTSKBASE, _NUMSWIBASE
+
+;; ======== DGN_config ========
+ DGN_config
+
+;; ======== DHL_config ========
+ .asg 00H, _gChannelsAvailable
+ DHL_config _gChannelsAvailable
+
+;; ======== DPI_config ========
+ DPI_config
+
+;; ======== MSGQ_config ========
+ .asg 00H, _USEMSGQ
+ MSGQ_config _USEMSGQ
+
+;; ======== HOOK_config ========
+ .asg 00H, _KNLID
+ HOOK_config _KNLID
+
+;; ======== MEM_Obj SDRAM ========
+;; This object defines 8MB for the DSP's off-chip memory
+;;
+;; MEM_Obj SDRAM (len, iAllocHeap, iSegZero, iHeapId)
+ .global SDRAM
+ .asg 0800000H, _len
+ .asg 00H, _iAllocHeap
+ .asg MEM_NULL, _iSegZero
+ .asg segment_name, _iHeapId
+ MEM_Obj 1, SDRAM, 0, _len, _iAllocHeap, _iSegZero, _iHeapId
+
+;; ======== MEM_Obj IRAM ========
+;; Internal L2 memory
+;;
+;; MEM_Obj IRAM (len, iAllocHeap, iSegZero, iHeapId)
+ .global IRAM
+ .asg 040000H, _len
+ .asg 00H, _iAllocHeap
+ .asg MEM_NULL, _iSegZero
+ .asg segment_name, _iHeapId
+ MEM_Obj 1, IRAM, 0, _len, _iAllocHeap, _iSegZero, _iHeapId
+
+;; ======== CLK_Obj PRD_clock ========
+;; This clock function calls PRD_tick from within the on-chip timer ISR
+;;
+;; CLK_Obj PRD_clock (function)
+ .global PRD_clock
+ .asg PRD_F_tick, _function
+ CLK_Obj 1, PRD_clock, 0, _function
+
+;; ======== HST_Obj RTA_fromHost ========
+;; Used to access LOG and STS data
+;;
+;; HST_Obj RTA_fromHost (mode, buf, framesize, numframes, stsflg, notify, arg0, arg1, lnk, bufFrameAlign)
+ .global RTA_fromHost
+ .asg "input", _mode
+ .asg "<NULL>", _buf
+ .asg 04H, _framesize
+ .asg 01H, _numframes
+ .asg 00H, _stsflg
+ .asg _FXN_F_nop, _notify
+ .asg 00H, _arg0
+ .asg 00H, _arg1
+ .asg "RTDX", _lnk
+ .asg 04H, _bufFrameAlign
+ HST_Obj 1, RTA_fromHost, 1, _mode, _buf, _framesize, _numframes, _stsflg, _notify, _arg0, _arg1, _lnk, _bufFrameAlign
+
+;; ======== HST_Obj RTA_toHost ========
+;; Used to access LOG and STS data
+;;
+;; HST_Obj RTA_toHost (mode, buf, framesize, numframes, stsflg, notify, arg0, arg1, lnk, bufFrameAlign)
+ .global RTA_toHost
+ .asg "output", _mode
+ .asg "<NULL>", _buf
+ .asg 040H, _framesize
+ .asg 01H, _numframes
+ .asg 00H, _stsflg
+ .asg _FXN_F_nop, _notify
+ .asg 00H, _arg0
+ .asg 00H, _arg1
+ .asg "RTDX", _lnk
+ .asg 04H, _bufFrameAlign
+ HST_Obj 1, RTA_toHost, 0, _mode, _buf, _framesize, _numframes, _stsflg, _notify, _arg0, _arg1, _lnk, _bufFrameAlign
+
+;; ======== HWI_Obj HWI_RESET ========
+;; defines function for the RESET ISR
+;;
+;; HWI_Obj HWI_RESET (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_RESET
+ .asg _c_int00, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 01H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_RESET, 0, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_NMI ========
+;; defines function for the NMI ISR
+;;
+;; HWI_Obj HWI_NMI (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_NMI
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 02H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_NMI, 1, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_RESERVED0 ========
+;; RESERVED for RTDX
+;;
+;; HWI_Obj HWI_RESERVED0 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_RESERVED0
+ .asg RESERVED, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "RTDX", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 04H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_RESERVED0, 2, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_RESERVED1 ========
+;; RESERVED for RTDX
+;;
+;; HWI_Obj HWI_RESERVED1 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_RESERVED1
+ .asg _RTDX_Poll, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "RTDX", _client
+ .asg 01H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 08H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_RESERVED1, 3, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT4 ========
+;; defines the INT4 Interrupt
+;;
+;; HWI_Obj HWI_INT4 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT4
+ .asg _ISR_AIC, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 01H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 010H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT4, 4, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT5 ========
+;; defines the INT5 Interrupt
+;;
+;; HWI_Obj HWI_INT5 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT5
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 020H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT5, 5, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT6 ========
+;; defines the INT6 Interrupt
+;;
+;; HWI_Obj HWI_INT6 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT6
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 040H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT6, 6, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT7 ========
+;; defines the INT7 Interrupt
+;;
+;; HWI_Obj HWI_INT7 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT7
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 080H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT7, 7, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT8 ========
+;; defines the INT8 Interrupt
+;;
+;; HWI_Obj HWI_INT8 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT8
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 0100H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT8, 8, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT9 ========
+;; defines the INT9 Interrupt
+;;
+;; HWI_Obj HWI_INT9 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT9
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 0200H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT9, 9, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT10 ========
+;; defines the INT10 Interrupt
+;;
+;; HWI_Obj HWI_INT10 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT10
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 0400H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT10, 10, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT11 ========
+;; defines the INT11 Interrupt
+;;
+;; HWI_Obj HWI_INT11 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT11
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 0800H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT11, 11, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT12 ========
+;; defines the INT12 Interrupt
+;;
+;; HWI_Obj HWI_INT12 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT12
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 01000H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT12, 12, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT13 ========
+;; defines the INT13 Interrupt
+;;
+;; HWI_Obj HWI_INT13 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT13
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 02000H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT13, 13, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT14 ========
+;; defines the INT14 Interrupt
+;;
+;; HWI_Obj HWI_INT14 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT14
+ .asg CLK_F_isr, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "CLK", _client
+ .asg 01H, _iUseDispatcher
+ .asg CLK_A_TABBEG, _iArg
+ .asg 04000H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT14, 14, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT15 ========
+;; defines the INT15 Interrupt
+;;
+;; HWI_Obj HWI_INT15 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT15
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 08000H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT15, 15, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== SWI_Obj KNL_swi ========
+;; This Software Interrupt calls the TSK scheduler
+;;
+;; SWI_Obj KNL_swi (function, pri, mailbox, arg0, arg1, dorta, Order, filter, maxformat, sumformat, avgformat, filtmaxmult, filtsummult, unittype)
+ .global KNL_swi
+ .asg _KNL_run, _function
+ .asg 00H, _pri
+ .asg 00H, _mailbox
+ .asg 00H, _arg0
+ .asg 00H, _arg1
+ .asg 01H, _dorta
+ .asg 00H, _Order
+ .asg 02H, _filter
+ .asg "%g inst", _maxformat
+ .asg "%g inst", _sumformat
+ .asg "%.2f inst", _avgformat
+ .asg 01H, _filtmaxmult
+ .asg 01H, _filtsummult
+ .asg 00H, _unittype
+ SWI_Obj 1, KNL_swi, 0, _function, _pri, _mailbox, _arg0, _arg1, _dorta, _Order, _filter, _maxformat, _sumformat, _avgformat, _filtmaxmult, _filtsummult, _unittype
+
+;; ======== TSK_Obj TSK_idle ========
+;; This is the idle task; it only runs when no other task is ready
+;;
+;; TSK_Obj TSK_idle (iFXN, iARG0, iARG1, iARG2, iARG3, iARG4, iARG5, iARG6, iARG7, iAUTOSTK, iMANSTK, iSTKSZ, iSTKSEG, iPRI, iENV, iEXITFLAG, iUSETSKNAME, iSTATREG, Order, filter, maxformat, sumformat, avgformat, filtmaxmult, filtsummult, unittype)
+ .global TSK_idle
+ .asg IDL_F_loop, _iFXN
+ .asg 00H, _iARG0
+ .asg 00H, _iARG1
+ .asg 00H, _iARG2
+ .asg 00H, _iARG3
+ .asg 00H, _iARG4
+ .asg 00H, _iARG5
+ .asg 00H, _iARG6
+ .asg 00H, _iARG7
+ .asg 01H, _iAUTOSTK
+ .asg null, _iMANSTK
+ .asg 0400H, _iSTKSZ
+ .asg IRAM, _iSTKSEG
+ .asg 00H, _iPRI
+ .asg 00H, _iENV
+ .asg 01H, _iEXITFLAG
+ .asg 00H, _iUSETSKNAME
+ .asg 00H, _iSTATREG
+ .asg 00H, _Order
+ .asg 02H, _filter
+ .asg "%g inst", _maxformat
+ .asg "%g inst", _sumformat
+ .asg "%.2f inst", _avgformat
+ .asg 01H, _filtmaxmult
+ .asg 01H, _filtsummult
+ .asg 00H, _unittype
+ TSK_Obj 1, TSK_idle, 0, _iFXN, _iARG0, _iARG1, _iARG2, _iARG3, _iARG4, _iARG5, _iARG6, _iARG7, _iAUTOSTK, _iMANSTK, _iSTKSZ, _iSTKSEG, _iPRI, _iENV, _iEXITFLAG, _iUSETSKNAME, _iSTATREG, _Order, _filter, _maxformat, _sumformat, _avgformat, _filtmaxmult, _filtsummult, _unittype
+
+;; ======== IDL_Obj IDL_cpuLoad ========
+;; This object is required by the system to acquire CPU load data
+;;
+;; IDL_Obj IDL_cpuLoad (function, calibration)
+ .global IDL_cpuLoad
+ .asg IDL_F_busy, _function
+ .asg 01H, _calibration
+ IDL_Obj 1, IDL_cpuLoad, 0, _function, _calibration
+
+;; ======== IDL_Obj LNK_dataPump ========
+;; This object cannot be deleted
+;;
+;; IDL_Obj LNK_dataPump (function, calibration)
+ .global LNK_dataPump
+ .asg LNK_F_dataPump, _function
+ .asg 01H, _calibration
+ IDL_Obj 1, LNK_dataPump, 0, _function, _calibration
+
+;; ======== IDL_Obj RTA_dispatcher ========
+;; This object cannot be deleted
+;;
+;; IDL_Obj RTA_dispatcher (function, calibration)
+ .global RTA_dispatcher
+ .asg RTA_F_dispatch, _function
+ .asg 01H, _calibration
+ IDL_Obj 1, RTA_dispatcher, 0, _function, _calibration
+
+;; ======== LOG_Obj LOG_system ========
+;; This object is required by the system to accumulate execution trace information
+;;
+;; LOG_Obj LOG_system (bufseg, buflen, logtype, iType, iFormat)
+ .global LOG_system
+ .asg IRAM, _bufseg
+ .asg 040H, _buflen
+ .asg "circular", _logtype
+ .asg "system", _iType
+ .asg "0x%x, 0x%x, 0x%x", _iFormat
+ LOG_Obj 1, LOG_system, 0, _bufseg, _buflen, _logtype, _iType, _iFormat
+
+;; ======== STS_Obj IDL_busyObj ========
+;; This object is required by the system to accumulate CPU load statistics
+;;
+;; STS_Obj IDL_busyObj (prev, filter, maxformat, sumformat, avgformat, op, uType, iA, iB, iC, prevlow)
+ .global IDL_busyObj
+ .asg 00H, _prev
+ .asg 01H, _filter
+ .asg "%g", _maxformat
+ .asg "%g", _sumformat
+ .asg "%.2f", _avgformat
+ .asg 00H, _op
+ .asg 02H, _uType
+ .asg 01H, _iA
+ .asg 00H, _iB
+ .asg 01H, _iC
+ .asg 00H, _prevlow
+ STS_Obj 1, IDL_busyObj, 0, _prev, _filter, _maxformat, _sumformat, _avgformat, _op, _uType, _iA, _iB, _iC, _prevlow
+
+;; MODULE INITIALIZATION
+ .sect ".sysinit"
+ .global BIOS_init, _BIOS_init
+BIOS_init:
+_BIOS_init:
+ GBL_preamble
+ GBL_init
+ SEM_init
+ MEM_init
+ OBJ_init
+ BUF_init
+ POOL_init
+ CLK_init
+ PRD_init
+ RTDX_init
+ IDL_init
+ LCK_init
+ LOG_init
+ MBX_init
+ PIP_init
+ QUE_init
+ STS_init
+ SYS_init
+ HWI_init
+ HST_init
+ DEV_init
+ UDEV_init
+ DIO_init
+ DGN_init
+ DHL_init
+ DPI_init
+ SIO_init
+ GIO_init
+ MSGQ_init
+ SWI_init
+ HOOK_init
+ TSK_init
+ ISRC_init
+ GBL_postamble
+
+;; MODULE STARTUP
+ .sect ".sysinit"
+ .global BIOS_start, _BIOS_start
+BIOS_start:
+_BIOS_start:
+ GBL_preamble
+ GBL_startup
+ SEM_startup
+ MEM_startup
+ OBJ_startup
+ BUF_startup
+ POOL_startup
+ CLK_startup
+ PRD_startup
+ RTDX_startup
+ IDL_startup
+ LCK_startup
+ LOG_startup
+ MBX_startup
+ PIP_startup
+ QUE_startup
+ STS_startup
+ SYS_startup
+ HWI_startup
+ HST_startup
+ DEV_startup
+ UDEV_startup
+ DIO_startup
+ DGN_startup
+ DHL_startup
+ DPI_startup
+ SIO_startup
+ GIO_startup
+ MSGQ_startup
+ SWI_startup
+ HOOK_startup
+ TSK_startup
+ ISRC_startup
+ GBL_postamble
+
+;; EPILOGUE
+ GBL_end
+ MEM_end
+ OBJ_end
+ BUF_end
+ POOL_end
+ CLK_end
+ PRD_end
+ RTDX_end
+ HST_end
+ HWI_end
+ SWI_end
+ TSK_end
+ IDL_end
+ ISRC_end
+ LOG_end
+ PIP_end
+ SEM_end
+ MBX_end
+ QUE_end
+ LCK_end
+ STS_end
+ SYS_end
+ SIO_end
+ GIO_end
+ DEV_end
+ UDEV_end
+ DIO_end
+ DGN_end
+ DHL_end
+ DPI_end
+ MSGQ_end
+ HOOK_end
+
+ .copy confend.s62
diff --git a/Project/RTDSP/.gconf/RTDSP/lab3/RTDSP/dsp_bios_cfg_c.c b/Project/RTDSP/.gconf/RTDSP/lab3/RTDSP/dsp_bios_cfg_c.c
new file mode 100644
index 0000000..f13e3eb
--- /dev/null
+++ b/Project/RTDSP/.gconf/RTDSP/lab3/RTDSP/dsp_bios_cfg_c.c
@@ -0,0 +1,11 @@
+/* Do *not* directly modify this file. It was */
+/* generated by the Configuration Tool; any */
+/* changes risk being overwritten. */
+
+/* INPUT dsp_bios_.cdb */
+
+/* Include Header File */
+#include "dsp_bios_cfg.h"
+
+/* Config Structures */
+/* Handles */
diff --git a/Project/RTDSP/.gconf/RTDSP/lab4/RTDSP/dsp_bios_.cdb b/Project/RTDSP/.gconf/RTDSP/lab4/RTDSP/dsp_bios_.cdb
new file mode 100644
index 0000000..584f375
--- /dev/null
+++ b/Project/RTDSP/.gconf/RTDSP/lab4/RTDSP/dsp_bios_.cdb
@@ -0,0 +1,8762 @@
+//!
+//# c6x1x.cdb 5.25.25
+
+object CACHE_L2 :: MEM {
+ param iComment :: "Generated by Cache Settings in GBL"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param base :: 262144
+ param len :: 0
+ param iAllocHeap :: 0
+ param iHeapSize :: 32768
+ param iUserHeapId :: 0
+ param iHeapId :: @segment_name
+ param iReqHeapCount :: 0
+ param space :: "Cache"
+ param dynamicLoading :: 0
+ param iIsModifiable :: 1
+}
+
+class Module {
+ prop Visible :: 1
+ prop Writable :: 1
+ prop IsConfMod :: (if self.gNumOf > 0 {1} else {0})
+ prop NoGen :: 0
+ prop IsDirty :: ($a = self.gDirty, self.gDirty = 0, $a)
+ prop dataSize :: 0
+ prop error :: # ("Error: ", self.name, $1)
+ prop warning :: ("Warning ...", self.name, $1)
+ prop minBit :: ($a = 0, while (($1 & (1 << $a)) && $a < 32) {++$a}, $a)
+ prop name :: ("<unnamed module>")
+ prop numBit :: ($a = $b = 0, while ($a < 32) {if ($1 & (1 << $a)) {++$b} }, $b)
+}
+
+class ObjectMgr {
+ isa Module
+ prop CanCreate :: (if (self.gNumOf < self.maxObjs()) {self.localCanCreate()} else {self.warning("Maximum number of objects already created")})
+ prop CanDelete :: (if (self.iDelMsg == "ok" || (self.iDelUser == self.gUser)) {if (self.iId >= 0 && self.iIsUsed) {self.localCanDelete()} else {self.warning("Object already deleted")}} else {self.warning(self.iDelMsg)})
+ prop Create :: ((self.gUser = (if $0 > 0 {$1} else {"USER"})), if (($a = self.CanCreate()) == "ok") {if (($a = self.localCreate()) == "ok") {if (self.iIsUsed == 0) {self.mkId(if $0 > 1 {$2} else {-1}), self.iIsUsed = 1, GlobalStatus.gDirty = 1, self.gDirty = 1} } } , (self.gUser = "USER"), $a)
+ prop Delete :: ((self.gUser = (if $0 > 0 {$1} else {"USER"})), if (($a = self.CanDelete()) == "ok") {if (($a = self.localDelete()) == "ok") {self.rmId(self.iId), self.iIsUsed = 0, GlobalStatus.gDirty = 1, self.gDirty = 1} } , (self.gUser = "USER"), $a)
+ prop GetSetOf :: (self.gSetOf)
+ prop GetNumOf :: (self.gNumOf)
+ prop GetObjId :: (self.iId)
+ prop GetPriority :: (self.iId)
+ prop SetPriority :: (self.iId = $1)
+ prop IsConfObj :: (self.iIsUsed)
+ prop localCanCreate :: ("ok")
+ prop localCanDelete :: ("ok")
+ prop localCreate :: ("ok")
+ prop localDelete :: ("ok")
+ prop localInit :: (0)
+ prop isFinite :: (if self.maxObjs() <= GBL.DSPWORDSIZE {1} else {0})
+ prop mkId :: (if (self.isFinite()) {if ($1 < 0) {self.iId = self.minBit(self.gSetOf)} else {self.iId = $1}, (self.gSetOf |= (1 << self.iId))} else {self.iId = 0}, ++self.gNumOf, self.iId)
+ prop rmId :: (if (self.isFinite()) {self.gSetOf &= ~(1 << self.iId)} , --self.gNumOf)
+ prop maxObjs :: (GBL.DSPWORDSIZE)
+ prop isDriver :: (0)
+ prop SortChildHierView :: (1)
+}
+
+type GlobalStatus {
+ prop NoGen :: 1
+ prop Visible :: 0
+ prop Writable :: 0
+ prop Label :: "Current Configuration Status"
+ prop GlobalIcon :: 101
+ prop InstanceIcon :: 101
+ prop GlobalHelpTopic :: (100)
+ prop GlobalPropertyPage :: ("{9D3AD931-847B-11d0-A621-0000C070F3E9}")
+ prop Status :: (# self.SeedVersion, # self.MinStackSize, # self.SysDataSize)
+ global GENLIB :: "bioscfg.dll" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Generation Library"
+ prop NoGen :: 1
+ prop Visible :: 0
+ prop Writable :: 1
+ }
+ global DATE :: "Thu Jan 25 14:01:53 2018" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global GCONFVERS :: "@(#)*** xdcutils-e03" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global SysDataSize :: = ($a = 0, scan ($i; nil) {if ($i.dataSize() != nil) {$a = $a + $i.dataSize()} }, $a) {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: "Estimated Data Size: %d"
+ prop StatusField :: 1
+ prop NoGen :: 1
+ }
+ global MinStackSize :: = ($a = ((2 * (2)) * 4), $a = $a + ((2 * (5)) * 4), $a = $a + ((0) * 4), $b = 0, scan ($i; CLK) {if ($i.IsConfObj()) {$b |= 1} }, $a = $a + (((2 * (2)) * 4) * $b), $b = 0, scan ($i; HWI) {if ($i.IsConfObj()) {if ($i != HWI_NMI && $i != HWI_RESET) {if (($i.function != @HWI_unused) && ($i.function != @RESERVED)) {$b++} } } }, $a = $a + (((12 + 14 + 2) * 4) * $b), $b = 0, scan ($i; SWI) {if ($i.IsConfObj()) {if ($i.priority > $b) {$b = $i.priority} } }, $a = $a + ((((2 * 2) + 18 + (2 * 4)) * 4) * $b), $b = 0, scan ($i; PRD) {if ($i.IsConfObj()) {$b |= 1} }, $a = $a + (((2 * (3)) * 4) * $b), $a) {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: "Est. Min. Stack Size (MAUs): %d"
+ prop StatusField :: 1
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global ConfigWarnings :: = (if (self.MinStackSize > MEM.STACKSIZE) {"Application stack size is too small; decrease the number of SWI priorities or increase the stack in MEM."} else {"None"}) {
+ prop Label :: "Warnings"
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global SeedVersion :: = "@(#)*** cuda-u25x" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+class EModule {
+ isa Module
+ prop IsXMod :: (1)
+ prop Vendor :: ("")
+ prop Version :: ("")
+}
+
+class EObjectMgr {
+ isa ObjectMgr
+ prop IsXMod :: (1)
+ prop Vendor :: ("")
+ prop Version :: ("")
+}
+
+class ModuleFolder {
+ isa Module
+ prop NoGen :: 1
+}
+
+type SYSTEM {
+ isa ModuleFolder
+ prop Label :: "System"
+ prop GlobalIcon :: 151
+ prop GlobalHelpTopic :: (500)
+ prop GlobalPropertyPage :: ("{B936FB91-52A5-11d4-947C-0050048381B7}")
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+type INS {
+ isa ModuleFolder
+ prop Label :: "Instrumentation"
+ prop GlobalIcon :: 152
+ prop GlobalHelpTopic :: (501)
+ prop GlobalPropertyPage :: ("{053C8F90-52A6-11d4-947C-0050048381B7}")
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+type SCH {
+ isa ModuleFolder
+ prop Label :: "Scheduling"
+ prop GlobalIcon :: 153
+ prop GlobalHelpTopic :: (502)
+ prop GlobalPropertyPage :: ("{053C8F91-52A6-11d4-947C-0050048381B7}")
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+type SYN {
+ isa ModuleFolder
+ prop Label :: "Synchronization"
+ prop GlobalIcon :: 154
+ prop GlobalHelpTopic :: (503)
+ prop GlobalPropertyPage :: ("{053C8F92-52A6-11d4-947C-0050048381B7}")
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+type IOF {
+ isa ModuleFolder
+ prop Label :: "Input/Output"
+ prop GlobalIcon :: 155
+ prop GlobalHelpTopic :: (504)
+ prop GlobalPropertyPage :: ("{053C8F93-52A6-11d4-947C-0050048381B7}")
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+type SIODRIVER {
+ isa ModuleFolder
+ prop Label :: "Device Drivers"
+ prop IsContainedIn :: IOF
+ prop GlobalIcon :: 127
+ prop GlobalHelpTopic :: (505)
+ prop GlobalPropertyPage :: ("{A2BCEC70-5365-11d4-947C-0050048381B7}")
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+type PROJ {
+ isa ObjectMgr
+ prop name :: "PROJ"
+ prop maxObjs :: 0
+ prop Label :: "Project Manager"
+ prop GlobalIcon :: 121
+ prop InstanceIcon :: 122
+ prop InstanceHelpTopic :: (201)
+ prop GlobalHelpTopic :: (101)
+ prop InstancePropertyPage :: ("{AC3C77D1-890B-11d0-A621-0000C070F3E9}")
+ prop GlobalPropertyPage :: ("{AC3C77D2-890B-11d0-A621-0000C070F3E9}")
+ prop NoGen :: 1
+ prop Visible :: 0
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global ALIASALL :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Generate C Names for All Objects"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global IGNOREWARNING :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Ignore Warnings"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global LIBPATH :: ".;../../lib;$(BIOSROOT)/lib" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Library Search Path"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global INCPATH :: ".;../../include;$(BIOSROOT)/include" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Include File Search Path"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global OBJDIR :: "." {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Object file directory"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global EXTEXE :: "out" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Executable File Extension"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global EXTLIB :: "lib" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Library File Extension"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global EXTASM :: "asm" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Assembly Language Source File Extension"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global EXTOBJ :: "obj" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Object File Extension"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst projType :: "Executable" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "Executable,Library"
+ prop Label :: "Target Type"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst projName :: "$(PROG)" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Target File Name"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst useRpt :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Use RPT Instruction"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst minimizeSpace :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Optimize for Space over Time"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst tmx :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Avoid TMX Silicon Bugs"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+}
+
+type PROJ_FILE {
+ isa ObjectMgr
+ prop Visible :: 0
+ prop Label :: "Project File Manager"
+ prop InstanceHelpTopic :: (BIOSHELP_PROJ_FILE_INSTANCE)
+ prop GlobalHelpTopic :: (BIOSHELP_PROJ_FILE_GLOBAL)
+ prop InstancePropertyPage :: ("{AC3C77D3-890B-11d0-A621-0000C070F3E9}")
+ prop GlobalPropertyPage :: ("{AC3C77D4-890B-11d0-A621-0000C070F3E9}")
+ prop NoGen :: 1
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst elemType :: "C Source" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "C Source,ASM Source,Library,Linker Command File"
+ prop Label :: "Input File Type"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst elemName :: "$(PROG)" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Input File Name"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst optLevel :: "register+local+global" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "register,register+local,register+local+global,register+local+global+file"
+ prop Label :: "Optimization Level"
+ prop Visible :: 0
+ prop Writable :: if self.elemType == "C Source" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst inline :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Inline Expansion"
+ prop Visible :: 0
+ prop Writable :: if self.elemType == "C Source" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst definitions :: "" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Additional Definitions"
+ prop Visible :: 0
+ prop Writable :: if self.elemType == "C Source" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iParent :: 0 {
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+}
+
+type GBL {
+ isa Module
+ prop name :: "GBL"
+ prop Label :: "Global Settings"
+ prop IsContainedIn :: SYSTEM
+ prop cGen :: 0
+ prop GenLinkPrologue :: ("%10S\nSECTIONS {%4t\n.vers (COPY): {} /* version information */%0t\n}\n\n-priority\n--trampolines\n%25S%1S%22S-l%2S%23S%3S\n%24S%15S%4S%16S%18S%5S%6S%12S%7S%17S\0, _autoInitStr, _board, _librarySuffix, _devLibStr, _biosLibStr, _rtdxLibStr, _rtsLibStr, _librarySuffix, _compilerModel, _lnkCmdStr, _lnkCmdFile, _cslLibStr, _chipType, _librarySuffix, _chipStr, _sioLibStr, _mpcLibStr, _bios6xLibStr, _bios6xClkType, _instStr, _rtsNameStr, _romStr, _biosRomStr, _logLibStr, _SKLibStr")
+ prop poolStr :: (if (self.LINKWITHROM == 0) {""} else {if POOL.USEPOOL {""} else {"_POOL_config=0;\n"}})
+ prop msgqStr :: (if (self.LINKWITHROM == 0) {""} else {if MSGQ.USEMSGQ {""} else {"_MSGQ_config=0;\n"}})
+ prop GenLinkEpilogue :: ("%0t_GBL_CACHE = GBL_CACHE;\n%1S%2S\0, poolStr, msgqStr")
+ prop ConfigurationClass :: "{2779A121-92CC-11d1-A63D-0000C070F3E9}"
+ prop GlobalIcon :: 105
+ prop InstanceIcon :: 106
+ prop GlobalHelpTopic :: (103)
+ prop InstanceHelpTopic :: (103)
+ prop InstancePropertyPage :: ("{B7240DE4-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop GlobalPropertyPage :: ("{B7240DE5-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop localInit :: (RTA_toHost.Create("HST"), RTA_toHost.bufseg = HST.OBJMEMSEG, RTA_fromHost.Create("HST"), RTA_fromHost.bufseg = HST.OBJMEMSEG, RTA_dispatcher.Create("HST"), IDL_busyObj.Create("IDL"), IDL.USEIDLBUSYOBJ = 1, IDL_cpuLoad.Create("IDL"))
+ prop chipcall :: ("ok")
+ prop IsConfMod :: 1
+ prop ucompare :: ($e = "ok", $a = ($1 >> 31) & 0x00000001, $b = ($2 >> 31) & 0x00000001, $c = $1 & 0x7fffffff, $d = $2 & 0x7fffffff, if ($a > $b) {$e = "gt"} else {if ($a == $b) {if ($c > $d) {$e = "gt"} else {if ($c == $d) {$e = "eq"} else {$e = "lt"}}} else {$e = "lt"}}, $e)
+ prop L2Check :: (if (self.DSPSUBTYPE == 6211 || self.DSPSUBTYPE == 6711) {self.PCC = "mapped", if (self.C641XL2CONFIGURE == 1) {self.C641XL2CONFIGURE = 0, self.L2CONFIGALLOC = 0} , self.L2CacheSizeCheck()} else {if (self.DSPSUBTYPE == 6400) {self.PCC = "mapped", if (self.C621XL2CONFIGURE == 1) {self.C621XL2CONFIGURE = 0} , self.L2CacheSizeCheck()} else {if (self.C621XL2CONFIGURE == 1) {self.C621XL2CONFIGURE = 0, self.L2CacheSizeCheck()} else {if (self.C641XL2CONFIGURE == 1) {self.C641XL2CONFIGURE = 0, self.L2CONFIGALLOC = 0, self.L2CacheSizeCheck()} }}})
+ prop C621xL2CacheSizeCheck :: ($e = "ok", $a = CACHE_L2.base, $b = CACHE_L2.len, if (self.C621XL2CONFIGURE == 0) {CACHE_L2.Delete("MEM")} else {if (self.L2MODEOPTS == "SRAM") {CACHE_L2.base = CACHE_L2.base + CACHE_L2.len, CACHE_L2.len = 0x0, CACHE_L2.Delete("MEM")} else {if (self.L2MODEOPTS == "1-way cache") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x4000, CACHE_L2.len = 0x4000} else {if (self.L2MODEOPTS == "2-way cache") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x8000, CACHE_L2.len = 0x8000} else {if (self.L2MODEOPTS == "3-way cache") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0xc000, CACHE_L2.len = 0xc000} else {if (self.L2MODEOPTS == "4-way cache") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x10000, CACHE_L2.len = 0x10000} }}}}}, $e)
+ prop C641xL2CacheSizeCheck :: ($e = "ok", $a = CACHE_L2.base, $b = CACHE_L2.len, if (self.C641XL2CONFIGURE == 0) {CACHE_L2.Delete("MEM")} else {if (self.C641XL2MODEOPTS == "4-way cache (0k)") {CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x0, CACHE_L2.len = 0x0, CACHE_L2.Delete("MEM")} else {if (self.C641XL2MODEOPTS == "4-way cache (32k)") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x8000, CACHE_L2.len = 0x8000} else {if (self.C641XL2MODEOPTS == "4-way cache (64k)") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x10000, CACHE_L2.len = 0x10000} else {if (self.C641XL2MODEOPTS == "4-way cache (128k)") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x20000, CACHE_L2.len = 0x20000} else {if (self.C641XL2MODEOPTS == "4-way cache (256k)") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x40000, CACHE_L2.len = 0x40000} }}}}}, $e)
+ prop C64PL1PCacheSizeCheck :: ($e = "ok", if (self.C64PL2CONFIGURE == 0) {self.C64PL1PCFG = "32k", CACHE_L1P.Create("MEM"), CACHE_L1P.base = CACHE_L1P.base + CACHE_L1P.len - 0x8000, CACHE_L1P.len = 0x8000} else {if (self.C64PL1PCFG == "0k") {CACHE_L1P.base = CACHE_L1P.base + CACHE_L1P.len - 0x0, CACHE_L1P.len = 0x0, CACHE_L1P.Delete("MEM")} else {if (self.C64PL1PCFG == "4k") {CACHE_L1P.Create("MEM"), CACHE_L1P.base = CACHE_L1P.base + CACHE_L1P.len - 0x1000, CACHE_L1P.len = 0x1000} else {if (self.C64PL1PCFG == "8k") {CACHE_L1P.Create("MEM"), CACHE_L1P.base = CACHE_L1P.base + CACHE_L1P.len - 0x2000, CACHE_L1P.len = 0x2000} else {if (self.C64PL1PCFG == "16k") {CACHE_L1P.Create("MEM"), CACHE_L1P.base = CACHE_L1P.base + CACHE_L1P.len - 0x4000, CACHE_L1P.len = 0x4000} else {if (self.C64PL1PCFG == "32k") {CACHE_L1P.Create("MEM"), CACHE_L1P.base = CACHE_L1P.base + CACHE_L1P.len - 0x8000, CACHE_L1P.len = 0x8000} else {$e = self.error("Unknown cache size")}}}}}}, $e)
+ prop C64PL1DCacheSizeCheck :: ($e = "ok", if (self.C64PL2CONFIGURE == 0) {self.C64PL1DCFG = "32k", CACHE_L1D.Create("MEM"), CACHE_L1D.base = CACHE_L1D.base + CACHE_L1D.len - 0x8000, CACHE_L1D.len = 0x8000} else {if (self.C64PL1DCFG == "0k") {CACHE_L1D.base = CACHE_L1D.base + CACHE_L1D.len - 0x0, CACHE_L1D.len = 0x0, CACHE_L1D.Delete("MEM")} else {if (self.C64PL1DCFG == "4k") {CACHE_L1D.Create("MEM"), CACHE_L1D.base = CACHE_L1D.base + CACHE_L1D.len - 0x1000, CACHE_L1D.len = 0x1000} else {if (self.C64PL1DCFG == "8k") {CACHE_L1D.Create("MEM"), CACHE_L1D.base = CACHE_L1D.base + CACHE_L1D.len - 0x2000, CACHE_L1D.len = 0x2000} else {if (self.C64PL1DCFG == "16k") {CACHE_L1D.Create("MEM"), CACHE_L1D.base = CACHE_L1D.base + CACHE_L1D.len - 0x4000, CACHE_L1D.len = 0x4000} else {if (self.C64PL1DCFG == "32k") {CACHE_L1D.Create("MEM"), CACHE_L1D.base = CACHE_L1D.base + CACHE_L1D.len - 0x8000, CACHE_L1D.len = 0x8000} else {$e = self.error("Unknown cache size")}}}}}}, $e)
+ prop C64PL2CacheSizeCheck :: ($e = "ok", if (self.C64PL2CONFIGURE == 0) {CACHE_L2.Delete("MEM")} else {if (self.C64PL2MODEOPTS == "0k") {CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x0, CACHE_L2.len = 0x0, CACHE_L2.Delete("MEM")} else {if (self.C64PL2MODEOPTS == "32k") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x8000, CACHE_L2.len = 0x8000} else {if (self.C64PL2MODEOPTS == "64k") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x10000, CACHE_L2.len = 0x10000} else {if (self.C64PL2MODEOPTS == "128k") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x20000, CACHE_L2.len = 0x20000} else {if (self.C64PL2MODEOPTS == "256k") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x40000, CACHE_L2.len = 0x40000} else {if (self.C64PL2MODEOPTS == "512k") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x80000, CACHE_L2.len = 0x80000} else {if (self.C64PL2MODEOPTS == "1024k") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x100000, CACHE_L2.len = 0x100000} else {$e = self.error("Unknown cache size")}}}}}}}}, $e)
+ prop L2CacheSizeCheck :: ($e = "ok", scan ($i; MEM) {if ($i == CACHE_L2) {if self.C621XL2CONFIGURE {$e = self.C621xL2CacheSizeCheck()} else {if self.C641XL2CONFIGURE {$e = self.C641xL2CacheSizeCheck()} else {if self.DSPSUBTYPE == 6211 || self.DSPSUBTYPE == 6711 {$e = self.C621xL2CacheSizeCheck()} else {if self.DSPSUBTYPE == 6400 {$e = self.C641xL2CacheSizeCheck()} else {{CACHE_L2.base = 0x0, CACHE_L2.len = 0x0, CACHE_L2.Delete("MEM")}}}}}} }, $e)
+ prop setCPUClock :: ($e = "ok", if ($1 != self.CPUCLOCK) {$a = self.CPUCLOCK, self.CPUCLOCK = $1, if (GBL.CALLBACKOBJ != nil) {$e = GBL.CALLBACKOBJ.call()} , if ($e != "ok") {self.CPUCLOCK = $a, GBL.CALLBACKOBJ.call()} } , if ($e == "ok") {"ok"} else {self.error($e)})
+ prop setL2MODE :: (if (self.L2MODEOPTS == "SRAM") {0x0} else {if (self.L2MODEOPTS == "1-way cache") {0x1} else {if (self.L2MODEOPTS == "2-way cache") {0x2} else {if (self.L2MODEOPTS == "3-way cache") {0x3} else {0x7}}}})
+ prop setC641XL2MODE :: (if (self.C641XL2MODEOPTS == "4-way cache (0k)") {0x0} else {if (self.C641XL2MODEOPTS == "4-way cache (32k)") {0x1} else {if (self.C641XL2MODEOPTS == "4-way cache (64k)") {0x2} else {if (self.C641XL2MODEOPTS == "4-way cache (128k)") {0x3} else {0x7}}}})
+ prop _cint00Str :: "-u_c_int00 %24t/* link with alternate boot.obj */%0t\n"
+ prop _autoInitStr :: ""
+ prop _board :: (if (HST.RTDX == 1) {"lnkrtdx"} else {if (HST.DSM == 1) {"lnkdsm"} else {if (HST.EVM54 == 1) {"lnkevm54"} else {if (HST.BIOSLINK == 1) {"lnkbioslink"} else {"lnknone"}}}})
+ prop _dsptype :: GBL.DSPTYPE
+ prop _instStr :: if self.INSTRUMENTED {""} else {"_NONINST"}
+ prop _rtsNameStr :: (self.RTSLIB)
+ prop _biosLibStr :: "-lbios%20S%23S%8S %24t/* DSP/BIOS support */%0t\n"
+ prop _compilerModel :: if self.ENDIAN == "big" {"e"} else {""}
+ prop _librarySuffix :: (if (self.DSPSUBTYPE == 6700 || self.DSPSUBTYPE == 6711 || self.DSPSUBTYPE == 6712 || self.DSPSUBTYPE == 6713) {if (self.ENDIAN == "big") {".a67e"} else {".a67"}} else {if (self.DSPSUBTYPE == 6400) {if (self.ENDIAN == "big") {".a64e"} else {".a64"}} else {if (self.DSPSUBTYPE == 6499) {if (self.ENDIAN == "big") {".a64Pe"} else {".a64P"}} else {if (self.DSPSUBTYPE == 6799) {if (self.ENDIAN == "big") {".a67Pe"} else {".a67P"}} else {if ((self.DSPSUBTYPE == 6747) || (self.DSPSUBTYPE == 6748)) {if (self.ENDIAN == "big") {".a674e"} else {".a674"}} else {if (self.ENDIAN == "big") {".a62e"} else {".a62"}}}}}})
+ prop _rtdxLibStr :: if RTDX.USERTDX == 0 {""} else {if RTDX.RTDXTYPE == "JTAG" {"-lrtdx%9S.lib %24t/* RTDX support */%0t\n"} else {if RTDX.RTDXTYPE == "Simulator" {"-lrtdxsim%9S.lib %24t/* RTDX support */%0t\n"} else {"-lrtdxhs%9S.lib %24t/* RTDX support */%0t\n"}}}
+ prop _rtsLibStr :: (if self.SPECIFYRTSLIB {"-l%21S%24t/* C and C++ run-time library support */%0t\n"} else {if self.DSPSUBTYPE == 6700 || self.DSPSUBTYPE == 6711 || self.DSPSUBTYPE == 6712 || self.DSPSUBTYPE == 6713 {"-lrts6700%9S.lib%24t/* C and C++ run-time library support */%0t\n"} else {if self.DSPSUBTYPE == 6400 {"-lrts6400%9S.lib%24t/* C and C++ run-time library support */%0t\n"} else {if self.DSPSUBTYPE == 6799 {"-lrts67plus%9S.lib%24t/* C and C++ run-time library support */%0t\n"} else {if self.DSPSUBTYPE == 6499 {"-lrts64plus%9S.lib%24t/* C and C++ run-time library support */%0t\n"} else {if ((self.DSPSUBTYPE == 6747) || (self.DSPSUBTYPE == 6748)) {"-lrts6740%9S.lib%24t/* C and C++ run-time library support */%0t\n"} else {"-lrts6200%9S.lib%24t/* C and C++ run-time library support */%0t\n"}}}}}})
+ prop _bios6xClkType :: (if self.CLKTYPE == 6000 {"C6000"} else {if self.CLKTYPE == 700 {"DA700"} else {if (self.CLKTYPE == 420 || self.CLKTYPE == 6424) {if self.USEIDMA0DISPATCHER {"DM420IDMA0"} else {"DM420"}} else {if self.CLKTYPE == 2430 {"2430"} else {if self.CLKTYPE == 6482 {"TCI6482"} else {if self.CLKTYPE == 6486 {"TCI6486"} else {if self.CLKTYPE == 6488 {"TCI6488"} else {if self.CLKTYPE == 442 {"DRA442"} else {if self.CLKTYPE == 3430 {"3430"} else {if self.CLKTYPE == 6467 {"DM6467"} else {if self.CLKTYPE == 761990 {"F761990"} else {""}}}}}}}}}}})
+ prop _bios6xLibStr :: ("-lbios%19S%8S%24t/* BIOS clock specific library */%0t\n-lbios6x1x%8S%24t/* BIOS c6x1x specific library */%0t\n")
+ prop _chipStr :: ""
+ prop _pmiLibStr :: ""
+ prop _pmiVoltLibStr :: ""
+ prop _pmiVoltControlLibStr :: ""
+ prop _psclLibStr :: ""
+ prop _psclCfgLibStr :: ""
+ prop _psclConfigLibStr :: ""
+ prop _mpcLibStr :: ""
+ prop _lnkCmdFile :: MEM.LNKCMDFILE
+ prop _lnkCmdStr :: (if (MEM.LNKCMDFILE == "") {""} else {"-l%11S %24t/* User Specified Linker cmd file */%0t\n"})
+ prop _sioLibStr :: if SIO.USEISSUERECLAIM == 1 {"-lsioir%23S%8S %24t/* supports SIO Issue/Reclaim model only */%0t\n"} else {"-lsioboth%23S%8S %24t/* supports both SIO models */%0t\n"}
+ prop _devLibStr :: "-ldrivers%23S%14S %24t/* device drivers support */%0t\n"
+ prop _cslLibStr :: ""
+ prop _chipType :: ""
+ prop _logLibStr :: if LOG.TS {"-llog8%3S\n"} else {""}
+ prop _romStr :: if self.LINKWITHROM {"-lromC672x.out\n-lromC672x.cmd\n"} else {""}
+ prop _biosRomStr :: if self.LINKWITHROM {"_BIOSROM"} else {""}
+ prop _SKLibStr :: ""
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global PRODUCT :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ prop Visible :: 0
+ prop Writable :: 1
+ prop EnvField :: 1
+ }
+ global CALLBACKOBJ :: CLK {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CHIPCHAIN :: nil {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global TRACE :: "CD-01234567" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Trace Mask"
+ prop NoGen :: 1
+ prop Visible :: 0
+ prop Writable :: 0
+ }
+ global BOARD :: "c6211" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Target Board Name"
+ prop JSName :: "BOARDNAME"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global ROM :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Link to ROM Library"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global CPUCLOCK :: 225.000000 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global PROCID :: = 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Label :: "Processor ID (PROCID)"
+ prop JSName :: "PROCID"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global CLKIN :: = 20000 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Label :: "Board Clock in KHz (Informational Only)"
+ prop JSName :: "CLKIN"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global FREQ :: 225000 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global MIPS :: 225.000000 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: 0x04
+ prop Format :: "%.4f"
+ prop Label :: "DSP Speed In MHz (CLKOUT)"
+ prop JSName :: "CLKOUT"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: ($a = self.MIPS, $b = if (GBL.DSPTYPE == 62) {$1} else {$1 * 2}, $e = "ok", self.MIPS = $1, self.FREQ = int(self.MIPS * 1000), if (($e = self.setCPUClock($b)) != "ok") {self.MIPS = $a} , $e)
+ }
+ global OSTYPE :: "BIOS" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "BIOS"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global DSPTYPE :: 62 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "DSP Major Type"
+ prop JSName :: "DSPTYPE"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global SPECIFYRTSLIB :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Specify RTS library"
+ prop JSName :: "SPECIFYRTSLIB"
+ prop NoGen :: 1
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ global RTSLIB :: "" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Run-Time Support Library"
+ prop JSName :: "RTSLIB"
+ prop NoGen :: 1
+ prop Visible :: 1
+ prop Writable :: self.SPECIFYRTSLIB
+ }
+ global DSPSUBTYPE :: 6713 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "6211,6711,6712,6713"
+ prop Label :: "DSP Type"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Set :: (self.DSPSUBTYPE = $1, self.L2Check(), "ok")
+ prop NoGen :: 0
+ }
+ global CLKTYPE :: 6000 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "CLK Type"
+ prop JSName :: "CLKTYPE"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global CHIPTYPE :: "6713" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "6211,6711,6712,6713,DA610,custom,other"
+ prop Label :: "Chip Support Library (CSL)"
+ prop JSName :: "CHIPTYPE"
+ prop NoGen :: 1
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Set :: (if ($1 == "6201" || $1 == "6202" || $1 == "6203" || $1 == "6204" || $1 == "6205") {self.DSPSUBTYPE = 6200} else {if ($1 == "6701") {self.DSPSUBTYPE = 6700} else {if ($1 == "6211") {self.DSPSUBTYPE = 6211} else {if ($1 == "6711" || $1 == "6712" || $1 == "6713" || $1 == "DA610") {if ($1 == "6711") {self.DSPSUBTYPE = 6711} , if ($1 == "6712") {self.DSPSUBTYPE = 6712} , if ($1 == "6713") {self.DSPSUBTYPE = 6713} } else {if ($1 == "DM642" || $1 == "6412" || $1 == "6414" || $1 == "6415" || $1 == "6416" || $1 == "6410" || $1 == "6413") {self.DSPSUBTYPE = 6400} }}}}, self.CHIPTYPE = $1, self.L2Check(), $e = "ok", if (GBL.CHIPCHAIN != nil) {$e = GBL.CHIPCHAIN.chipcall()} , $e)
+ }
+ global DISPCALLCSLCFGINIT :: = (self.CHIPTYPE != "other" && self.CHIPTYPE != "custom") {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Call CSL_cfgInit Initialization routine"
+ prop Visible :: 0
+ prop Writable :: self.SUPPORTCSL
+ prop NoGen :: 1
+ }
+ global DSPNAME :: "TMS320C62XX" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global DSPARITHMETIC :: = (if (GBL.DSPTYPE == 62 && (GBL.DSPSUBTYPE / 100) == 67) {"FLOAT"} else {"FIXED"}) {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "FIXED,FLOAT"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global DSPWORDSIZE :: = (if (GBL.DSPTYPE == 30 || GBL.DSPTYPE == 40 || GBL.DSPTYPE == 62) {32} else {16}) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "DSP Word Size"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global DSPCHARSIZE :: = (if GBL.DSPTYPE == 62 {8} else {if GBL.DSPSUBTYPE == 5599 {8} else {GBL.DSPWORDSIZE}}) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "DSP Byte Size"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global DATAPTRSIZE :: = (if (GBL.DSPTYPE == 62) {32} else {if (GBL.DSPTYPE == 54) {16} else {if (GBL.DSPTYPE == 55) {if (GBL.MEMORYMODEL == "SMALL") {16} else {23}} else {if (GBL.DSPTYPE == 28) {22} else {0}}}}) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop iComment :: "Size of the Data Pointer"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CODEPTRSIZE :: = (if (GBL.DSPTYPE == 62) {32} else {if (GBL.DSPTYPE == 54) {if (GBL.CALLMODEL == "near") {16} else {24}} else {if (GBL.DSPTYPE == 55) {24} else {if (GBL.DSPTYPE == 28) {22} else {0}}}}) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop iComment :: "Size of Code Pointer"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global ENDIAN :: "little" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "little,big"
+ prop Label :: "DSP Endian Mode"
+ prop JSName :: "ENDIANMODE"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: (self.ENDIAN = $1, "ok")
+ }
+ global BIGENDIAN :: = if self.ENDIAN == "little" {0} else {1} {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global AUTOINIT :: "ROM" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "ROM,RAM"
+ prop Label :: "C Autoinitialization Model"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global USERINIT :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Call User Init Function"
+ prop JSName :: "CALLUSERINITFXN"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (if ($1 == 0) {self.USERINITFXN = @_FXN_F_nop, self.USERINIT = $1} else {self.USERINIT = $1}, "ok")
+ }
+ global USERINITFXN :: @_GBL_setPLLto225MHz {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "User Init Function"
+ prop JSName :: "USERINITFXN"
+ prop Visible :: 1
+ prop Writable :: self.USERINIT
+ prop NoGen :: 0
+ }
+ global OLDAUTOCALCULATE :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "previous value for autocalculate"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global ENABLEINST :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable Real Time Analysis"
+ prop JSName :: "ENABLEINST"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (if ($1 != self.ENABLEINST) {if ($1) {RTA_toHost.Create("HST"), RTA_toHost.bufseg = HST.OBJMEMSEG, RTA_fromHost.Create("HST"), RTA_fromHost.bufseg = HST.OBJMEMSEG, RTA_dispatcher.Create("HST"), IDL_busyObj.Create("IDL"), IDL.USEIDLBUSYOBJ = 1, IDL_cpuLoad.Create("IDL"), IDL.AUTOCALCULATE = self.OLDAUTOCALCULATE} else {if (self.LINKWITHROM) {self.LINKWITHROM = 0} , RTA_toHost.Delete("HST"), RTA_toHost.bufseg = MEM_NULL, RTA_fromHost.Delete("HST"), RTA_fromHost.bufseg = MEM_NULL, RTA_dispatcher.Delete("HST"), IDL_busyObj.Delete("IDL"), IDL.USEIDLBUSYOBJ = 0, IDL_cpuLoad.Delete("IDL"), self.OLDAUTOCALCULATE = IDL.AUTOCALCULATE, IDL.AUTOCALCULATE = 0}, self.ENABLEINST = $1} , "ok")
+ }
+ global INSTRUMENTED :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Use Instrumented BIOS library"
+ prop JSName :: "INSTRUMENTED"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global CGENERATE :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Do C Generation"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global ENABLEDLL :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable Dynamic Loading"
+ prop JSName :: "ENABLEDLL"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global PCC :: "mapped" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "mapped,cache enable,cache freeze,cache bypass"
+ prop Label :: "Program Cache Control - CSR(PCC) "
+ prop JSName :: "CSRPCC"
+ prop Visible :: 1
+ prop Writable :: if (GBL.DSPSUBTYPE == 6211 || GBL.DSPSUBTYPE == 6711 || GBL.DSPSUBTYPE == 6400) {0} else {1}
+ prop NoGen :: 1
+ prop TabName :: "620x/670x/672x"
+ }
+ global DCC :: "mapped" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "mapped,cache enable,cache freeze,cache bypass"
+ prop Label :: "Data Cache Control"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "620x/670x/672x"
+ }
+ global PCACHE :: = (if (self.PCC == "mapped") {0x0000} else {if (self.PCC == "cache enable") {0x0040} else {if (self.PCC == "cache freeze") {0x0060} else {0x0080}}}) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global DCACHE :: = (if (self.DCC == "mapped") {0x0000} else {if (self.DCC == "cache enable") {0x0008} else {if (self.DCC == "cache freeze") {0x000c} else {0x0010}}}) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CACHE :: = (self.PCACHE | self.DCACHE) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global C621XL2CONFIGURE :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "621x/671x - Configure L2 Memory Settings"
+ prop JSName :: "C621XCONFIGUREL2"
+ prop Visible :: 1
+ prop Writable :: if (GBL.DSPSUBTYPE == 6211 || GBL.DSPSUBTYPE == 6711 || GBL.DSPSUBTYPE == 6712 || GBL.DSPSUBTYPE == 6713) {1} else {0}
+ prop TabName :: "621x/671x"
+ prop Set :: ($e = "ok", self.C621XL2CONFIGURE = $1, self.PCC = "mapped", $e = self.L2CacheSizeCheck(), $e)
+ prop NoGen :: 1
+ }
+ global C641XL2CONFIGURE :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "641x - Configure L2 Memory Settings"
+ prop JSName :: "C641XCONFIGUREL2"
+ prop Visible :: 1
+ prop Writable :: if (GBL.DSPSUBTYPE == 6400) {1} else {0}
+ prop TabName :: "641x"
+ prop Set :: ($e = "ok", self.C641XL2CONFIGURE = $1, self.PCC = "mapped", $e = self.L2CacheSizeCheck(), $e)
+ prop NoGen :: 1
+ }
+ global L2CONFIGURE :: = (if GBL.DSPSUBTYPE == 6400 {self.C641XL2CONFIGURE} else {self.C621XL2CONFIGURE}) {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Configure L2 Cache Control (c6x1x support)"
+ prop Visible :: 0
+ prop NoGen :: 0
+ }
+ global C621XPCC :: "Cache Enabled - Direct Mapped" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "Cache Enabled - Direct Mapped"
+ prop Label :: "Program Cache Control - CSR(PCC) "
+ prop Visible :: 1
+ prop Writable :: 0
+ prop NoGen :: 1
+ prop TabName :: "621x/671x"
+ }
+ global C641XPCC :: "Cache Enabled - Direct Mapped" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "Cache Enabled - Direct Mapped"
+ prop Label :: "641x - Program Cache Control - CSR(PCC)"
+ prop Visible :: 1
+ prop Writable :: 0
+ prop NoGen :: 1
+ prop TabName :: "641x"
+ }
+ global L2MODEOPTS :: "SRAM" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "L2 Mode - CCFG(L2MODE)"
+ prop JSName :: "C621XCCFGL2MODE"
+ prop Enum :: "SRAM,1-way cache,2-way cache,3-way cache,4-way cache"
+ prop Visible :: 1
+ prop Writable :: if ((GBL.DSPSUBTYPE == 6211 || GBL.DSPSUBTYPE == 6711 || GBL.DSPSUBTYPE == 6712 || GBL.DSPSUBTYPE == 6713) && GBL.L2CONFIGURE == 1) {1} else {0}
+ prop NoGen :: 1
+ prop TabName :: "621x/671x"
+ prop Set :: ($i = self.L2MODEOPTS, self.L2MODEOPTS = $1, $e = self.L2CacheSizeCheck(), if ($e != "ok") {self.L2MODEOPTS = $i} , $e)
+ }
+ global C641XL2MODEOPTS :: "4-way cache (0k)" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "641x L2 Mode - CCFG(L2MODE)"
+ prop Enum :: "4-way cache (0k),4-way cache (32k),4-way cache (64k),4-way cache (128k),4-way cache (256k)"
+ prop JSName :: "C641XCCFGL2MODE"
+ prop Visible :: 1
+ prop Writable :: if ((GBL.DSPSUBTYPE == 6400) && GBL.L2CONFIGURE == 1) {1} else {0}
+ prop NoGen :: 1
+ prop TabName :: "641x"
+ prop Set :: ($i = self.C641XL2MODEOPTS, self.C641XL2MODEOPTS = $1, $e = self.L2CacheSizeCheck(), if ($e != "ok") {self.C641XL2MODEOPTS = $i} , $e)
+ }
+ global L2MODE :: = (if GBL.DSPSUBTYPE == 6400 {self.setC641XL2MODE()} else {self.setL2MODE()}) {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "L2 Mode - CCFG(L2MODE) Values"
+ prop Enum :: "0,1,2,3,7"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global L2PRIORITY :: 0 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "L2 Requestor Priority - CCFG(P)"
+ prop Enum :: "0,1"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global L2MARMASK :: 1 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Label :: "L2 MAR0-15 - bitmask used to initialize MARs"
+ prop JSName :: "C621XMAR"
+ prop Format :: "0x%04x"
+ prop Style :: 0x01 | 0x02
+ prop Visible :: 1
+ prop Writable :: if ((GBL.DSPSUBTYPE == 6211 || GBL.DSPSUBTYPE == 6711 || GBL.DSPSUBTYPE == 6712 || GBL.DSPSUBTYPE == 6713) && GBL.L2CONFIGURE == 1) {1} else {0}
+ prop NoGen :: 0
+ prop TabName :: "621x/671x"
+ }
+ global SUPPORTCSL :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 0
+ }
+ global ENABLEALLTRC :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable All TRC Trace Event Classes"
+ prop JSName :: "ENABLEALLTRC"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: (if ($1) {self.TRCMASKVALUE = 0xDBEF} else {self.TRCMASKVALUE = 0x4000}, self.ENABLEALLTRC = $1, "ok")
+ }
+ global TRCMASKVALUE :: 56303 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 0
+ }
+ global CALLCSLCFGINIT :: = self.DISPCALLCSLCFGINIT {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 0
+ }
+ global CDBPATH :: "" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "CDB search path in COFF file"
+ prop JSName :: "CDBRELATIVEPATH"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global LINKWITHROM :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Link with ROM"
+ prop JSName :: "LINKWITHROM"
+ prop Visible :: 0
+ prop Writable :: if (self.DSPSUBTYPE == 6799 && self.ENABLEINST) {1} else {0}
+ prop NoGen :: 1
+ prop Set :: ($e = "ok", if ($1) {$e = self.error("This BIOS version does not support linking with ROM.")} , $e)
+ }
+ global C641XL2PRIORITY :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: if ((GBL.DSPSUBTYPE == 6400) && GBL.L2CONFIGURE == 1) {1} else {0}
+ prop NoGen :: 0
+ prop TabName :: "641x"
+ }
+ global L2MARMASK1 :: 0 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Label :: "MAR96-111 - bitmask controls EMIFB CE space"
+ prop JSName :: "C641XMAREMIFB"
+ prop Format :: "0x%04x"
+ prop Style :: 0x01 | 0x02
+ prop Visible :: 1
+ prop Writable :: if ((GBL.DSPSUBTYPE == 6400) && GBL.L2CONFIGURE == 1) {1} else {0}
+ prop NoGen :: 0
+ prop TabName :: "641x"
+ }
+ global L2MARMASK2 :: 0 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Label :: "MAR128-143 - bitmask controls EMIFA CE0 space"
+ prop JSName :: "C641XMARCE0"
+ prop Format :: "0x%04x"
+ prop Style :: 0x01 | 0x02
+ prop Visible :: 1
+ prop Writable :: if ((GBL.DSPSUBTYPE == 6400) && GBL.L2CONFIGURE == 1) {1} else {0}
+ prop NoGen :: 0
+ prop TabName :: "641x"
+ }
+ global L2MARMASK3 :: 0 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Label :: "MAR144-159 - bitmask controls EMIFA CE1 space"
+ prop JSName :: "C641XMARCE1"
+ prop Format :: "0x%04x"
+ prop Style :: 0x01 | 0x02
+ prop Visible :: 1
+ prop Writable :: if ((GBL.DSPSUBTYPE == 6400) && GBL.L2CONFIGURE == 1) {1} else {0}
+ prop NoGen :: 0
+ prop TabName :: "641x"
+ }
+ global L2MARMASK4 :: 0 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Label :: "MAR160-175 - bitmask controls EMIFA CE2 space"
+ prop JSName :: "C641XMARCE2"
+ prop Format :: "0x%04x"
+ prop Style :: 0x01 | 0x02
+ prop Visible :: 1
+ prop Writable :: if ((GBL.DSPSUBTYPE == 6400) && GBL.L2CONFIGURE == 1) {1} else {0}
+ prop NoGen :: 0
+ prop TabName :: "641x"
+ }
+ global L2MARMASK5 :: 0 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Label :: "MAR176-191 - bitmask controls EMIFA CE3 space"
+ prop JSName :: "C641XMARCE3"
+ prop Format :: "0x%04x"
+ prop Style :: 0x01 | 0x02
+ prop Visible :: 1
+ prop Writable :: if ((GBL.DSPSUBTYPE == 6400) && GBL.L2CONFIGURE == 1) {1} else {0}
+ prop NoGen :: 0
+ prop TabName :: "641x"
+ }
+ global L2REQPRIORITY :: "urgent" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "641x L2 Requestor Priority Queue - CCFG(P)"
+ prop JSName :: "C641XCCFGP"
+ prop Enum :: "urgent,high,medium,low"
+ prop Visible :: 1
+ prop Writable :: if ((GBL.DSPSUBTYPE == 6400) && GBL.L2CONFIGURE == 1) {1} else {0}
+ prop NoGen :: 1
+ prop Set :: (self.L2REQPRIORITY = $1, if (self.L2REQPRIORITY == "urgent") {self.C641XL2PRIORITY = 0} else {if (self.L2REQPRIORITY == "high") {self.C641XL2PRIORITY = 1} else {if (self.L2REQPRIORITY == "medium") {self.C641XL2PRIORITY = 2} else {self.C641XL2PRIORITY = 3}}}, "ok")
+ prop TabName :: "641x"
+ }
+ global L2CONFIGALLOC :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Configure Priority Queues"
+ prop JSName :: "C641XSETL2ALLOC"
+ prop Visible :: 1
+ prop Writable :: (GBL.DSPSUBTYPE == 6400 && GBL.L2CONFIGURE == 1)
+ prop NoGen :: 0
+ prop TabName :: "641x"
+ }
+ global L2ALLOC0 :: 6 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Max L2 Transfer Requests on URGENT Queue (L2ALLOC0)"
+ prop JSName :: "C641XL2ALLOC0"
+ prop Enum :: "0,1,2,3,4,5,6,7"
+ prop Visible :: 1
+ prop Writable :: if (GBL.DSPSUBTYPE == 6400 && GBL.L2CONFIGURE == 1 && GBL.L2CONFIGALLOC == 1) {1} else {0}
+ prop NoGen :: 1
+ prop TabName :: "641x"
+ }
+ global L2ALLOC1 :: 2 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Max L2 Transfer Requests on HIGH Queue (L2ALLOC1)"
+ prop JSName :: "C641XL2ALLOC1"
+ prop Enum :: "0,1,2,3,4,5,6,7"
+ prop Visible :: 1
+ prop Writable :: if (GBL.DSPSUBTYPE == 6400 && GBL.L2CONFIGURE == 1 && GBL.L2CONFIGALLOC == 1) {1} else {0}
+ prop NoGen :: 1
+ prop TabName :: "641x"
+ }
+ global L2ALLOC2 :: 2 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Max L2 Transfer Requests on MEDIUM Queue (L2ALLOC2)"
+ prop JSName :: "C641XL2ALLOC2"
+ prop Enum :: "0,1,2,3,4,5,6,7"
+ prop Visible :: 1
+ prop Writable :: if (GBL.DSPSUBTYPE == 6400 && GBL.L2CONFIGURE == 1 && GBL.L2CONFIGALLOC == 1) {1} else {0}
+ prop NoGen :: 1
+ prop TabName :: "641x"
+ }
+ global L2ALLOC3 :: 2 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Max L2 Transfer Requests on LOW Queue (L2ALLOC3)"
+ prop JSName :: "C641XL2ALLOC3"
+ prop Enum :: "0,1,2,3,4,5,6,7"
+ prop Visible :: 1
+ prop Writable :: if (GBL.DSPSUBTYPE == 6400 && GBL.L2CONFIGURE == 1 && GBL.L2CONFIGALLOC == 1) {1} else {0}
+ prop NoGen :: 1
+ prop TabName :: "641x"
+ }
+ global L2ALLOC :: = ((self.L2ALLOC0) | (self.L2ALLOC1 << 4) | (self.L2ALLOC2 << 8) | (self.L2ALLOC3 << 12)) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop NoGen :: 0
+ }
+}
+
+type MEM {
+ isa ObjectMgr
+ prop Label :: "MEM - Memory Section Manager"
+ prop name :: "MEM"
+ prop DependsOn :: "SEM"
+ prop IsContainedIn :: SYSTEM
+ prop GlobalIcon :: 115
+ prop InstanceIcon :: 116
+ prop GlobalHelpTopic :: (108)
+ prop InstanceHelpTopic :: (208)
+ prop InstancePropertyPage :: ("{3D658E70-05E7-11d0-BD44-0020AFEE33C8}")
+ prop GlobalPropertyPage :: ("{3D658E71-05E7-11d0-BD44-0020AFEE33C8}")
+ prop heapLabelStr :: (self.iHeapId)
+ prop GenLinkPrologue :: (if (GBL.DSPTYPE == 55) {"-stack 0x%1x\n-sysstack 0x%2x\n\nMEMORY {%4t\0, _cmd55stksz, _cmd55systksz"} else {"-stack 0x%1x\nMEMORY {%4t\0, _stackSize"})
+ prop _stackSize :: MEM.STACKSIZE
+ prop AllocType :: (if (self.REUSE == 0 && self.USERCMD == 0) {"19\0, _argsString, _argsSeg, _midPlace, _sysdataString, _sysdataSeg, _thirdPlace, _trcinitString, _trcinitSeg, _midPlace, _gblinitString, _gblinitSeg, _midPlace, _memObjString, _memObjSeg, _midPlace, _sysinitString, _initSeg, _sysinitPlace, _sysregsString, _regsSeg, _midPlace, _bssString, _bssSeg, _firstPlace, _farString, _farSeg, _secondPlace, _cinitString, _cinitSeg, _midPlace, _pinitString, _pinitSeg, _midPlace, _dataString, _dataSeg, _midPlace, _constString, _constSeg, _midPlace, _switchString, _switchSeg, _midPlace, _cioString, _cioSeg, _midPlace, _textString, _textSeg, _midPlace, _frtString, _frtSeg, _midPlace, _biosString, _biosSeg, _midPlace, _stackString, _stackSeg, _midPlace"} else {if (self.REUSE == 0 && self.USERCMD == 1) {"9\0, _argsString, _argsSeg, _midPlace, _sysdataString, _sysdataSeg, _thirdPlace, _trcinitString, _trcinitSeg, _midPlace, _gblinitString, _gblinitSeg, _midPlace, _memObjString, _memObjSeg, _midPlace, _sysinitString, _initSeg, _sysinitPlace, _sysregsString, _regsSeg, _midPlace, _biosString, _biosSeg, _midPlace, _stackString, _stackSeg, _midPlace"} else {if (self.REUSE == 1 && self.USERCMD == 0) {"18\0, _argsString, _argsSeg, _midPlace, _sysdataString, _sysdataSeg, _thirdPlace, _trcinitString, _trcinitSeg, _midPlace, _gblinitString, _gblinitSeg, _midPlace, _memObjString, _memObjSeg, _midPlace, _sysregsString, _regsSeg, _midPlace, _bssString, _bssSeg, _firstPlace, _farString, _farSeg, _secondPlace, _cinitString, _cinitSeg, _midPlace, _pinitString, _pinitSeg, _midPlace, _dataString, _dataSeg, _midPlace, _constString, _constSeg, _midPlace, _switchString, _switchSeg, _midPlace, _cioString, _cioSeg, _midPlace, _textString, _textSeg, _midPlace, _frtString, _frtSeg, _midPlace, _biosString, _biosSeg, _midPlace, _stackString, _stackSeg, _midPlace"} else {"8\0, _argsString, _argsSeg, _midPlace, _sysdataString, _sysdataSeg, _thirdPlace, _trcinitString, _trcinitSeg, _midPlace, _gblinitString, _gblinitSeg, _midPlace, _memObjString, _memObjSeg, _midPlace, _sysregsString, _regsSeg, _midPlace, _biosString, _biosSeg, _midPlace, _stackString, _stackSeg, _midPlace"}}})
+ prop _firstPlace :: 0
+ prop _secondPlace :: 0 + 1
+ prop _thirdPlace :: 0 + 2
+ prop _midPlace :: (0x7fffffff / 2)
+ prop _sysinitPlace :: (0x7fffffff / 2)
+ prop _argsString :: ("%8t .args: align=4 fill=0 {%12t\n *(.args)\n . += 0x%1x;%8t\n }\0, _argsSize")
+ prop _bssString :: ("%8t .bss: {}")
+ prop _farString :: ("%8t .far: {}")
+ prop _cinitString :: (if (self.ENABLELOADSEG == 1) {if (MEM.CINITSEG == MEM.LOADCINITSEG) {"%8t .cinit: {}"} else {"%8t .cinit: {} load > %1s, run\0, _loadcinitSeg"}} else {"%8t .cinit: {}"})
+ prop _pinitString :: (if (self.ENABLELOADSEG == 1) {if (MEM.PINITSEG == MEM.LOADPINITSEG) {"%8t .pinit: {}"} else {"%8t .pinit: {} load > %1s, run\0, _loadpinitSeg"}} else {"%8t .pinit: {}"})
+ prop _trcinitString :: (if (self.ENABLELOADSEG == 1) {if (MEM.TRCINITSEG == MEM.LOADTRCINITSEG) {"%8t .trcdata: {}"} else {"%8t .trcdata: {} load > %1s, run\0, _loadtrcinitSeg"}} else {"%8t .trcdata: {}"})
+ prop _gblinitString :: (if (self.ENABLELOADSEG == 1) {if (MEM.BIOSINITSEG == MEM.LOADBIOSINITSEG) {"%8t .gblinit: {}"} else {"%8t .gblinit: {} load > %1s, run\0, _loadgblinitSeg"}} else {"%8t .gblinit: {}"})
+ prop _dataString :: ("%8t .data: {}")
+ prop _constString :: (if (self.ENABLELOADSEG == 1) {if (MEM.CONSTSEG == MEM.LOADCONSTSEG) {"%8t GROUP {\n %8t .const: align = 0x8 {} \n %8t .printf (COPY): {} \n%8t }"} else {"%8t .const: align = 0x8 {} load > %1s run\0, _loadconstSeg"}} else {"%8t GROUP {\n %8t .const: align = 0x8 {} \n %8t .printf (COPY): {} \n%8t }"})
+ prop _switchString :: (if (self.ENABLELOADSEG == 1) {if (MEM.SWITCHSEG == MEM.LOADSWITCHSEG) {"%8t .switch: {}"} else {"%8t .switch: {} load > %1s, run\0, _loadswitchSeg"}} else {"%8t .switch: {}"})
+ prop _sysmemString :: ("%8t .sysmem: {}")
+ prop _cioString :: ("%8t .cio: {}")
+ prop _memObjString :: ("%8t .mem: {}")
+ prop _sysdataString :: (if ((GBL.ROM == 0) && (GBL.DSPTYPE == 54)) {"%8t .sysdata: align = 128 {%12t\n GBL_A_SYSPAGE = .;\n GBL_A_SYSDP = GBL_A_SYSPAGE >> 7;\n %8t }"} else {"%8t .sysdata: {}"})
+ prop _sysinitString :: (if (self.ENABLELOADSEG == 1) {if (MEM.INITSEG == MEM.LOADINITSEG) {"%8t .sysinit: {}"} else {"%8t .sysinit: {} load > %1s, run\0, _loadinitSeg"}} else {"%8t .sysinit: {}"})
+ prop _sysregsString :: ("%8t .sysregs: {}")
+ prop _textString :: (if (self.ENABLELOADSEG == 1) {if (MEM.TEXTSEG == MEM.LOADTEXTSEG) {"%8t .text: {}"} else {"%8t .text: {} load > %1s, run\0, _loadtextSeg"}} else {"%8t .text: {}"})
+ prop _frtString :: ("%8t frt: {}")
+ prop _biosString :: (if (self.ENABLELOADSEG == 1) {if (MEM.BIOSSEG == MEM.LOADBIOSSEG) {"%8t .bios: {}"} else {"%8t .bios: {} load > %1s, run\0, _loadbiosSeg"}} else {"%8t .bios: {}"})
+ prop _stackString :: (if (GBL.DSPTYPE == 62) {"%8t .stack: align = 0x8 {%12t\n GBL_stackbeg = .;\n *(.stack)\n GBL_stackend = GBL_stackbeg + 0x%1x - 1;%12t\n _HWI_STKBOTTOM = GBL_stackbeg + 0x%1x - 8;%12t\n _HWI_STKTOP = GBL_stackbeg;%8t\n }\0, _stackSize, _stackSize"} else {if (GBL.DSPTYPE == 54) {"%8t .stack: {%12t\n GBL_stackbeg = .;\n *(.stack)\n GBL_stackend = ((GBL_stackbeg + 0x%1x - 1) & 0xfffe) ;%8t\n _HWI_STKBOTTOM = GBL_stackend;%12t\n _HWI_STKTOP = GBL_stackbeg;%8t\n }\0, _stackSize"} else {if (GBL.DSPTYPE == 55) {"%8t GROUP { \n%16t .sysstack : align = 0x4 {%12t\n %16t GBL_sysstackbeg = .;\n %16t *(.sysstack)\n %16t GBL_sysstackend = GBL_sysstackbeg + 0x%2x -1 ;%12t\n %16t _HWI_SYSSTKTOP = GBL_sysstackbeg; %12t\n %16t_HWI_SYSSTKBOTTOM = (GBL_sysstackend+1);\n%16t} \n%16t .stack: align = 0x4 {%12t\n %16t GBL_stackbeg = .;\n %16t *(.stack)\n GBL_stackend = (GBL_stackbeg + 0x%1x - 1) ;%12t\n %16t _HWI_STKBOTTOM = (GBL_stackend+1);%12t\n %16t _HWI_STKTOP = (GBL_stackbeg);%16t\n }%8t\n } BLOCK(0x20000), run \0, _cmd55stksz, _cmd55systksz"} else {"%8t .stack: {%12t\n GBL_stackbeg = .;\n *(.stack)\n GBL_stackend = GBL_stackbeg + 0x%1x - 1;%8t\n _HWI_STKBOTTOM = GBL_stackbeg;%12t\n _HWI_STKTOP = (GBL_stackend + 1);%8t\n }\0, _stackSize"}}})
+ prop _memHdrSize :: 8
+ prop GenLinkEpilogue :: ("%0t}")
+ prop _stackSeg :: MEM.STACKSEG
+ prop _textSeg :: MEM.TEXTSEG
+ prop _frtSeg :: MEM.TEXTSEG
+ prop _biosSeg :: MEM.BIOSSEG
+ prop _dataSeg :: MEM.DATASEG
+ prop _cioSeg :: MEM.CIOSEG
+ prop _sysmemSeg :: MEM.SYSMEMSEG
+ prop _constSeg :: MEM.CONSTSEG
+ prop _initSeg :: MEM.INITSEG
+ prop _pinitSeg :: MEM.PINITSEG
+ prop _trcinitSeg :: MEM.TRCINITSEG
+ prop _gblinitSeg :: MEM.BIOSINITSEG
+ prop _regsSeg :: MEM.SYSDATASEG
+ prop _sysdataSeg :: MEM.SYSDATASEG
+ prop _argsSeg :: MEM.ARGSSEG
+ prop _argsSize :: MEM.ARGSSIZE
+ prop _bssSeg :: MEM.BSSSEG
+ prop _farSeg :: MEM.FARSEG
+ prop _cinitSeg :: MEM.CINITSEG
+ prop _memObjSeg :: MEM.CFGOBJSEG
+ prop _switchSeg :: MEM.SWITCHSEG
+ prop _loadtextSeg :: MEM.LOADTEXTSEG
+ prop _loadbiosSeg :: MEM.LOADBIOSSEG
+ prop _loadconstSeg :: MEM.LOADCONSTSEG
+ prop _loadinitSeg :: MEM.LOADINITSEG
+ prop _loadpinitSeg :: MEM.LOADPINITSEG
+ prop _loadtrcinitSeg :: MEM.LOADTRCINITSEG
+ prop _loadgblinitSeg :: MEM.LOADBIOSINITSEG
+ prop _loadcinitSeg :: MEM.LOADCINITSEG
+ prop _loadswitchSeg :: MEM.LOADSWITCHSEG
+ prop AllocInst :: (if (self.iAllocHeap == 1) {"1\0, _instAllocDesc, _objMemSeg, _placement"} )
+ prop _instAllocDesc :: (if self.INITSEG.iAllocHeap && self.REUSE && self.INITSEG == self {"%8t GROUP {%12t\n .sysinitgap {. += 0x%2x;}\n .sysinit:\n .%0r$heap: {%16t\n . += 0x%1x;%12t\n }%8t\n } RUN_START(%0r$B), RUN_START(_%0r_base), RUN_SIZE(%0r$L), RUN_SIZE(_%0r_length)\0, _heapsize, _sysinitgap, _heaplen"} else {"%8t .%0r$heap: {%12t\n . += 0x%1x;%8t\n } RUN_START(%0r$B), RUN_START(_%0r_base), RUN_SIZE(%0r$L), RUN_SIZE(_%0r_length)\0, _heapsize, _heaplen"})
+ prop _objMemSeg :: self
+ prop _placement :: 0x7fffffff - 1
+ prop _heapsize :: (self.iHeapSize)
+ prop _heaplen :: (self.iHeapSize)
+ prop _sysinitgap :: 2 * 4
+ prop GenInstLink :: (if GBL.DSPTYPE == 62 {"%0r %16t: origin = 0x%1x, %40tlen = 0x%2x%4t\0, _origin, _len"} else {if GBL.DSPTYPE == 55 {"PAGE %3d: %16t%0r: %26torigin = 0x%1x, %40tlen = 0x%2x%4t\0, _cmd55origin, _cmd55len, _page"} else {"PAGE %3d: %14t%0r: %26torigin = 0x%1x, %50tlen = 0x%2x%4t\0, _origin, _len, _page"}})
+ prop localInit :: ($d = "ok", scan ($i; MEM) {if ($i.space == "code" && $i.iAllocHeap == 1) {$d = self.error("Code memory cannot have a heap")} }, if (self.SEGZERO.iAllocHeap == 1) {self.SEGZERO.iReqHeapCount++} else {$d = self.error("Segment for DSP/BIOS objects must be a memory segment with a heap")}, if (self.MALLOCSEG.iAllocHeap == 1) {self.MALLOCSEG.iReqHeapCount++} else {$d = self.error("Segment for malloc()/free() must be a memory segment with a heap")}, $d)
+ prop _page :: (self.page)
+ prop _origin :: (self.base)
+ prop _len :: (self.len)
+ prop maxObjs :: (32767)
+ prop codeMember :: (if $1.dynamicLoading == 1 {0} else {if GBL.DSPTYPE == 62 {(($1.space == "code") || ($1.space == "code/data"))} else {if GBL.DSPTYPE == 54 {($1.space == "code")} else {if GBL.DSPTYPE == 28 {($1.space == "code" || ($1.space == "code/data"))} else {if GBL.DSPTYPE == 55 {(($1.space == "code") || ($1.space == "code/data"))} else {($1.space == "code/data")}}}}})
+ prop dataMember :: (if $1.dynamicLoading == 1 {0} else {if GBL.DSPTYPE == 62 {($1.space == "data" || $1.space == "code/data") && $1 != MEM_NULL} else {if GBL.DSPTYPE == 54 {(($1.space != "code") && ($1 != MEM_NULL)) && $1.space != "io"} else {if GBL.DSPTYPE == 28 {($1.space == "data" || $1.space == "code/data") && $1 != MEM_NULL} else {if GBL.DSPTYPE == 55 {($1.space == "data" || $1.space == "code/data") && $1 != MEM_NULL} else {(($1.space == "code/data") && ($1 != MEM_NULL))}}}}})
+ prop dataNullMember :: (if $1.dynamicLoading == 1 {0} else {if GBL.DSPTYPE == 62 {$1.space == "data" || $1.space == "code/data"} else {if GBL.DSPTYPE == 54 {$1.space != "code" && $1.space != "io"} else {if GBL.DSPTYPE == 28 {$1.space == "data" || $1.space == "code/data"} else {if GBL.DSPTYPE == 55 {$1.space == "data" || $1.space == "code/data"} else {$1.space == "code/data"}}}}})
+ prop dataCodeMember :: (if $1.dynamicLoading == 1 {0} else {if GBL.DSPTYPE == 62 {($1.space == "data" || $1.space == "code/data") && $1 != MEM_NULL} else {if GBL.DSPTYPE == 54 {$1.space == "code" && $1 != MEM_NULL} else {if GBL.DSPTYPE == 28 {($1.space == "code" || $1.space == "code/data") && $1 != MEM_NULL} else {if GBL.DSPTYPE == 55 {($1.space == "data" || $1.space == "code/data") && $1 != MEM_NULL} else {$1.space == "code/data" && $1 != MEM_NULL}}}}})
+ prop memWritable :: (self.iIsModifiable && self.iDelUser != "MEM")
+ prop validate :: ($e = self.checkMemOverlap($1), if ($e == "ok") {$e = self.checkHeapSize($1)} , if ($e == "ok") {$e = self.checkHeapSeg($1)} , $e)
+ prop checkHeapSeg :: ($e = "ok", if ($1 == MEM_NULL && MEM.NOHEAPS == 0) {if (MEM.MALLOCSEG == MEM_NULL) {$e = ("Heaps are enabled, but the segment for malloc (MEM.MALLOCSEG) is not set correctly. Please create a heap in one of your data segments and set MEM.MALLOCSEG to it.")} , if (MEM.SEGZERO == MEM_NULL) {$e = ("Heaps are enabled, but the segment for DSP/BIOS Objects (MEM.BIOSOBJSEG) is not set correctly. Please create a heap in one of your data segments and set MEM.BIOSOBJSEG to it.")} } , $e)
+ prop checkHeapSize :: ($e = "ok", if (MEM.NOHEAPS == 0) {if ($1.iAllocHeap && $1 != MEM_NULL) {if ($1.iHeapSize > $1.len) {$e = ("MEM segment %s: heap cannot be larger than the length of segment that contains it.")} } } , $e)
+ prop checkMemOverlap :: ($e = "ok", if ($1 != MEM_NULL && $1.iIsUsed == 1) {if ($1.len == 0) {$a = $1.base} else {$a = ($1.base + $1.len - 1)}, scan ($j; MEM) {if ($1 != $j && $j != MEM_NULL && $j.iIsUsed == 1 && (GBL.DSPTYPE == 62 || $1.space == $j.space)) {if (!($j == CACHE_L2 && GBL.L2CONFIGURE == 0)) {$b = $j.base, if ($j.len == 0) {$c = $j.base} else {$c = ($j.base + $j.len - 1)}, if ($a >= $b && $1.base <= $c) {$e = ("MEM segment %s: overlaps with another segment or cache configuration."), break} } } }} , $e)
+ prop _spaceEnum :: (self.ENUMSPACE)
+ prop checkHeapId :: ($e = "ok", scan ($i; MEM) {if ($i.iAllocHeap == 1 && $i.iUserHeapId == 1 && $i.iHeapId == $1 && $i.iHeapId != @segment_name) {$e = self.error("This identifier label is already in use"), break} }, $e)
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 2 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CALLBACKOBJ :: nil {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumHeap :: = ($a = 0, scan ($i; MEM) {if ($i != MEM_NULL) {$a += $i.iAllocHeap} }, $a) {
+ prop NoGen :: 0
+ }
+ global REUSE :: = (if self.INITSEG.space != "code" && self.INITSEG.iAllocHeap == 1 {self.SAVEREUSE} else {0}) {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Reuse Startup Code Space"
+ prop JSName :: "REUSECODESPACE"
+ prop Visible :: 1
+ prop Writable :: self.INITSEG.space != "code" && self.INITSEG.iAllocHeap == 1
+ prop NoGen :: 1
+ prop Set :: (self.SAVEREUSE = $1, "ok")
+ }
+ global SAVEREUSE :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ global doCheckOverlap :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global MAPSELECT :: "Map 1" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Map Mode"
+ prop JSName :: "MAPMODE"
+ prop Enum :: "Map 0,Map 1"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global ARGSSIZE :: 4 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: "0x%04x"
+ prop Style :: 0x01 | 0x02
+ prop Label :: "Argument Buffer Size"
+ prop JSName :: "ARGSSIZE"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: (if ($1 < 4) {self.error("The 'arguments' section must have at least 4 words.")} else {self.ARGSSIZE = $1, "ok"})
+ }
+ global ARGSSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.dataMember($1)
+ prop Label :: "Argument Buffer Section (.args)"
+ prop JSName :: "ARGSSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Data"
+ }
+ global BIOSSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.codeMember($1)
+ prop Label :: "BIOS Code Section (.bios)"
+ prop JSName :: "BIOSSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Code"
+ }
+ global STACKSIZE :: 1024 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: "0x%04x"
+ prop Style :: if GBL.DSPTYPE == 54 {0x01 | 0x02} else {0x02}
+ prop Label :: "Stack Size (MAUs)"
+ prop JSName :: "STACKSIZE"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: (if ((GBL.DSPTYPE == 55) && (GBL.DSPSUBTYPE != 5599)) {self.STACKSIZE = ($1 & -2)} else {if ((GBL.DSPTYPE == 55) && (GBL.DSPSUBTYPE == 5599)) {self.STACKSIZE = ($1 & -4)} else {self.STACKSIZE = $1}}, "ok")
+ prop PropSetOkUserMsg :: if (MEM.STACKSIZE < GlobalStatus.MinStackSize) {"Warning: You are setting the stack size to a value that is less than the Estimated Minimum Stack Size!"} else {"ok"}
+ }
+ global USERCMD :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "User .cmd File For Compiler Sections"
+ prop JSName :: "USERCOMMANDFILE"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ }
+ global STACKSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.dataMember($1)
+ prop Label :: "Stack Section (.stack)"
+ prop JSName :: "STACKSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Data"
+ prop Set :: (if (GBL.DSPTYPE == 55) {(MEM.STACKSEG = $1), (MEM.SYSSTACKSEG = $1)} else {(MEM.STACKSEG = $1)}, "ok")
+ }
+ global ENABLELOADSEG :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Specify Separate Load Addresses"
+ prop JSName :: "ENABLELOADADDR"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global LOADBIOSSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.codeMember($1)
+ prop Label :: "Load Address - BIOS Code Section (.bios)"
+ prop JSName :: "LOADBIOSSEG"
+ prop Visible :: 1
+ prop Writable :: (self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global INITSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.codeMember($1)
+ prop Label :: "Startup Code Section (.sysinit)"
+ prop JSName :: "SYSINITSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Code"
+ }
+ global LOADINITSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.codeMember($1)
+ prop Label :: "Load Address - Startup Code Section (.sysinit)"
+ prop JSName :: "LOADSYSINITSEG"
+ prop Visible :: 1
+ prop Writable :: (self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global BIOSINITSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.dataCodeMember($1)
+ prop Label :: "DSP/BIOS Init Tables (.gblinit)"
+ prop JSName :: "GBLINITSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Data"
+ }
+ global TRCINITSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.dataCodeMember($1)
+ prop Label :: "TRC Initial Value (.trcdata)"
+ prop JSName :: "TRCDATASEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Data"
+ }
+ global LOADBIOSINITSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.dataCodeMember($1)
+ prop Label :: "Load Address - DSP/BIOS Init Tables (.gblinit)"
+ prop JSName :: "LOADGBLINITSEG"
+ prop Visible :: 1
+ prop Writable :: (self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global LOADTRCINITSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.dataCodeMember($1)
+ prop Label :: "Load Address - TRC Initial Value (.trcdata)"
+ prop JSName :: "LOADTRCDATASEG"
+ prop Visible :: 1
+ prop Writable :: (self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global SYSDATASEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.dataMember($1)
+ prop Label :: "DSP/BIOS Kernel State (.sysdata)"
+ prop JSName :: "SYSDATASEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Data"
+ }
+ global CFGOBJSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.dataMember($1)
+ prop Label :: "DSP/BIOS Conf Sections (.*obj)"
+ prop JSName :: "OBJSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Data"
+ }
+ global NOHEAPS :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "No Dynamic Memory Heaps"
+ prop JSName :: "NOMEMORYHEAPS"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: (if ($1) {self.SEGZERO.iReqHeapCount--, self.SEGZERO = MEM_NULL, self.MALLOCSEG.iReqHeapCount--, self.MALLOCSEG = MEM_NULL, TSK.STACKSEG.iReqHeapCount--, TSK.STACKSEG = MEM_NULL, scan ($i; MEM) {if ($i.iAllocHeap && $i != MEM_NULL) {$i.iAllocHeap = 0, $i.iHeapSize = 0} }} , self.NOHEAPS = $1, "ok")
+ prop PropSetOkUserMsg :: if (MEM.NOHEAPS == 1) {"Currently specified heaps no longer valid"} else {"Please reconfigure heaps under individual mem segments"}
+ }
+ global SEGZERO :: MEM_NULL {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataNullMember($1) && $1.iAllocHeap)
+ prop Label :: "Segment For DSP/BIOS Objects"
+ prop JSName :: "BIOSOBJSEG"
+ prop Visible :: 1
+ prop Writable :: MEM.NOHEAPS == 0
+ prop NoGen :: 0
+ prop Set :: (if (self.SEGZERO.iReqHeapCount > 0) {self.SEGZERO.iReqHeapCount--} , self.SEGZERO = $1, self.SEGZERO.iReqHeapCount++, "ok")
+ }
+ global MALLOCSEG :: MEM_NULL {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataNullMember($1) && $1.iAllocHeap)
+ prop Label :: "Segment For malloc() / free()"
+ prop JSName :: "MALLOCSEG"
+ prop Visible :: 1
+ prop Writable :: (MEM.NOHEAPS == 0)
+ prop NoGen :: 0
+ prop Set :: (if (self.MALLOCSEG.iReqHeapCount > 0) {self.MALLOCSEG.iReqHeapCount--} , self.MALLOCSEG = $1, self.MALLOCSEG.iReqHeapCount++, "ok")
+ }
+ global USEMPC :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable Memory Protection Controller module"
+ prop JSName :: "USEMPC"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global LNKCMDFILE :: "" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Specify User Linker cmd File"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global TEXTSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.codeMember($1))
+ prop Label :: "Text Section (.text)"
+ prop JSName :: "TEXTSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0)
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ }
+ global LOADTEXTSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.codeMember($1))
+ prop Label :: "Load Address - Text Section (.text)"
+ prop JSName :: "LOADTEXTSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0 && self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global SWITCHSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataCodeMember($1))
+ prop Label :: "Switch Jump Tables (.switch)"
+ prop JSName :: "SWITCHSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0)
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ }
+ global LOADSWITCHSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataCodeMember($1))
+ prop Label :: "Load Address - Switch Jump Tables (.switch)"
+ prop JSName :: "LOADSWITCHSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0 && self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global BSSSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataMember($1))
+ prop Label :: "C Variables Section (.bss)"
+ prop JSName :: "BSSSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0)
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ }
+ global FARSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataMember($1))
+ prop Label :: "C Variables Section (.far)"
+ prop JSName :: "FARSEG"
+ prop Visible :: if GBL.DSPTYPE == 62 {1} else {0}
+ prop Writable :: (self.USERCMD == 0)
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ }
+ global CINITSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataCodeMember($1))
+ prop Label :: "Data Initialization Section (.cinit)"
+ prop JSName :: "CINITSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0)
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ }
+ global LOADCINITSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataCodeMember($1))
+ prop Label :: "Load Address - Data Initialization Section (.cinit)"
+ prop JSName :: "LOADCINITSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0 && self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global PINITSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataCodeMember($1))
+ prop Label :: "C Function Initialization Table (.pinit)"
+ prop JSName :: "PINITSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0)
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ }
+ global LOADPINITSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataCodeMember($1))
+ prop Label :: "Load Address - C Function Initialization Table (.pinit)"
+ prop JSName :: "LOADPINITSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0 && self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global CONSTSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataMember($1))
+ prop Label :: "Constant Sections (.const, .printf)"
+ prop JSName :: "CONSTSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0)
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ }
+ global LOADCONSTSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataMember($1))
+ prop Label :: "Load Address - Constant Sections (.const, .printf)"
+ prop JSName :: "LOADCONSTSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0 && self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global DATASEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataMember($1))
+ prop Label :: "Data Section (.data)"
+ prop JSName :: "DATASEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0)
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ }
+ global CIOSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataMember($1))
+ prop Label :: "Data Section (.cio)"
+ prop JSName :: "CIOSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0)
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ prop Set :: (self.CIOSEG = $1, self.SYSMEMSEG = $1, "ok")
+ }
+ global SYSMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataMember($1))
+ prop Label :: "Data Section (.sysmem)"
+ prop JSName :: "SYSMEMSEG"
+ prop Visible :: 0
+ prop Writable :: (self.USERCMD == 0)
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ }
+ global STUBMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.codeMember($1)
+ prop Label :: "Function Stub Memory (.hwi)"
+ prop JSName :: "HWISEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Code"
+ prop Set :: (self.STUBMEMSEG = $1, HWI.STUBMEMSEG = $1, "ok")
+ }
+ global LOADSTUBMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.codeMember($1)
+ prop Label :: "Load Address - Function Stub Memory (.hwi)"
+ prop JSName :: "LOADHWISEG"
+ prop Visible :: 1
+ prop Writable :: (self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global VECMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.codeMember($1)
+ prop Label :: "Interrupt Service Table Memory (.hwi_vec)"
+ prop JSName :: "HWIVECSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Code"
+ prop Set :: (self.VECMEMSEG = $1, HWI.VECMEMSEG = $1, GlobalStatus.gDirty = 1, if ($1.base == 0) {HWI.GENERATE_RESET_VEC = 0} , "ok")
+ }
+ global LOADVECMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.codeMember($1)
+ prop Label :: "Load Address -Interrupt Service Table Memory (.hwi_vec)"
+ prop JSName :: "LOADHWIVECSEG"
+ prop Visible :: 1
+ prop Writable :: (self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global RTDXTEXTMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.codeMember($1)
+ prop Label :: "RTDX Text Segment (.rtdx_text)"
+ prop JSName :: "RTDXTEXTSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Code"
+ prop Set :: (self.RTDXTEXTMEMSEG = $1, RTDX.TEXTMEMSEG = $1, "ok")
+ }
+ global LOADRTDXTEXTMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.codeMember($1)
+ prop Label :: "Load Address - RTDX Text Segment (.rtdx_text)"
+ prop JSName :: "LOADRTDXTEXTSEG"
+ prop Visible :: 1
+ prop Writable :: (self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global ENUMSPACE :: = if GBL.DSPTYPE == 62 {"code,data,code/data,reserved"} else {if GBL.DSPTYPE == 54 {"code,data,io,other,reserved"} else {if GBL.DSPTYPE == 28 {"code,code/data,data,io,other,reserved"} else {if GBL.DSPTYPE == 55 {"code/data,code,data,io,reserved"} else {"code/data,io,reserved"}}}} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "ENUMSPACE"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst base :: 0 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: if GBL.DSPTYPE == 62 {"0x%08x"} else {"0x%06x"}
+ prop Style :: 0x02
+ prop Label :: "base"
+ prop JSName :: "base"
+ prop Visible :: 1
+ prop Writable :: (self.iIsModifiable)
+ prop NoGen :: 1
+ prop Set :: ($e = "ok", $a = self.base, self.base = $1, if (MEM.CALLBACKOBJ != nil) {$e = MEM.CALLBACKOBJ.call(self), if ($e != "ok") {self.base = $a} } , $e)
+ }
+ inst len :: 0 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: if GBL.DSPTYPE == 62 {"0x%08x"} else {"0x%04x"}
+ prop Style :: 0x08
+ prop Label :: "len"
+ prop JSName :: "len"
+ prop Visible :: 1
+ prop Writable :: (self.memWritable)
+ prop NoGen :: 0
+ prop Set :: ($e = "ok", $a = self.len, self.len = $1, if (MEM.CALLBACKOBJ != nil) {$e = MEM.CALLBACKOBJ.call(self), if ($e != "ok") {self.len = $a} } , "ok")
+ }
+ inst page :: = (if GBL.DSPTYPE == 62 {-1} else {if (GBL.DSPTYPE == 55 || GBL.DSPTYPE == 28) {(if self.space == "code" {0} else {if self.space == "data" {1} else {if self.space == "io" {2} else {0}}})} else {if self.space == "code" {0} else {if self.space == "data" {1} else {if self.space == "io" {2} else {3}}}}}) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst iAllocHeap :: if MEM.NOHEAPS == 1 {0} else {1} {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "create a heap in this memory"
+ prop JSName :: "createHeap"
+ prop Visible :: 1
+ prop Writable :: (self.space == "data" || self.space == "code/data") && (MEM.NOHEAPS == 0) && self.memWritable
+ prop NoGen :: 0
+ prop Set :: ($a = "ok", if ($1 == 0 && self.iReqHeapCount > 0) {self.error("This heap is used by one or more of: segment for DSP/BIOS objects, segment for malloc()/free(), TSK default stack segment")} else {if ($1 == 0) {self.iUserHeapId = 0, self.iHeapId = @segment_name} , self.iAllocHeap = $1, MEM.gDirty = 1, $a})
+ }
+ inst iHeapSize :: 0x8000 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: if GBL.DSPTYPE == 62 {"0x%08x"} else {"0x%04x"}
+ prop Style :: 0x02
+ prop Label :: "heap size"
+ prop JSName :: "heapSize"
+ prop Visible :: 1
+ prop Writable :: (self.iAllocHeap) && (self.iIsModifiable) && (MEM.NOHEAPS == 0)
+ prop Set :: (self.iHeapSize = $1, "ok")
+ prop NoGen :: 1
+ }
+ inst iSegZero :: = MEM.SEGZERO
+ inst iUserHeapId :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "enter a user defined heap identifier label"
+ prop JSName :: "enableHeapLabel"
+ prop Set :: (if ($1 == 0) {self.iHeapId = @segment_name} , self.iUserHeapId = $1, "ok")
+ prop Visible :: 1
+ prop Writable :: (self.iAllocHeap) && (self.iIsModifiable) && (self.NOHEAPS == 0)
+ prop NoGen :: 1
+ }
+ inst iHeapId :: @segment_name {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "heap identifier label"
+ prop JSName :: "heapLabel"
+ prop Set :: ($e = self.checkHeapId($1), if ($e == "ok") {self.iHeapId = $1} , $e)
+ prop Writable :: (self.iAllocHeap) && (self.iIsModifiable) && (self.NOHEAPS == 0) && (self.iUserHeapId)
+ prop Visible :: 1
+ prop NoGen :: 0
+ }
+ inst iReqHeapCount :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst space :: (if GBL.DSPTYPE == 55 {"code/data"} else {"data"}) {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: MEM._spaceEnum()
+ prop JSName :: "space"
+ prop Visible :: 1
+ prop Writable :: (self.memWritable)
+ prop NoGen :: 1
+ prop Set :: ($e = "ok", if ($1 != "data" && $1 != "code/data" && self.iAllocHeap == 1) {$e = self.error("Cannot select this space if a heap will be created")} else {$a = self.space, self.space = $1, if (MEM.CALLBACKOBJ != nil) {$e = MEM.CALLBACKOBJ.call(self), if ($e != "ok") {self.space = $a} } }, $e)
+ }
+ inst dynamicLoading :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Reserved for dynamic loading"
+ prop JSName :: "dynamicLoading"
+ prop Visible :: GBL.ENABLEDLL
+ prop Writable :: GBL.ENABLEDLL
+ prop NoGen :: 1
+ }
+ inst iIsModifiable :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+object MEM_NULL :: MEM {
+ param iComment :: "Place holder segment which allows user to disable heaps"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param base :: 0
+ param len :: 0
+ param iAllocHeap :: 1
+ param iHeapSize :: 32768
+ param iUserHeapId :: 0
+ param iHeapId :: @segment_name
+ param iReqHeapCount :: 1
+ param space :: "data"
+ param dynamicLoading :: 0
+ param iIsModifiable :: 1
+}
+
+type OBJ {
+ isa ObjectMgr
+ prop name :: "OBJ"
+ prop Visible :: 0
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _objMemDesc, _memSeg, _placement"} )
+ prop _objMemDesc :: ("%8t .obj: {}")
+ prop _memSeg :: MEM.CFGOBJSEG
+ prop _placement :: (0x7fffffff / 2)
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+type BUF {
+ isa ObjectMgr
+ prop name :: "BUF"
+ prop Label :: "BUF - Buffer Manager"
+ prop IsContainedIn :: SYSTEM
+ prop GlobalIcon :: 199
+ prop InstanceIcon :: 200
+ prop InstanceHelpTopic :: (421)
+ prop GlobalHelpTopic :: (321)
+ prop InstancePropertyPage :: ("{B7240DE8-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop GlobalPropertyPage :: ("{B7240DE9-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop maxObjs :: (32767)
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _globalAllocDesc, _memSeg, _placement"} )
+ prop _globalAllocDesc :: ("%8t.buf:{}")
+ prop _placement :: (0x7fffffff / 2)
+ prop _memSeg :: self.OBJMEMSEG
+ prop AllocInst :: ("1\0, _instAllocDesc, _instMemSeg, _placement")
+ prop _instAllocDesc :: ("%8t .%0s$data: align = 0x%1x {%12t\n %0s$databeg = .;\n .+= %2d; %8t\n }\0, _objAlign, _buflength")
+ prop _objAlign :: self.align
+ prop _instMemSeg :: self.bufseg
+ prop _buflength :: (self.postalignsize * self.bufcount)
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"buf.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far BUF_Obj %0r;\n\0"} else {"extern BUF_Obj %0r;\n\0"})
+ prop objectSize :: (if (GBL.DSPTYPE == 62) {$a = ((7 + 3) * 4)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 1) {$a = ((7 + 4) * 4)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 0) {$a = ((7 + 3) * 4)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") {$a = (12 + 6)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE") {$a = (12 + 6)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL") {$a = (7 + 4)} , if (GBL.DSPTYPE == 28) {$a = (12 + 6)} , $a)
+ prop dataSize :: ($d = 0, scan ($i; BUF) {if ($i.IsConfObj()) {$d += $i.len} , $d += BUF.objectSize}, $d)
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global ENABLED :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Compile in logging"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst bufseg :: self.OBJMEMSEG {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Memory segment for buffer pool"
+ prop JSName :: "bufSeg"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst bufcount :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Buffer count"
+ prop JSName :: "bufCount"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (self.bufcount = $1, self.postalignsize = (self.size + (self.align - 1)) & ~(self.align - 1), self.len = $1 * self.postalignsize, "ok")
+ }
+ inst size :: 8 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Buffer size (MADUs)"
+ prop JSName :: "size"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (if ($1 < 8) {self.error("Size should be atleast 8 bytes")} else {self.size = $1, self.postalignsize = ($1 + (self.align - 1)) & ~(self.align - 1), self.len = self.postalignsize * self.bufcount, "ok"})
+ }
+ inst align :: 4 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Buffer alignment(Power of 2)"
+ prop JSName :: "align"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (if ($1 < 4) {self.error("Alignment should be atleast 4 ")} else {self.align = $1, self.postalignsize = (self.size + ($1 - 1)) & ~($1 - 1), self.len = self.postalignsize * self.bufcount, "ok"})
+ }
+ inst len :: self.size {
+ prop Label :: "Buffer pool length (MADUs)"
+ prop JSName :: "len"
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst postalignsize :: self.size {
+ prop Label :: "Buffer size after alignment (MADUs)"
+ prop JSName :: "postalignsize"
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+}
+
+type POOL {
+ isa Module
+ prop Visible :: 1
+ prop name :: "POOL"
+ prop Label :: "POOL - Allocator Manager"
+ prop IsConfMod :: self.USEPOOL
+ prop IsContainedIn :: SYSTEM
+ prop GlobalIcon :: 199
+ prop InstanceIcon :: 200
+ prop GlobalHelpTopic :: (324)
+ prop InstanceHelpTopic :: (424)
+ prop InstancePropertyPage :: ("{473C4A62-B1A8-11d0-9885-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{473C4A63-B1A8-11d0-9885-0020AFEE33C6}")
+ prop DependsOn :: "MEM,BUF"
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global USEPOOL :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable Allocator Manager"
+ prop JSName :: "ENABLEPOOL"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+}
+
+type CLK {
+ isa ObjectMgr
+ prop name :: "CLK"
+ prop Label :: "CLK - Clock Manager"
+ prop IsContainedIn :: SCH
+ prop IsConfMod :: 1
+ prop GlobalIcon :: 103
+ prop InstanceIcon :: 104
+ prop InstanceHelpTopic :: (202)
+ prop GlobalHelpTopic :: (102)
+ prop InstancePropertyPage :: ("{EEB2AB41-51E3-11d0-A61D-0000C070F3E9}")
+ prop GlobalPropertyPage :: ("{EEB2AB40-51E3-11d0-A61D-0000C070F3E9}")
+ prop objectSize :: ($a = (1 * 4), $a)
+ prop GenLinkPrologue :: ("SECTIONS {%4t\n.%1L: {\n%8t \n CLK_F_gethtime = %5s;\n %4S \n%4t} > %3s, RUN_START(%1U_A_TABBEG) \0, name, _objSize, _memSeg, _linkString, clkFxn, _clkStartFxn")
+ prop _clkStartFxn :: if (GBL.SUPPORTCSL && self.USETIMER) {@_CLK_start6x} else {@FXN_F_nop}
+ prop GenLinkEpilogue :: ("%0t}\n_CLK_PRD = CLK_PRD;\n_CLK_COUNTSPMS = CLK_COUNTSPMS;\n_CLK_REGS = CLK_REGS;\n_CLK_USETIMER = CLK_USETIMER;\n_CLK_TIMERNUM = CLK_TIMERNUM;\n_CLK_TDDR = CLK_TDDR;\n\0")
+ prop _linkString :: if self.gNumOf > 0 {"*(.%1L)"} else {"/* no CLK objs */"}
+ prop _memSeg :: CLK.OBJMEMSEG
+ prop _objSize :: self.objectSize()
+ prop clkFxn :: if (self.USETIMER == 1) {self.CLKFXN} else {@FXN_F_zero}
+ prop maxObjs :: (32767)
+ prop SortByField :: "iPri"
+ prop SortGroups :: 1
+ prop localInit :: (if (GBL.CALLBACKOBJ != CLK) {CLK.gGBLChain = GBL.CALLBACKOBJ, GBL.CALLBACKOBJ = CLK} )
+ prop dataSize :: (self.objectSize() * (CLK.gNumOf + 1))
+ prop localCanCreate :: (if self.USETIMER {"ok"} else {self.error("The CLK Manager must be enabled before inserting a CLK")})
+ prop localCreate :: (CLK.HOOKFXN = @HWI_F_dispatch, self.seizeHwi(self.WHICHHWI), "ok")
+ prop localDelete :: (if (self.gNumOf == 1) {if (GBL.CALLMODEL == "far") {CLK.HOOKFXN = @CLK_F_frete, self.seizeHwi(self.WHICHHWI)} else {CLK.HOOKFXN = @CLK_F_rete, self.seizeHwi(self.WHICHHWI)}} , "ok")
+ prop adjustPrd :: (if GBL.DSPTYPE == 62 {0} else {1})
+ prop seizeHwi :: (if ($1.client == "USER" && $1 == HWI_UNUSED) {self.error("Interrupt not mapped for selected timer.")} else {if ($1.client == "USER" && $1.function != @HWI_unused) {self.error("Interrupt mapped to selected timer is already in use.")} else {if ($1.client == "CSL") {self.error("Interrupt mapped to selected timer is already in use by CSL.")} else {$1.function = @CLK_F_isr, $1.client = "CLK", $1.iEventId = $1.iSource.iIntrSelectNum, $1.iUseDispatcher = (if CLK.HOOKFXN == @HWI_F_dispatch {1} else {0}), $1.iArg = (if $1.iUseDispatcher == 1 {@CLK_A_TABBEG} else {0}), HWI.gDirty = 1, "ok"}}})
+ prop releaseHwi :: ($1.function = @HWI_unused, $1.client = "USER", $1.iUseDispatcher = 0, $1.iArg = 0, HWI.gDirty = 1, "ok")
+ prop seizeTimer :: (if ($1 == "Timer 0") {self.WHICHTIMER = "Timer 0", self.WHICHHWI = Timer_0.iHwi, self.REGS = 0x01000, self.TIMERNUM = 0, self.TIMERIMR = 0x0, self.TIMERIFR = 0x1, self.INTBIT = 4, self.TIMERIMRMASK = self.WHICHHWI.Ier0Mask, self.IMR0TINTMASK = self.WHICHHWI.Ier0Mask, self.IMR1TINTMASK = 0x0, self.setMicroseconds(self.MICROSECONDS)} else {if ($1 == "Timer 1") {self.WHICHTIMER = "Timer 1", self.WHICHHWI = Timer_1.iHwi, self.REGS = 0x2400, self.TIMERNUM = 1, self.TIMERIMR = 0x45, self.TIMERIFR = 0x46, self.INTBIT = 6, self.TIMERIMRMASK = self.WHICHHWI.Ier1Mask, self.IMR0TINTMASK = 0x0, self.IMR1TINTMASK = self.WHICHHWI.Ier1Mask, self.setMicroseconds(self.MICROSECONDS)} else {if ($1 == "Timer 2") {self.WHICHTIMER = "Timer 2", self.WHICHHWI = Timer_2.iHwi, self.REGS = 0x4000, self.TIMERNUM = 2, self.TIMERIMR = 0x0, self.TIMERIFR = 0x1, self.INTBIT = 11, self.TIMERIMRMASK = self.WHICHHWI.Ier0Mask, self.IMR0TINTMASK = self.WHICHHWI.Ier0Mask, self.IMR1TINTMASK = 0x0, self.setMicroseconds(self.MICROSECONDS)} }}, "ok")
+ prop setMicroseconds :: ($a = if FIXTDDR == 1 {self.TDDR} else {0}, $b = 0xffffffff, $c = (float($a) + 1.0) * ((float($b) + self.adjustPrd) / (GBL.MIPS / 4)), if ($1 < $c && $1 > 0.1) {if (self.FIXTDDR == 0) {self.TDDR = int((1.0 * $1 * GBL.MIPS / 4) / (float($b) + self.adjustPrd))} , self.PRD = int((1.0 * $1 * GBL.MIPS) / (4 * (self.TDDR + 1.0))) - self.adjustPrd, self.MICROSECONDS = ((float((self.PRD)) + CLK.adjustPrd) * ((self.TDDR) + 1.0) * 4 / GBL.MIPS), if (self.CALLBACKOBJ != nil) {self.CALLBACKOBJ.call()} , "ok"} else {self.error("The on-chip timer does not have enough range to support this combination of DSP MIPS and Microseconds/Int")})
+ prop call :: ($a = ((float((CLK.PRD)) + CLK.adjustPrd) * ((CLK.TDDR) + 1.0) * 4 / GBL.MIPS), $b = CLK.MICROSECONDS, $e = "ok", if (($e = self.setMicroseconds(CLK.MICROSECONDS)) == "ok") {if (CLK.gGBLChain != nil) {$e = CLK.gGBLChain.call()} , if ($e != "ok") {self.setMicroseconds($b), self.error($e)} else {"ok"}} else {$e})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gGBLChain :: nil {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: self.USETIMER
+ prop NoGen :: 1
+ }
+ global WHICHHWI :: HWI_INT14 {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: HWI
+ prop Label :: "CPU Interrupt"
+ prop Visible :: 1
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global INTBIT :: = self.WHICHHWI.iIntrEnableMask
+ global WHICHTIMER :: "Timer 0" {
+ prop Label :: "Timer Selection"
+ prop JSName :: "TIMERSELECT"
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "Timer 0,Timer 1"
+ prop Visible :: 1
+ prop Writable :: self.USETIMER
+ prop NoGen :: 1
+ prop Set :: (if (self.WHICHTIMER != $1) {if (self.USETIMER == 0) {$e = "ok"} else {if ($1 == "Timer 0") {$a = Timer_0.iHwi} else {if ($1 == "Timer 1") {$a = Timer_1.iHwi} else {$a = Timer_2.iHwi}}, $e = self.seizeHwi($a)}, if ($e == "ok") {self.releaseHwi(self.WHICHHWI), if ($1 == "Timer 0") {self.TIMERNUM = 0, self.WHICHHWI = Timer_0.iHwi} else {if ($1 == "Timer 1") {self.TIMERNUM = 1, self.WHICHHWI = Timer_1.iHwi} else {self.TIMERNUM = 2, self.WHICHHWI = Timer_2.iHwi}}, self.WHICHTIMER = $1, self.HOOKFXN = if self.gNumOf > 0 {@HWI_F_dispatch} else {(if GBL.CALLMODEL == "far" {@CLK_F_frete} else {@CLK_F_rete})}, self.seizeHwi(self.WHICHHWI)} , $e} )
+ }
+ global REGS :: = if self.WHICHTIMER == "Timer 0" {self.TIMER0BASE} else {if self.WHICHTIMER == "Timer 1" {self.TIMER1BASE} else {self.TIMER2BASE}} {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Visible :: 0
+ prop Writable :: 1
+ }
+ global TIMER0BASE :: 26476544 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Writable :: 1
+ prop Visible :: 0
+ prop JSName :: "TIMER0BASE"
+ prop NoGen :: 1
+ }
+ global TIMER1BASE :: 26738688 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Writable :: 1
+ prop Visible :: 0
+ prop JSName :: "TIMER1BASE"
+ prop NoGen :: 1
+ }
+ global TIMER2BASE :: 28049408 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Writable :: 1
+ prop Visible :: 0
+ prop JSName :: "TIMER2BASE"
+ prop NoGen :: 1
+ }
+ global TIMERNUM :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop NoGen :: 0
+ }
+ global USETIMER :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable CLK Manager"
+ prop JSName :: "ENABLECLK"
+ prop Visible :: 1
+ prop Writable :: if self.gNumOf > 0 {0} else {1}
+ prop NoGen :: 0
+ prop Set :: (if ($1 == 1 && self.USETIMER == 0) {if (($e = self.seizeHwi(self.WHICHHWI)) == "ok") {self.USETIMER = 1, self.TIMEFXN = if CLK.HIRES {CLK.clkFxn()} else {@CLK_F_getltime}, self.HOOKFXN = if GBL.CALLMODEL == "far" {@CLK_F_frete} else {@CLK_F_rete}, self.seizeHwi(self.WHICHHWI), GlobalStatus.gDirty = 1, if (GlobalStatus.MinStackSize >= MEM.STACKSIZE) {self.releaseHwi(self.WHICHHWI), self.TIMEFXN = @FXN_F_zero, self.HOOKFXN = @FXN_F_nop, self.USETIMER = 0, GlobalStatus.gDirty = 1, self.error("Current stack size inadequate to enable CLK")} else {if (GBL.ENABLEINST == 1) {IDL_busyObj.Create("IDL"), IDL.USEIDLBUSYOBJ = 1, IDL_cpuLoad.Create("IDL"), IDL.AUTOCALCULATE = GBL.OLDAUTOCALCULATE} , $e}} else {$e}} else {if ($1 == 0 && self.USETIMER == 1) {self.releaseHwi(self.WHICHHWI), self.TIMEFXN = @FXN_F_zero, self.HOOKFXN = @FXN_F_nop, self.USETIMER = 0, if (GBL.ENABLEINST == 1) {IDL_busyObj.Delete("IDL"), IDL.USEIDLBUSYOBJ = 0, IDL_cpuLoad.Delete("IDL"), GBL.OLDAUTOCALCULATE = IDL.AUTOCALCULATE, IDL.AUTOCALCULATE = 0} , "ok"} else {"ok"}})
+ }
+ global HIRES :: = 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Use high resolution time for internal timings"
+ prop JSName :: "HIRESTIME"
+ prop Visible :: 1
+ prop Writable :: self.USETIMER
+ prop NoGen :: 1
+ prop Set :: (if (CLK.USETIMER) {CLK.HIRES = $1, if (CLK.USETIMER) {CLK.TIMEFXN = if CLK.HIRES {CLK.clkFxn()} else {@CLK_F_getltime}} , "ok"} else {self.error("CLK Manager must be enabled in order to get high resolution timings.")})
+ }
+ global INSTRPERCLK :: 4 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global MICROSECONDS :: 1000.000000 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: 0x04
+ prop Format :: "%.4f"
+ prop Label :: "Microseconds/Int"
+ prop JSName :: "MICROSECONDS"
+ prop Set :: (self.setMicroseconds($1))
+ prop Visible :: 1
+ prop Writable :: if ((CLK.PROGTIMREGS != 0) | (self.USETIMER == 0)) {0} else {1}
+ prop NoGen :: 1
+ }
+ global MICROSECS :: = int(round(self.MICROSECONDS)) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global PROGTIMREGS :: = 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Directly configure on-chip timer registers"
+ prop JSName :: "CONFIGURETIMER"
+ prop Visible :: 1
+ prop Writable :: self.USETIMER
+ prop NoGen :: 1
+ }
+ global TCR :: = 0x20 | CLK.TDDR {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01 | 0x02
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global FIXTDDR :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Fix TDDR"
+ prop JSName :: "FIXTDDR"
+ prop Visible :: (GBL.DSPTYPE != 62)
+ prop Writable :: CLK.PROGTIMREGS && (GBL.DSPTYPE != 62)
+ prop NoGen :: 1
+ }
+ global TDDR :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Label :: "TDDR Register"
+ prop JSName :: "TCRTDDR"
+ prop Set :: (if ((GBL.DSPTYPE != 62) && ($1 > 0)) {self.error("The on-chip timer does not have enough range to support this value, maximum is 15.")} else {CLK.TDDR = $1, CLK.MICROSECONDS = ((float((CLK.PRD)) + CLK.adjustPrd) * ((CLK.TDDR) + 1.0) * 4 / GBL.MIPS), if (CLK.CALLBACKOBJ != nil) {CLK.CALLBACKOBJ.call()} , "ok"})
+ prop Visible :: GBL.DSPTYPE != 62
+ prop Writable :: CLK.PROGTIMREGS && GBL.DSPTYPE != 62
+ prop NoGen :: 0
+ }
+ global TDDRHIGH :: = ((self.TDDR & 0xffff0000) >> 16) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ }
+ global PRD :: 56250 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Label :: if (GBL.CLKTYPE == 700) {"Compare0 Register"} else {"PRD Register"}
+ prop JSName :: "PRD"
+ prop Set :: (CLK.PRD = $1, CLK.MICROSECONDS = ((float((CLK.PRD)) + CLK.adjustPrd) * ((CLK.TDDR) + 1.0) * 4 / GBL.MIPS), if (CLK.CALLBACKOBJ != nil) {CLK.CALLBACKOBJ.call()} , "ok")
+ prop Visible :: 1
+ prop Writable :: if ((self.PROGTIMREGS) && (self.USETIMER)) {1} else {0}
+ prop NoGen :: 0
+ }
+ global PRDHIGH :: = ((self.PRD & 0xffff0000) >> 16) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ }
+ global COUNTSPMS :: = int(round(GBL.MIPS * 1000.0 / (CLK.TDDR + 1) / 4)) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ }
+ global COUNTSPMSHIGH :: = ((self.COUNTSPMS & 0xffff0000) >> 16) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ }
+ global INSTRUCTIONS :: = (1.0 * (float(CLK.PRD) + CLK.adjustPrd) * (CLK.TDDR + 1.0) * 4) {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: 0x04
+ prop Format :: "%.0f"
+ prop Label :: "Instructions/Int"
+ prop Visible :: 1
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global TIMEFXN :: = CLK.clkFxn() {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global HOOKFXN :: @HWI_F_dispatch {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global CLKFXN :: = if (CLK.PRD == 0xffffffff) {@CLK_F_getfhtime} else {@CLK_F_getshtime} {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CALLBACKOBJ :: PRD {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CALDIV :: = 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global CALMULT :: = 4 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global HTIMEDIV :: = 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global HTIMEMULT :: = if GBL.DSPSUBTYPE == 6499 {1} else {((self.TDDR + 1) * 4)} {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global LTIMEDIV :: = 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global LTIMEMULT :: = ((self.TDDR + 1) * (self.PRD + self.adjustPrd) * (4)) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global HTIMEPERLTIME :: = if GBL.DSPSUBTYPE == 6499 {int(round(GBL.MIPS * self.MICROSECONDS))} else {(self.PRD + CLK.adjustPrd)} {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst function :: @FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "function"
+ prop JSName :: "fxn"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ }
+ inst Order :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "order"
+ prop NoGen :: 1
+ prop Writable :: 1
+ }
+ inst iPri :: 0 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop NoGen :: 1
+ }
+}
+
+type PRD {
+ isa ObjectMgr
+ prop name :: "PRD"
+ prop Label :: "PRD - Periodic Function Manager"
+ prop IsContainedIn :: SCH
+ prop IsConfMod :: 1
+ prop GlobalIcon :: 119
+ prop InstanceIcon :: 120
+ prop InstanceHelpTopic :: (210)
+ prop GlobalHelpTopic :: (110)
+ prop InstancePropertyPage :: ("{B7240DE0-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop GlobalPropertyPage :: ("{B7240DE1-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop STSGetMaxFmt :: ("%g ticks")
+ prop STSGetSumFmt :: (PRD.STSGetMaxFmt())
+ prop STSGetAvgFmt :: ("%.2f ticks")
+ prop GetPeriod :: self.period
+ prop IsOneShot :: if self.mode == "one-shot" {1} else {0}
+ prop objectSize :: (if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL") {$a = (10 * 4)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 0) {$a = (9 * 4)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 1) {$a = (12 * 4)} , if (GBL.DSPTYPE == 28 || (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") || (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE")) {$a = (12 * 4)} , if (GBL.DSPTYPE == 62) {$a = (8 * 4)} , $a)
+ prop GenLinkPrologue :: ("SECTIONS {%4t\n.prd: RUN_START(PRD_A_TABBEG), RUN_END(PRD_A_TABEND) {%4t\n} > %1s%2s\0, memSeg, pageString")
+ prop GenLinkEpilogue :: ("%0t}\nPRD_A_TABLEN = %1d;\n\0, numInst")
+ prop linkString :: if self.gNumOf > 0 {"*(.%1L)"} else {"/* no %1U objects */"}
+ prop pageString :: if GBL.DSPTYPE == 62 {""} else {if (GBL.DSPTYPE == 55 || GBL.DSPTYPE == 28) {(if PRD.OBJMEMSEG.space() == "code" {" PAGE 0"} else {if PRD.OBJMEMSEG.space() == "data" {" PAGE 1"} else {if PRD.OBJMEMSEG.space() == "io" {" PAGE 2"} else {" PAGE 0"}}})} else {" PAGE 1"}}
+ prop memSeg :: PRD.OBJMEMSEG
+ prop objSize :: if GBL.DSPTYPE == 55 {self.objectSize() * 2} else {self.objectSize()}
+ prop numInst :: (PRD.gNumOf)
+ prop dataSize :: (self.objectSize() * PRD.gNumOf)
+ prop localInit :: (if (CLK.CALLBACKOBJ != nil) {self.error("PRD initialization failure")} , CLK.CALLBACKOBJ = PRD, if (PRD.USECLK && PRD_clock.iIsUsed == 0) {PRD_clock.Create("PRD")} , if (PRD_clock.iIsUsed == 1) {if (self.gNumOf == 0) {if (TSK.USETSK == 1 && TSK.TSKTICK == "PRD") {PRD_clock.function = @PRD_F_tick} else {PRD_clock.function = @FXN_F_nop}} else {PRD_clock.function = @PRD_F_tick}} )
+ prop localCanCreate :: (if (GlobalStatus.MinStackSize >= MEM.STACKSIZE) {self.error(" System Stack Size too small")} else {self.myCreate("can")})
+ prop localCreate :: (STS.gNumEmbed += 1, if (($a = self.myCreate("do")) == "ok") {if (PRD_clock.iIsUsed == 1) {if (self.gNumOf == 0) {PRD_clock.function = @PRD_F_tick} } } , $a)
+ prop localCanDelete :: (self.myDelete("can"))
+ prop localDelete :: (STS.gNumEmbed -= 1, if (($a = self.myDelete("do")) == "ok") {if (self.gNumOf == 1) {if (PRD_clock.iIsUsed == 1) {if (TSK.USETSK == 1 && TSK.TSKTICK == "PRD") {PRD_clock.function = @PRD_F_tick} else {PRD_clock.function = @FXN_F_nop}} } } , $a)
+ prop maxObjs :: (32767)
+ prop myCreate :: (if (PRD_swi.function != @PRD_F_swi) {PRD_swi.function = @PRD_F_swi} , if (PRD_swi.iIsUsed) {"ok"} else {if (SWI.CanCreate() == "ok") {if ($1 == "do") {if (KNL_swi.iIsUsed == 1 && PRD_swi.pri == 0) {PRD_swi.pri = 1} , PRD_swi.Create("PRD")} else {"ok"}} else {self.error("Can't create an SWI for PRD (try deleting a SWI)")}})
+ prop myDelete :: (if (PRD_swi.function != @PRD_F_swi) {PRD_swi.function = @PRD_F_swi} , if (self.gNumOf == 1) {if ($1 == "do") {PRD_swi.Delete("PRD")} else {"ok"}} else {"ok"})
+ prop call :: (if (CLK.USETIMER != 0) {PRD.MICROSECONDS = CLK.MICROSECONDS} , PRD.CALLBACKOBJ.call())
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"prd.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far PRD_Obj %0r;\n\0"} else {"extern PRD_Obj %0r;\n\0"})
+ prop SortByField :: "iPri"
+ prop SortGroups :: 1
+ prop DEFAULT_THOOKFXN :: @_KNL_tick
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global USECLK :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Use CLK Manager to drive PRD"
+ prop JSName :: "USECLK"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop Set :: (if ($1 == 1 && self.USECLK == 0) {if (CLK.USETIMER == 0) {self.error("In order to drive periodic functions, the CLK Manager must be enabled")} else {self.USECLK = 1, self.MICROSECONDS = CLK.MICROSECONDS, CLK.CALLBACKOBJ = PRD, PRD_clock.Create("PRD"), GlobalStatus.gDirty = 1, if (GlobalStatus.MinStackSize >= MEM.STACKSIZE) {self.USECLK = 0, self.MICROSECONDS = 0.0, CLK.CALLBACKOBJ = nil, PRD_clock.Delete("PRD"), self.error("Current Stack size inadequate to enable this option")} else {"ok"}}} else {if ($1 == 0 && self.USECLK == 1) {self.USECLK = 0, self.MICROSECONDS = 0.0, CLK.CALLBACKOBJ = nil, PRD_clock.Delete("PRD")} , "ok"})
+ prop NoGen :: 1
+ }
+ global MICROSECONDS :: 1000.000000 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: 0x04
+ prop Format :: "%.1f"
+ prop Label :: "Microseconds/Tick"
+ prop JSName :: "MICROSECONDS"
+ prop Visible :: 1
+ prop Writable :: self.USECLK == 0
+ prop NoGen :: 1
+ }
+ global SCALAR :: = ($d = 2, $f = 0, while ($d <= 0x4000 && $f == 0) {scan ($i; PRD) {if ((($i.period / $d) * $d != $i.period)) || ($i.mode == "one-shot") {$f = 1} }, if ($f == 0) {$d = 2 * $d} }, $d / 2) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global THOOKFXN :: @_KNL_tick {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "System Tick Hook Function"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global CALLBACKOBJ :: STS {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst period :: 0x7fff {
+ prop Label :: "period (ticks)"
+ prop JSName :: "period"
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01 | 0x02
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (if (($1 > 0) && ($1 < 0x8000)) {self.period = $1, self.gDirty = 1, "ok"} else {self.error("Periodic function periods must be greater than 0 and less than 0x8000")})
+ }
+ inst mode :: "continuous" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "continuous,one-shot"
+ prop JSName :: "mode"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst function :: @FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "fxn"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst arg0 :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "arg0"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst arg1 :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "arg1"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst milliseconds :: = ((self.period * PRD.MICROSECONDS) / 1000.0) {
+ prop Label :: "period (ms)"
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: 0x04
+ prop Format :: "%.1f"
+ prop Visible :: 1
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst Order :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "order"
+ prop NoGen :: 0
+ prop Writable :: 1
+ }
+ inst iPri :: 0 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop NoGen :: 1
+ }
+ inst filter :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "filter"
+ prop NoGen :: 0
+ }
+ inst maxformat :: "%g ticks" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "maxformat"
+ prop NoGen :: 0
+ }
+ inst sumformat :: "%g ticks" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "sumformat"
+ prop NoGen :: 0
+ }
+ inst avgformat :: "%.2f ticks" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "avgformat"
+ prop NoGen :: 0
+ }
+ inst unittype :: 2 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "unittype"
+ prop NoGen :: 0
+ }
+}
+
+object PRD_swi :: SWI {
+ param iComment :: "This Software ISR executes all configured PRD functions"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "PRD"
+ param iDelMsg :: "This object is automatically deleted when all PRD objects are deleted"
+ param function :: @PRD_F_swi
+ param pri :: 1
+ param mailbox :: 0
+ param arg0 :: 0
+ param arg1 :: 0
+ param dorta :: 1
+ param Order :: 0
+ param filter :: 2
+ param maxformat :: "%g inst"
+ param sumformat :: "%g inst"
+ param avgformat :: "%.2f inst"
+ param filtmaxmult :: 1
+ param filtsummult :: 1
+ param unittype :: 0
+}
+
+object PRD_clock :: CLK {
+ param iComment :: "This clock function calls PRD_tick from within the on-chip timer ISR"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "PRD"
+ param iDelMsg :: "This object is automatically deleted by disabling the 'Use CLK Manager to drive PRD' option of PRD"
+ param function :: @PRD_F_tick
+ param Order :: 0
+ param iPri :: 0
+}
+
+type RTDX {
+ isa ObjectMgr
+ prop Label :: "RTDX - Real-Time Data Exchange Settings"
+ prop name :: "RTDX"
+ prop IsConfMod :: self.USERTDX
+ prop IsContainedIn :: IOF
+ prop GlobalIcon :: 145
+ prop InstanceIcon :: 146
+ prop GlobalHelpTopic :: (113)
+ prop InstanceHelpTopic :: (213)
+ prop InstancePropertyPage :: ("{f80273c0-3838-11d2-a32c-006097656921}")
+ prop GlobalPropertyPage :: ("{050a0600-3839-11d2-a32c-006097656921}")
+ prop AllocType :: (if self.USERTDX {"2\0, _rtdxDataAllocDesc, _rtdxDataSeg, _placement,
+ _rtdxTextAllocDesc, _rtdxTextSeg, _placement"} else {""})
+ prop _rtdxDataAllocDesc :: (" .%1L_data: {} \0, name")
+ prop _rtdxTextAllocDesc :: (if (MEM.ENABLELOADSEG == 1) {if (MEM.RTDXTEXTMEMSEG == MEM.LOADRTDXTEXTMEMSEG) {" .%1L_text: {} \0, name"} else {" .%1L_text: {} load > %2s, run \0, name, _loadRtdxTextMemSeg"}} else {" .%1L_text: {} \0, name"})
+ prop _rtdxDataSeg :: RTDX.DATAMEMSEG
+ prop _rtdxTextSeg :: MEM.RTDXTEXTMEMSEG
+ prop _loadRtdxTextMemSeg :: MEM.LOADRTDXTEXTMEMSEG
+ prop _placement :: (0x7fffffff / 2)
+ prop _objSize :: RTDX.BUFMEMSIZE
+ prop GenLinkPrologue :: (if self.USERTDX {"_RTDX_interrupt_mask = 0x%1x;\n\0, _interruptMask"} else {""})
+ prop _interruptMask :: RTDX.MASK
+ prop cGen :: 1
+ prop noObjectAlias :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"rtdx.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {if (self.iChannelMode == "output") {"extern far RTDX_outputChannel %0r;\n\0"} else {"extern far RTDX_inputChannel %0r;\n\0"}} else {if (self.iChannelMode == "output") {"extern RTDX_outputChannel %0r;\n\0"} else {"extern RTDX_inputChannel %0r;\n\0"}})
+ prop cGenCInst :: (if (self.iChannelMode == "output") {"RTDX_CreateOutputChannel(%0r);\n\0"} else {"RTDX_CreateInputChannel(%0r);\n\0"})
+ prop dataSize :: ($d = 0, if (self.USERTDX) {$d = RTDX.BUFMEMSIZE} else {$d = 0}, scan ($a; RTDX) {if ($a.iChannelMode == "output") {$d += 1} else {$d += 3}}, $d)
+ prop localCanCreate :: ($e = "ok", if (RTDX.USERTDX != 1) {$e = self.error("RTDX manager not enabled")} , $e)
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global USERTDX :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable Real-Time Data Exchange (RTDX)"
+ prop JSName :: "ENABLERTDX"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (if ($1 == 0) {if (HST.LNKTYPE == "RTDX") {self.error("RTDX is being used by HST; select a different host link type before attempting to disable RTDX")} else {if (self.gNumOf > 0) {self.error("Cannot disable RTDX until all RTDX objects are deleted.")} else {GlobalStatus.gDirty = 1, self.USERTDX = $1, if (RTDX.CALLBACKOBJ != nil) {RTDX.CALLBACKOBJ.call()} , "ok"}}} else {GlobalStatus.gDirty = 1, self.USERTDX = $1, if (RTDX.CALLBACKOBJ != nil) {RTDX.CALLBACKOBJ.call()} , "ok"})
+ }
+ global USERTEXECUTION :: = 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable Real-Time Execution Control"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global RTDXTYPE :: "JTAG" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "JTAG,HSRTDX,Simulator"
+ prop Label :: "RTDX Mode"
+ prop JSName :: "MODE"
+ prop Visible :: 1
+ prop Writable :: self.USERTDX
+ prop NoGen :: 0
+ prop Set :: (self.RTDXTYPE = $1, if (RTDX.CALLBACKOBJ != nil) {RTDX.CALLBACKOBJ.call()} , "ok")
+ }
+ global DATAMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "RTDX Data Segment (.rtdx_data)"
+ prop JSName :: "RTDXDATASEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global BUFMEMSIZE :: = (256 + 2) * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Label :: "RTDX Buffer Size (MAUs)"
+ prop JSName :: "BUFSIZE"
+ prop Visible :: 1
+ prop Writable :: self.USERTDX
+ prop NoGen :: 0
+ prop Set :: (if (HST.RTDX == 0) {self.BUFMEMSIZE = $1, GlobalStatus.gDirty = 1, "ok"} else {if ($1 < (HST.MAXFRAMESET + 3) * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE)) {self.error("size (in MAUs) must be at least: (largest configured HST channel framesize in words + 3) * (MAUs per word)")} else {self.BUFMEMSIZE = $1, GlobalStatus.gDirty = 1, if (HST.LNKTYPE == "RTDX") {HST.MAXFRAMEALLOWED = (self.BUFMEMSIZE / (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE)) - 3, "ok"} else {"ok"}}})
+ }
+ global TEXTMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.codeMember($1)
+ prop Label :: "RTDX Text Segment (.rtdx_text)"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global MASK :: 0 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: "0x%08x"
+ prop Style :: 0x02
+ prop Label :: "RTDX Interrupt Mask"
+ prop JSName :: "INTERRUPTMASK"
+ prop Visible :: 1
+ prop Writable :: self.USERTDX
+ prop NoGen :: 1
+ prop Set :: (self.MASK = $1, "ok")
+ }
+ global CALLBACKOBJ :: HWI {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iChannelMode :: "output" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Channel Mode"
+ prop JSName :: "channelMode"
+ prop Enum :: "input,output"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (GlobalStatus.gDirty = 1, self.iChannelMode = $1, "ok")
+ }
+}
+
+type HST {
+ isa ObjectMgr
+ prop name :: "HST"
+ prop Label :: "HST - Host Channel Manager"
+ prop IsContainedIn :: IOF
+ prop DependsOn :: "HWI"
+ prop FileStream :: 1
+ prop GlobalIcon :: 107
+ prop InstanceIcon :: 108
+ prop GlobalHelpTopic :: (104)
+ prop InstanceHelpTopic :: (204)
+ prop maxObjs :: (GBL.DSPWORDSIZE)
+ prop dataSize :: ($b = 0, scan ($i; HST) {if ($i.IsConfObj()) {$b += (12 + $i.framesize) * $i.numframes + PIP.OBJSIZE + self.objectSize()} }, $b)
+ prop InstancePropertyPage :: ("{B7240DEA-AA51-11cf-9BFE-0000C0AC14C8}")
+ prop GlobalPropertyPage :: ("{B7240DEB-AA51-11cf-9BFE-0000C0AC14C8}")
+ prop localCreate :: (PIP.gNumEmbed += 1, if (self.gNumOf == 0) {(LNK_dataPump.Create("HST"))} , "ok")
+ prop localDelete :: (PIP.gNumEmbed -= 1, $b = 0, scan ($i; HST) {if ($i != self) {if ($i.IsConfObj()) {if ($i.framesize > $b) {$b = $i.framesize} } } }, self.MAXFRAMESET = $b, if (self.gNumOf == 1) {(LNK_dataPump.Delete("HST"))} , "ok")
+ prop GenLinkPrologue :: (if (self.LNKTYPE == "RTDX") {"_LNK_dspFrameReadyMask = LNK_dspFrameReadyMask; \n_LNK_dspFrameRequestMask = LNK_dspFrameRequestMask; \n_LNK_readDone = LNK_readDone; \n_LNK_readFail = LNK_readFail; \n_LNK_readPend = LNK_readPend; \n_LNK_writeFail = LNK_writeFail;"} )
+ prop AllocType :: ("2\0, _globalAllocDesc, _memSeg, _placement, _dsmAllocDesc, _dsmMemSeg, _placement")
+ prop _globalAllocDesc :: ("%8t .%1L: RUN_START(%1U_A_TABBEG), RUN_START(_%1U_A_TABBEG), RUN_END(%1U_A_TABEND), RUN_END(_%1U_A_TABEND) {%8t\n }\0, name")
+ prop objectSize :: (if (GBL.DSPTYPE == 28) {$a = (14 * 4)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") {$a = (12 * 4)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE") {$a = (12 * 4)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL") {$a = (10 * 4)} , if (GBL.DSPTYPE == 54 || GBL.DSPTYPE == 62) {$a = (7 * 4)} , $a)
+ prop _dsmAllocDesc :: ("%8t .dsm: {}")
+ prop _placement :: (0x7fffffff / 2)
+ prop AllocInst :: ("1\0, _instAllocDesc, _objMemSeg, _placement")
+ prop _instAllocDesc :: ("/* %0s buffer */\n.hst%2d: %3S\0, name, _objId, _alignString, _objAlign")
+ prop _alignString :: if self.bufalign > 1 {"align = 0x%4x {}"} else {""}
+ prop _objId :: self.iId
+ prop _objAlign :: self.bufalign
+ prop _objMemSeg :: self.bufseg
+ prop _linkString :: if (self.gNumOf + self.gNumEmbed) > 0 {"*(.%1L)"} else {"/* no %1U objects */"}
+ prop _memSeg :: HST.OBJMEMSEG
+ prop _dsmMemSeg :: HST.DSMBUFSEG
+ prop _objSize :: if GBL.DSPTYPE == 55 {(2 * self.objectSize())} else {self.objectSize()}
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"hst.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far HST_Obj %0r;\n\0"} else {"extern HST_Obj %0r;\n\0"})
+ prop modifiable :: ((if self.iDelUser == "USER" {1} else {0}))
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 3 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 2 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumEmbed :: 0 {
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global LNKTYPE :: "RTDX" {
+ prop Label :: "Host Link Type"
+ prop JSName :: "HOSTLINKTYPE"
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "RTDX,NONE"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: (if ($1 == "RTDX") {if (RTDX.USERTDX == 0) {self.error("RTDX module must be enabled before it can be used by HST")} else {if ((RTDX.BUFMEMSIZE / (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE)) - 2 < self.MAXFRAMESET) {self.error("RTDX buffer size too small for largest configured HST channel")} else {if (self.LNKTYPE == "NONE") {GlobalStatus.gDirty = 1, self.LNKTYPE = $1, $b = 0, scan ($i; HST) {if ($i.IsConfObj()) {if ($i.framesize > $b) {$b = $i.framesize} } }, self.MAXFRAMESET = $b, self.MAXFRAMEALLOWED = (RTDX.BUFMEMSIZE / (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE)) - 3, "ok"} else {self.LNKTYPE = $1, self.MAXFRAMEALLOWED = (RTDX.BUFMEMSIZE / (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE)) - 3, "ok"}}}} else {if ($1 == "Shared Memory") {if ((self.DSMMEMSIZE / 4) < self.MAXFRAMESET) {self.error("Shared memory buffer too small for largest configured HST channel")} else {if (self.LNKTYPE == "NONE") {GlobalStatus.gDirty = 1, self.LNKTYPE = $1, $b = 0, scan ($i; HST) {if ($i.IsConfObj()) {if ($i.framesize > $b) {$b = $i.framesize} } }, self.MAXFRAMESET = $b, self.MAXFRAMEALLOWED = self.DSMMEMSIZE / 4, "ok"} else {self.LNKTYPE = $1, self.MAXFRAMEALLOWED = self.DSMMEMSIZE / 4, "ok"}}} else {GlobalStatus.gDirty = 1, self.LNKTYPE = $1, "ok"}})
+ }
+ global RTDX :: = if self.LNKTYPE == "RTDX" {1} else {0} {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Use RTDX for host link"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global DSM :: = if self.LNKTYPE == "Shared Memory" {1} else {0} {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Use Shared Memory for host link"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global EVM54 :: = if self.LNKTYPE == "EVM54" {1} else {0} {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Use EVM54's I/O ports for host link"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global NONE :: = if self.LNKTYPE == "NONE" {1} else {0} {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "No host link"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global MAXFRAMESET :: 64 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Label :: "MAXFRAMESET"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global MAXFRAMEALLOWED :: 255 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Label :: "MAXFRAMEALLOWED"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global DSMBUFSEG :: = self.OBJMEMSEG {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Shared Memory Segment"
+ prop Visible :: 0
+ prop Writable :: self.DSM
+ prop NoGen :: 0
+ }
+ global DSMMEMSIZE :: = 1024 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01 | 0x02
+ prop Label :: "Shared Memory Frame Size (MAUs)"
+ prop Visible :: 0
+ prop Writable :: self.DSM
+ prop NoGen :: 0
+ prop Set :: (if ($1 < HST.MAXFRAMESET * 4) {self.error("size (in MAUs) must be at least: 4 * largest configured HST channel framesize (in words)")} else {self.DSMMEMSIZE = $1, GlobalStatus.gDirty = 1, if (self.LNKTYPE == "Shared Memory") {self.MAXFRAMEALLOWED = self.DSMMEMSIZE / 4, "ok"} else {"ok"}})
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst mode :: "output" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "mode"
+ prop Enum :: "input,output"
+ prop Visible :: 1
+ prop Writable :: self.modifiable()
+ prop NoGen :: 0
+ }
+ inst bufseg :: = self.OBJMEMSEG {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "bufseg"
+ prop JSName :: "bufSeg"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataNullMember($1)
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst bufalign :: 4 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01 | 0x02
+ prop JSName :: "bufAlign"
+ prop Visible :: 1
+ prop Writable :: self.modifiable()
+ prop NoGen :: 1
+ prop Set :: (if ($1 < 4) {self.error("Alignment must be greater than or equal to 4")} else {if (($1 % 2) != 0) {self.error("Alignment must be a power of 2")} else {$i = $1, while ((($i % 2) == 0) && ($i != 2)) {$i = $i / 2}, if (($i % 2) != 0) {self.error("Alignment must be a power of 2")} else {self.bufalign = $1, "ok"}}})
+ }
+ inst buf :: "<NULL>" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst framesize :: 0x80 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "framesize (words)"
+ prop JSName :: "frameSize"
+ prop Style :: 0x01 | 0x02
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (if ($1 < 1) {self.error("framesize must be >= 1.")} else {if (($1 > self.MAXFRAMEALLOWED) && ((self.RTDX == 1) || (self.DSM == 1))) {if (self.RTDX == 1) {self.error("size (in words) is limited to: (RTDX buffer size in MAUs) / (MAUs per word) - 3")} else {self.error("size (in words) is limited to: shared memory frame size (in MAUs)/4")}} else {self.framesize = $1, $b = 0, scan ($i; HST) {if ($i.IsConfObj()) {if ($i.framesize > $b) {$b = $i.framesize} } }, self.MAXFRAMESET = $b, GlobalStatus.gDirty = 1, "ok"}})
+ }
+ inst numframes :: 2 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop JSName :: "numFrames"
+ prop Visible :: 1
+ prop Writable :: self.modifiable()
+ prop NoGen :: 0
+ prop Set :: (if ($1 < 1) {self.error("Channels must contain at least 1 frame.")} else {GlobalStatus.gDirty = 1, self.numframes = $1, "ok"})
+ }
+ inst stsflg :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "statistics"
+ prop JSName :: "statistics"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst notify :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "notifyFxn"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "DHL" || self.iDelUser != "USER" {0} else {1})
+ prop NoGen :: 0
+ prop TabName :: "Notify Function"
+ }
+ inst arg0 :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "arg0"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "DHL" || self.iDelUser != "USER" {0} else {1})
+ prop NoGen :: 0
+ prop TabName :: "Notify Function"
+ }
+ inst arg1 :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "arg1"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "DHL" || self.iDelUser != "USER" {0} else {1})
+ prop NoGen :: 0
+ prop TabName :: "Notify Function"
+ }
+ inst lnk :: = if self.RTDX {"RTDX"} else {"NOTRTDX"} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "link type"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst iDHLAvailable :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Make this channel available for a new DHL device"
+ prop JSName :: "availableForDHL"
+ prop Set :: (if (($1 == 0) && (self.iDHLAvailable == 1)) {DHL.gChannelsAvailable--} else {if (($1 == 1) && (self.iDHLAvailable == 0)) {DHL.gChannelsAvailable++} }, self.iDHLAvailable = $1, "ok")
+ prop Writable :: self.modifiable()
+ prop Visible :: 1
+ prop NoGen :: 1
+ }
+ inst bufFrameAlign :: = self.bufalign {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+}
+
+object LNK_dataPump :: IDL {
+ param iComment :: "This object cannot be deleted"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "HST"
+ param iDelMsg :: "This object cannot be deleted"
+ param function :: @LNK_F_dataPump
+ param cycles :: 0
+ param calibration :: 1
+ param Order :: 0
+ param iPri :: 0
+}
+
+object RTA_dispatcher :: IDL {
+ param iComment :: "This object cannot be deleted"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "HST"
+ param iDelMsg :: "This object cannot be deleted"
+ param function :: @RTA_F_dispatch
+ param cycles :: 0
+ param calibration :: 1
+ param Order :: 0
+ param iPri :: 0
+}
+
+object RTA_fromHost :: HST {
+ param iComment :: "Used to access LOG and STS data"
+ param iIsUsed :: 1
+ param iId :: 1
+ param iDelUser :: "HST"
+ param iDelMsg :: "This object cannot be deleted"
+ param mode :: "input"
+ param bufseg :: IRAM
+ param bufalign :: 4
+ param buf :: "<NULL>"
+ param framesize :: 4
+ param numframes :: 1
+ param stsflg :: 0
+ param notify :: @_FXN_F_nop
+ param arg0 :: 0
+ param arg1 :: 0
+ param iDHLAvailable :: 0
+}
+
+object RTA_toHost :: HST {
+ param iComment :: "Used to access LOG and STS data"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "HST"
+ param iDelMsg :: "This object cannot be deleted"
+ param mode :: "output"
+ param bufseg :: IRAM
+ param bufalign :: 4
+ param buf :: "<NULL>"
+ param framesize :: 64
+ param numframes :: 1
+ param stsflg :: 0
+ param notify :: @_FXN_F_nop
+ param arg0 :: 0
+ param arg1 :: 0
+ param iDHLAvailable :: 0
+}
+
+type HWI {
+ isa ObjectMgr
+ prop name :: "HWI"
+ prop Label :: "HWI - Hardware Interrupt Service Routine Manager"
+ prop IsContainedIn :: SCH
+ prop SortChildHierView :: 0
+ prop GlobalIcon :: 109
+ prop InstanceIcon :: 110
+ prop InstanceHelpTopic :: (205)
+ prop GlobalHelpTopic :: (105)
+ prop dataSize :: (0 * HWI.gNumOf)
+ prop localCanCreate :: (self.error("New hardware interrupt objects cannot be created"))
+ prop InstancePropertyPage :: ("{B7240DE6-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop GlobalPropertyPage :: ("{B7240DE7-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop DependsOn :: "GBL,OBJ,BUF,CLK,IDL,LCK,LOG,MBX,MEM,PIP,POOL,PRD,QUE,RTDX,SEM,STS,SYS"
+ prop AllocType :: (if self.ZEROTAB {"1\0, _stubsAllocDesc, _memSeg, _placement"} else {if ((MEM.ENABLELOADSEG) && (MEM.VECMEMSEG != MEM.LOADVECMEMSEG)) {"2\0, _stubsAllocDesc, _memSeg, _placement,
+ _vectAllocDesc, _loadvecSeg, _minplace"} else {"2\0, _stubsAllocDesc, _memSeg, _placement,
+ _vectAllocDesc, _vecSeg, _minplace"}})
+ prop _stubsAllocDesc :: (if ((MEM.ENABLELOADSEG) && (MEM.STUBMEMSEG != MEM.LOADSTUBMEMSEG)) {"%8t .%1L: {} load > %2s, run\0, name, _loadstubSeg"} else {"%8t .%1L: {} \0, name"})
+ prop _vectAllocDesc :: (if ((MEM.ENABLELOADSEG) && (MEM.VECMEMSEG != MEM.LOADVECMEMSEG)) {"%8t .%1L_vec: {%12t\n *(.hwi_vec)%8t\n } run > %2s align = 0x400, RUN_START(%1U_A_VECS), load \0, name, _vecSeg"} else {"%8t .%1L_vec: {%12t\n *(.hwi_vec)%8t\n } align = 0x400, RUN_START(%1U_A_VECS)\0, name"})
+ prop _placement :: (0x7fffffff / 2)
+ prop _minplace :: 0
+ prop GenLinkPrologue :: (if self.ZEROTAB {if ((MEM.ENABLELOADSEG) && (MEM.VECMEMSEG != MEM.LOADVECMEMSEG)) {"SECTIONS {%4t\n .%1L_vec: {%8t\n %1U_A_VECS = .;\n *(.hwi_vec)%4t\n } load > %2s, run = 0x0 %0t\n}\n\0 , name, _loadvecSeg"} else {"SECTIONS {%4t\n .%1L_vec: 0x0 {%8t\n %1U_A_VECS = .;\n *(.hwi_vec)%4t\n }%0t\n}\n\0, name"}} else {if self.GENERATE_RESET_VEC {"SECTIONS {%4t\n .%1L_reset: 0x%2x {}%0t\n}\n\0, name, resetvector"} else {""}})
+ prop resetvector :: (self.RESETVECTORADDR)
+ prop GenLinkEpilogue :: ("%0t_HWI_CFGDISPATCHED = HWI_CFGDISPATCHED;\n\0")
+ prop localInit :: (if (RTDX.CALLBACKOBJ != nil) {self.error("HWI initialization failure.")} , RTDX.CALLBACKOBJ = HWI)
+ prop call :: (if (RTDX.USERTDX == 0) {HWI_RESERVED1.function = @HWI_unused, HWI_RESERVED1.iUseDispatcher = 0, if (HWI_INT11.iSource == HSRTDX11 && HWI_INT11.function == @_HSRTDX_xmt) {HWI_INT11.iSource = MCSP_0_Receive, HWI_INT11.iReMappable = 1, HWI_INT11.function = @HWI_unused, HWI_INT11.iUseDispatcher = 0, HWI_INT11.iIntrMask = "self", HWI_INT11.IntrMask = 0x800, HWI_INT11.client = "USER"} , if (HWI_INT12.iSource == HSRTDX12 && HWI_INT12.function == @_HSRTDX_rec) {HWI_INT12.iSource = MCSP_1_Transmit, HWI_INT12.iReMappable = 1, HWI_INT12.function = @HWI_unused, HWI_INT12.iUseDispatcher = 0, HWI_INT12.iIntrMask = "self", HWI_INT12.IntrMask = 0x1000, HWI_INT12.client = "USER"} } else {HWI_RESERVED1.function = @_RTDX_Poll, HWI_RESERVED1.iUseDispatcher = 1, if (RTDX.RTDXTYPE == "HSRTDX") {HWI_INT11.iSource = HSRTDX11, HWI_INT11.iReMappable = 0, HWI_INT11.function = @_HSRTDX_xmt, HWI_INT11.iUseDispatcher = 1, HWI_INT11.iIntrMask = "bitmask", HWI_INT11.IntrMask = 0x1808, HWI_INT11.client = "RTDX", HWI_INT12.iSource = HSRTDX12, HWI_INT12.iReMappable = 0, HWI_INT12.function = @_HSRTDX_rec, HWI_INT12.iUseDispatcher = 1, HWI_INT12.iIntrMask = "bitmask", HWI_INT12.IntrMask = 0x1808, HWI_INT12.client = "RTDX"} else {if (HWI_INT11.iSource == HSRTDX11 && HWI_INT11.function == @_HSRTDX_xmt) {HWI_INT11.iSource = MCSP_0_Receive, HWI_INT11.iReMappable = 1, HWI_INT11.function = @HWI_unused, HWI_INT11.iUseDispatcher = 0, HWI_INT11.iIntrMask = "self", HWI_INT11.IntrMask = 0x800, HWI_INT11.client = "USER"} , if (HWI_INT12.iSource == HSRTDX12 && HWI_INT12.function == @_HSRTDX_rec) {HWI_INT12.iSource = MCSP_1_Transmit, HWI_INT12.iReMappable = 1, HWI_INT12.function = @HWI_unused, HWI_INT12.iUseDispatcher = 0, HWI_INT12.iIntrMask = "self", HWI_INT12.IntrMask = 0x1000, HWI_INT12.client = "USER"} }})
+ prop _memSeg :: MEM.STUBMEMSEG
+ prop _loadstubSeg :: MEM.LOADSTUBMEMSEG
+ prop _linkString :: ($b = 0, scan ($a; HWI) {if ($a.monitor != "Nothing") {$b = 1} }, if ($b == 1) {"*(.hwi)"} else {"/* no HWI stubs are necessary */"})
+ prop name2addr :: ($i = 0, $b = nil, scan ($a; {"Nothing", "Data Value", "Stack Pointer", "Top of SW Stack", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10", "A11", "A12", "A13", "A14", "A15", "B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "B10", "B11", "B12", "B13", "B14", "B15"}) {if ($b == nil) {if ($a == $1) {$b = {0, 0, 0, @GBL_stackbeg, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}[$i]} , $i++} }, if ($b == nil) {$b = 0} , $b)
+ prop name2type :: ($i = 0, $b = nil, scan ($a; {"Nothing", "Data Value", "Stack Pointer", "Top of SW Stack", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10", "A11", "A12", "A13", "A14", "A15", "B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "B10", "B11", "B12", "B13", "B14", "B15"}) {if ($b == nil) {if ($a == $1) {if ($i < 5) {$b = {"unsigned", "signed", "unsigned", "unsigned", "unsigned"}[$i]} } , $i++} }, if ($b == nil) {$b = "unsigned"} , $b)
+ prop _vecSeg :: MEM.VECMEMSEG
+ prop _loadvecSeg :: MEM.LOADVECMEMSEG
+ prop HWIR0_DISP :: (if (HWI_RESERVED0.iUseDispatcher == 1) {0x4} else {0})
+ prop HWIR1_DISP :: (if (HWI_RESERVED1.iUseDispatcher == 1) {0x8} else {0})
+ prop HWI4_DISP :: (if (HWI_INT4.iUseDispatcher == 1) {0x10} else {0})
+ prop HWI5_DISP :: (if (HWI_INT5.iUseDispatcher == 1) {0x20} else {0})
+ prop HWI6_DISP :: (if (HWI_INT6.iUseDispatcher == 1) {0x40} else {0})
+ prop HWI7_DISP :: (if (HWI_INT7.iUseDispatcher == 1) {0x80} else {0})
+ prop HWI8_DISP :: (if (HWI_INT8.iUseDispatcher == 1) {0x100} else {0})
+ prop HWI9_DISP :: (if (HWI_INT9.iUseDispatcher == 1) {0x200} else {0})
+ prop HWI10_DISP :: (if (HWI_INT10.iUseDispatcher == 1) {0x400} else {0})
+ prop HWI11_DISP :: (if (HWI_INT11.iUseDispatcher == 1) {0x800} else {0})
+ prop HWI12_DISP :: (if (HWI_INT12.iUseDispatcher == 1) {0x1000} else {0})
+ prop HWI13_DISP :: (if (HWI_INT13.iUseDispatcher == 1) {0x2000} else {0})
+ prop HWI14_DISP :: (if (HWI_INT14.iUseDispatcher == 1) {0x4000} else {0})
+ prop HWI15_DISP :: (if (HWI_INT15.iUseDispatcher == 1) {0x8000} else {0})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 65535 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 16 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global STUBMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.codeMember($1)
+ prop Label :: "Function Stub Memory"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global ZEROTAB :: = if (6211 == 6499 || 6211 == 6747 || 6211 == 6748) {0} else {self.VECMEMSEG.base == self.RESETVECTORADDR} {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Writable :: 0
+ prop Visible :: 0
+ }
+ global VECMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop Label :: "Interrupt Service Table Memory"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop MemberTest :: MEM.codeMember($1)
+ prop Set :: (self.VECMEMSEG = $1, if ($1.base == 0) {self.GENERATE_RESET_VEC = 0} , "ok")
+ }
+ global GENERATE_RESET_VEC :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Generate RESET vector"
+ prop JSName :: "RESETVECTOR"
+ prop Writable :: self.ZEROTAB == 0
+ prop Visible :: 1
+ prop NoGen :: 0
+ }
+ global RESETVECTORADDR :: 0 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Label :: "RESET vector address"
+ prop JSName :: "RESETVECTORADDR"
+ prop Format :: "0x%08x"
+ prop Style :: 0x02
+ prop Writable :: self.GENERATE_RESET_VEC
+ prop Visible :: 1
+ prop NoGen :: 1
+ }
+ global EXT4_POLARITY :: "low-to-high" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "low-to-high,high-to-low"
+ prop Label :: "External Interrupt Pin 4 Polarity"
+ prop JSName :: "EXTPIN4POLARITY"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global EXT5_POLARITY :: "low-to-high" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "low-to-high,high-to-low"
+ prop Label :: "External Interrupt Pin 5 Polarity"
+ prop JSName :: "EXTPIN5POLARITY"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global EXT6_POLARITY :: "low-to-high" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "low-to-high,high-to-low"
+ prop Label :: "External Interrupt Pin 6 Polarity"
+ prop JSName :: "EXTPIN6POLARITY"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global EXT7_POLARITY :: "low-to-high" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "low-to-high,high-to-low"
+ prop Label :: "External Interrupt Pin 7 Polarity"
+ prop JSName :: "EXTPIN7POLARITY"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global POLARITYMASK :: = (if self.EXT4_POLARITY == "high-to-low" {1} else {0}) | (if self.EXT5_POLARITY == "high-to-low" {1} else {0}) << 1 | (if self.EXT6_POLARITY == "high-to-low" {1} else {0}) << 2 | (if self.EXT7_POLARITY == "high-to-low" {1} else {0}) << 3 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global INTRMULTLOW :: = (HWI_INT4.iEventId) | (HWI_INT5.iEventId << 5) | (HWI_INT6.iEventId << 10) | (HWI_INT7.iEventId << 16) | (HWI_INT8.iEventId << 21) | (HWI_INT9.iEventId << 26) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Writable :: 0
+ prop Visible :: 0
+ prop NoGen :: 0
+ }
+ global INTRMULTHIGH :: = (HWI_INT10.iEventId) | (HWI_INT11.iEventId << 5) | (HWI_INT12.iEventId << 10) | (HWI_INT13.iEventId << 16) | (HWI_INT14.iEventId << 21) | (HWI_INT15.iEventId << 26) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Writable :: 0
+ prop Visible :: 0
+ prop NoGen :: 0
+ }
+ global CFGDISPATCHED :: = (self.HWIR0_DISP | self.HWIR1_DISP | self.HWI4_DISP | self.HWI5_DISP | self.HWI6_DISP | self.HWI7_DISP | self.HWI8_DISP | self.HWI9_DISP | self.HWI10_DISP | self.HWI11_DISP | self.HWI12_DISP | self.HWI13_DISP | self.HWI14_DISP | self.HWI15_DISP) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "dispatched mask"
+ prop Style :: 0x02
+ prop Writable :: 1
+ prop Visible :: 0
+ prop NoGen :: 0
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iSource :: Reset {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: ISRC
+ prop MemberTest :: 1
+ prop Label :: "interrupt source"
+ prop JSName :: "interruptSource"
+ prop Visible :: if (GBL.CLKTYPE == 700) {0} else {if (GBL.DSPSUBTYPE == 6499 || GBL.DSPSUBTYPE == 6747 || GBL.DSPSUBTYPE == 6748) {0} else {1}}
+ prop Writable :: if (GBL.CLKTYPE == 700) {0} else {self.iReMappable}
+ prop NoGen :: 1
+ prop Set :: ($a = $1, if ($a == Reset) {self.error("The Reset interrupt source cannot be remapped")} else {if ($a == Non_Maskable) {self.error("The Non-Maskable interrupt source cannot be remapped")} else {if ($a == Reserved) {self.error("The Reserved interrupt source cannot be remapped")} else {if (CLK.WHICHHWI == self && $a != self.iSource && CLK.USETIMER) {self.error("This interrupt is in use by CLK, settings may be changed in the CLK Manager")} else {if ($a == CLK.WHICHHWI.iSource && CLK.USETIMER == 1) {self.error("Interrupt source is in use by CLK, settings may be changed in the CLK Manager.")} else {$a.iHwi = self, self.iSource.iHwi = HWI_UNUSED, self.iSource = $1, self.iEventId = self.iSource.iIntrSelectNum, "ok"}}}}})
+ }
+ inst iEventId :: = self.iSource.iIntrSelectNum {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "interrupt selection number"
+ prop JSName :: "interruptSelectNumber"
+ prop Style :: 0x02
+ prop Visible :: if (GBL.CLKTYPE == 700) {0} else {1}
+ prop Writable :: if (GBL.CLKTYPE == 700) {0} else {self.iReMappable}
+ prop NoGen :: 1
+ }
+ inst iReMappable :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iIntrEnableMask :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst function :: @HWI_unused {
+ prop JSName :: "fxn"
+ prop Visible :: 1
+ prop Writable :: if ((self.function == @RESERVED) || (self.client != "USER")) {0} else {1}
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop NoGen :: 0
+ prop Set :: (self.function = $1, GlobalStatus.gDirty = 1, "ok")
+ }
+ inst iSTSObj :: HWI_RESETSTS {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst monitor :: "Nothing" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "Nothing,Data Value,Stack Pointer,Top of SW Stack,A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,B13,B14,B15"
+ prop JSName :: "monitor"
+ prop Visible :: 1
+ prop Writable :: ((self.function != @HWI_unused && self.function != @RESERVED) && (self.iId != 0))
+ prop NoGen :: 0
+ prop Set :: (if ($1 != self.monitor) {$e = "ok", if ($1 == "Nothing") {if (($e = self.iSTSObj.Delete("HWI")) == "ok") {self.monitor = "Nothing", self.addr = self.name2addr(self.monitor), self.dataType = self.name2type(self.monitor)} } else {if (self.iSTSObj.iIsUsed || ($e = self.iSTSObj.Create("HWI")) == "ok") {self.monitor = $1, if (self.monitor == "Data Value") {self.addr = self.saveAddr, self.dataType = self.saveType} else {self.addr = self.name2addr(self.monitor), self.dataType = self.name2type(self.monitor)}} else {self.monitor = "Nothing"}}, $e} else {"ok"})
+ }
+ inst saveAddr :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst saveType :: "signed" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst addr :: 0 {
+ prop JSName :: "addr"
+ prop Visible :: 1
+ prop Writable :: (if self.monitor == "Data Value" {1} else {0})
+ prop NoGen :: 0
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Format :: if GBL.DSPTYPE == 62 {"0x%08x"} else {"0x%04x"}
+ prop Set :: (self.addr = $1, self.saveAddr = $1, "ok")
+ }
+ inst dataType :: "signed" {
+ prop Visible :: 1
+ prop Writable :: (if self.monitor == "Nothing" {0} else {1})
+ prop NoGen :: 0
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "signed,unsigned"
+ prop Label :: "type"
+ prop JSName :: "dataType"
+ prop Set :: (if (self.monitor != "Nothing") {self.dataType = $1, self.saveType = $1, "ok"} else {self.error("The monitor field must set to modify this field")})
+ }
+ inst operation :: "STS_add(*addr)" {
+ prop Visible :: 1
+ prop Writable :: (if self.monitor == "Nothing" {0} else {1})
+ prop NoGen :: 0
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "operation"
+ prop Enum :: "STS_add(*addr),STS_delta(*addr),STS_add(-*addr),STS_delta(-*addr),STS_add(|*addr|),STS_delta(|*addr|)"
+ prop Set :: (if (self.monitor != "Nothing") {self.operation = $1, "ok"} else {self.error("The monitor field must set to modify this field")})
+ }
+ inst client :: "USER" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst iUseDispatcher :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Use Dispatcher"
+ prop JSName :: "useDispatcher"
+ prop Visible :: 1
+ prop Writable :: if (self.client == "USER") {1} else {0}
+ prop NoGen :: 0
+ prop TabName :: "Dispatcher"
+ prop Set :: (if (($1 == 1) && (self == HWI_NMI)) {self.error("HWI dispatcher can't be used for NMI")} else {self.iUseDispatcher = $1, "ok"})
+ }
+ inst iArg :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Arg"
+ prop JSName :: "arg"
+ prop Visible :: 1
+ prop Writable :: if ((self.iUseDispatcher == 1) && (self.client == "USER")) {1} else {0}
+ prop NoGen :: 0
+ prop TabName :: "Dispatcher"
+ prop Set :: (self.iArg = $1, "ok")
+ }
+ inst iIntrMask :: "self" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Interrupt Mask"
+ prop JSName :: "interruptMask"
+ prop Enum :: "all,none,self,bitmask"
+ prop Visible :: 1
+ prop Writable :: if (self.iUseDispatcher == 1) {1} else {0}
+ prop NoGen :: 1
+ prop TabName :: "Dispatcher"
+ prop Set :: (if ($1 == "all") {self.IntrMask = 0xffff} else {if ($1 == "self") {self.IntrMask = 1 << self.iId} else {if ($1 == "none") {self.IntrMask = 0} }}, self.iIntrMask = $1, "ok")
+ }
+ inst IntrMask :: (1 << self.iId) {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: "0x%04x"
+ prop Style :: 0x02
+ prop Label :: "Interrupt Bit Mask"
+ prop JSName :: "interruptBitMask"
+ prop Visible :: 1
+ prop Writable :: if ((self.iUseDispatcher == 1) && (self.iIntrMask == "bitmask")) {1} else {0}
+ prop NoGen :: 0
+ prop TabName :: "Dispatcher"
+ prop Set :: (if ($1 > 0xffff) {self.error("Invalid Number")} else {self.IntrMask = $1, "ok"})
+ }
+ inst iCacheControl :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Don't modify cache control"
+ prop JSName :: "cacheControl"
+ prop Visible :: 1
+ prop Writable :: 0
+ prop NoGen :: 1
+ prop TabName :: "Dispatcher"
+ prop Set :: (if ($1 == 1) {self.iCCBitMask = 0x1} else {self.iCCBitMask = (self.iPCCBitMask | self.iDCCBitMask)}, self.iCacheControl = $1, "ok")
+ }
+ inst iPCCMask :: (if (GBL.DSPSUBTYPE == 6200 || GBL.DSPSUBTYPE == 6700) {"mapped"} else {"cache enable"}) {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "mapped,cache enable,cache freeze,cache bypass"
+ prop Label :: "Program Cache Control Mask"
+ prop JSName :: "progCacheMask"
+ prop Visible :: 1
+ prop Writable :: if ((self.iUseDispatcher == 1) && (self.iCacheControl == 0)) {1} else {0}
+ prop NoGen :: 1
+ prop TabName :: "Dispatcher"
+ prop Set :: (if ((GBL.DSPSUBTYPE == 6211 || GBL.DSPSUBTYPE == 6711 || GBL.DSPSUBTYPE == 6400) && $1 != "cache enable") {self.error("unsupported cache mode for 6x1x/64x device (cache enable must be selected)")} else {if ($1 == "mapped") {self.iPCCBitMask = 0x0000} else {if ($1 == "cache enable") {self.iPCCBitMask = 0x0040} else {if ($1 == "cache freeze") {self.iPCCBitMask = 0x0060} else {self.iPCCBitMask = 0x0080}}}, self.iPCCMask = $1, self.iCCBitMask = self.iPCCBitMask | self.iDCCBitMask, "ok"})
+ }
+ inst iPCCBitMask :: 0x0000 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDCCMask :: (if (GBL.DSPSUBTYPE == 6200 || GBL.DSPSUBTYPE == 6700) {"mapped"} else {"cache enable"}) {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "mapped,cache enable,cache freeze,cache bypass"
+ prop Label :: "Data Cache Control Mask"
+ prop JSName :: "dataCacheMask"
+ prop Visible :: 1
+ prop Writable :: if ((self.iUseDispatcher == 1) && (self.iCacheControl == 0)) {1} else {0}
+ prop NoGen :: 1
+ prop TabName :: "Dispatcher"
+ prop Set :: (if ((GBL.DSPSUBTYPE == 6211 || GBL.DSPSUBTYPE == 6711 || GBL.DSPSUBTYPE == 6400) && $1 != "cache enable") {self.error("unsupported cache mode for 6x1x/64x device (cache enable must be selected)")} else {if ($1 == "mapped") {self.iDCCBitMask = 0x0000} else {if ($1 == "cache enable") {self.iDCCBitMask = 0x0008} else {if ($1 == "cache freeze") {self.iDCCBitMask = 0x000C} else {self.iDCCBitMask = 0x0010}}}, self.iDCCMask = $1, self.iCCBitMask = self.iPCCBitMask | self.iDCCBitMask, "ok"})
+ }
+ inst iDCCBitMask :: 0x0000 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iCCBitMask :: 1 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst iLoadTrack :: 0 {
+ prop Label :: "Support CPU load tracking"
+ prop JSName :: "loadTrack"
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+}
+
+object HWI_RESET_STS :: STS {
+ param iComment :: "provides statistics for the RESET ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_RESET :: HWI {
+ param iComment :: "defines function for the RESET ISR"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: Reset
+ param iReMappable :: 0
+ param iIntrEnableMask :: 1
+ param function :: @_c_int00
+ param iSTSObj :: HWI_RESET_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 1
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_NMI_STS :: STS {
+ param iComment :: "provides statistics for the NMI ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_NMI :: HWI {
+ param iComment :: "defines function for the NMI ISR"
+ param iIsUsed :: 1
+ param iId :: 1
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: Non_Maskable
+ param iReMappable :: 0
+ param iIntrEnableMask :: 2
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_NMI_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 2
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_RESERVED0_STS :: STS {
+ param iComment :: "This STS object is being used by a HWI object and cannot be deleted"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_RESERVED0 :: HWI {
+ param iComment :: "RESERVED for RTDX"
+ param iIsUsed :: 1
+ param iId :: 2
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: Reserved
+ param iReMappable :: 0
+ param iIntrEnableMask :: 4
+ param function :: @RESERVED
+ param iSTSObj :: HWI_RESERVED0_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "RTDX"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 4
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_RESERVED1_STS :: STS {
+ param iComment :: "This STS object is being used by a HWI object and cannot be deleted"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_RESERVED1 :: HWI {
+ param iComment :: "RESERVED for RTDX"
+ param iIsUsed :: 1
+ param iId :: 3
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: Reserved
+ param iReMappable :: 0
+ param iIntrEnableMask :: 8
+ param function :: @_RTDX_Poll
+ param iSTSObj :: HWI_RESERVED1_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "RTDX"
+ param iUseDispatcher :: 1
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 8
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT4_STS :: STS {
+ param iComment :: "provides statistics for the INT4 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT4 :: HWI {
+ param iComment :: "defines the INT4 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 4
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: MCSP_1_Receive
+ param iEventId :: 15
+ param iReMappable :: 1
+ param iIntrEnableMask :: 16
+ param function :: @_ISR_AIC
+ param iSTSObj :: HWI_INT4_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 1
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 16
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT5_STS :: STS {
+ param iComment :: "provides statistics for the INT5 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT5 :: HWI {
+ param iComment :: "defines the INT5 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 5
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: External_Pin_5
+ param iReMappable :: 1
+ param iIntrEnableMask :: 32
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT5_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 32
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT6_STS :: STS {
+ param iComment :: "provides statistics for the INT6 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT6 :: HWI {
+ param iComment :: "defines the INT6 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 6
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: External_Pin_6
+ param iReMappable :: 1
+ param iIntrEnableMask :: 64
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT6_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 64
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT7_STS :: STS {
+ param iComment :: "provides statistics for the INT7 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT7 :: HWI {
+ param iComment :: "defines the INT7 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 7
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: External_Pin_7
+ param iReMappable :: 1
+ param iIntrEnableMask :: 128
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT7_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 128
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT8_STS :: STS {
+ param iComment :: "provides statistics for the INT8 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT8 :: HWI {
+ param iComment :: "defines the INT8 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 8
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: EDMA_Controller
+ param iReMappable :: 1
+ param iIntrEnableMask :: 256
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT8_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 256
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT9_STS :: STS {
+ param iComment :: "provides statistics for the INT9 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT9 :: HWI {
+ param iComment :: "defines the INT9 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 9
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: MCSP_0_Transmit
+ param iReMappable :: 1
+ param iIntrEnableMask :: 512
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT9_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 512
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT10_STS :: STS {
+ param iComment :: "provides statistics for the INT10 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT10 :: HWI {
+ param iComment :: "defines the INT10 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 10
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: EMIF_SDRAM_Timer
+ param iReMappable :: 1
+ param iIntrEnableMask :: 1024
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT10_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 1024
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT11_STS :: STS {
+ param iComment :: "provides statistics for the INT11 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT11 :: HWI {
+ param iComment :: "defines the INT11 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 11
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: MCSP_0_Receive
+ param iReMappable :: 1
+ param iIntrEnableMask :: 2048
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT11_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 2048
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT12_STS :: STS {
+ param iComment :: "provides statistics for the INT12 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT12 :: HWI {
+ param iComment :: "defines the INT12 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 12
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: MCSP_1_Transmit
+ param iReMappable :: 1
+ param iIntrEnableMask :: 4096
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT12_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 4096
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT13_STS :: STS {
+ param iComment :: "provides statistics for the INT13 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT13 :: HWI {
+ param iComment :: "defines the INT13 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 13
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: Host_Port_Host_to_DSP
+ param iReMappable :: 1
+ param iIntrEnableMask :: 8192
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT13_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 8192
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT14_STS :: STS {
+ param iComment :: "provides statistics for the INT14 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT14 :: HWI {
+ param iComment :: "defines the INT14 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 14
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: Timer_0
+ param iEventId :: 1
+ param iReMappable :: 1
+ param iIntrEnableMask :: 16384
+ param function :: @CLK_F_isr
+ param iSTSObj :: HWI_INT14_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "CLK"
+ param iUseDispatcher :: 1
+ param iArg :: @CLK_A_TABBEG
+ param iIntrMask :: "self"
+ param IntrMask :: 16384
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT15_STS :: STS {
+ param iComment :: "provides statistics for the INT15 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT15 :: HWI {
+ param iComment :: "defines the INT15 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 15
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: Timer_1
+ param iReMappable :: 1
+ param iIntrEnableMask :: 32768
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT15_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 32768
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_UNUSED :: HWI {
+ param iComment :: "a dummy DSP interrupt for unused sources"
+ param iIsUsed :: 0
+ param iId :: 16
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: Reset
+ param iReMappable :: 1
+ param iIntrEnableMask :: 0
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT15_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 65536
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+type SWI {
+ isa ObjectMgr
+ prop name :: "SWI"
+ prop Label :: "SWI - Software Interrupt Manager"
+ prop IsContainedIn :: SCH
+ prop DependsOn :: "HWI,SIO,HST,MSGQ"
+ prop GlobalIcon :: 123
+ prop InstanceIcon :: 124
+ prop InstanceHelpTopic :: (211)
+ prop GlobalHelpTopic :: (111)
+ prop HighTimeBased :: (if CLK.HIRES == 1 {1} else {0})
+ prop LowTimeBased :: (if CLK.HIRES == 1 {0} else {1})
+ prop uType :: (if (self.HighTimeBased()) {$a = 0} else {if (self.LowTimeBased()) {$a = 1} else {$a = 2}}, $a)
+ prop STSGetMaxFmt :: (if (SWI.STSUNITS == "raw") {if CLK.HIRES {"%g inst"} else {"%g ints"}} else {if SWI.STSUNITS == "microseconds" {"%.1f us"} else {"%.2f ms"}})
+ prop STSGetSumFmt :: (SWI.STSGetMaxFmt())
+ prop STSGetAvgFmt :: (if (SWI.STSUNITS == "raw") {if CLK.HIRES {"%.2f inst"} else {"%.2f ints"}} else {if SWI.STSUNITS == "microseconds" {"%.1f us"} else {"%.2f ms"}})
+ prop STSFilterMaxMult :: ($a = 1)
+ prop STSFilterSumMult :: (SWI.STSFilterMaxMult($1))
+ prop GetPriority :: (self.pri)
+ prop objectSize :: (if ((GBL.DSPTYPE == 54 && GBL.FARMODE == 0) || (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL")) {$a = (12 * 4)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 1) {$a = (14 * 4)} , if (GBL.DSPTYPE == 28 || (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") || (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE")) {$a = (20 * 4)} , if (GBL.DSPTYPE == 62) {$a = (11 * 4)} , $a)
+ prop GenLinkPrologue :: ("SECTIONS {%4t\n.swi: RUN_START(SWI_A_TABBEG), RUN_END(SWI_A_TABEND) {%4t\n} > %1s%2s\0, memSeg, pageString")
+ prop GenLinkEpilogue :: ("%0t}\nSWI_A_TABLEN = %1d;\n\0, numInst")
+ prop linkString :: if self.gNumOf > 0 {"*(.%1L)"} else {"/* no %1U objects */"}
+ prop pageString :: if GBL.DSPTYPE == 62 {""} else {if (GBL.DSPTYPE == 55 || GBL.DSPTYPE == 28) {(if SWI.OBJMEMSEG.space() == "code" {" PAGE 0"} else {if SWI.OBJMEMSEG.space() == "data" {" PAGE 1"} else {if SWI.OBJMEMSEG.space() == "io" {" PAGE 2"} else {" PAGE 0"}}})} else {" PAGE 1"}}
+ prop memSeg :: SWI.OBJMEMSEG
+ prop objSize :: if GBL.DSPTYPE == 55 {(2 * self.objectSize())} else {self.objectSize()}
+ prop maxObjs :: (32767)
+ prop numInst :: (SWI.gNumOf)
+ prop dataSize :: (self.objectSize() * SWI.gNumOf)
+ prop localCanCreate :: (if (GlobalStatus.MinStackSize >= MEM.STACKSIZE) {self.error("System stack size (see MEM) is too small to support a new SWI priority level.")} else {"ok"})
+ prop localCreate :: (STS.gNumEmbed += 1, SWI.EXECFXN = @SWI_F_exec, SWI.RUNFXN = @SWI_F_run, "ok")
+ prop localDelete :: (STS.gNumEmbed -= 1, if (self.gNumOf == 1) {SWI.EXECFXN = @FXN_F_nop, SWI.RUNFXN = @FXN_F_nop} , "ok")
+ prop SortByField :: "pri"
+ prop SortGroups :: 15
+ prop InstancePropertyPage :: ("{B7240DEC-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop GlobalPropertyPage :: ("{B7240DED-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"swi.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far SWI_Obj %0r;\n\0"} else {"extern SWI_Obj %0r;\n\0"})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global EHOOKFXN :: @GBL_NULL {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable Scheduler and Return to Idle Function"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global IHOOKFXN :: @GBL_NULL {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Exit Scheduler and Return to Idle Function"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global EXECFXN :: @SWI_F_exec {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Configured SWI executive"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global RUNFXN :: @SWI_F_run {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Configured SWI executive body"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global STSUNITS :: "raw" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "raw,milliseconds,microseconds"
+ prop Label :: "Statistics Units"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst priority :: = (self.pri + 1) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "priority"
+ prop JSName :: ""
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst function :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "fxn"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ }
+ inst pri :: 1 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "0,1,2,3,4,5,6,7,8,9,10,11,12,13,14"
+ prop Label :: "priority"
+ prop JSName :: "priority"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: ($a = self.pri, self.pri = $1, if (self == KNL_swi) {if ($1 != 0) {self.pri = $a, self.error("KNL_swi must remain at Priority 0.")} else {"ok"}} else {if ($1 == 0 && KNL_swi.iIsUsed == 1) {self.pri = $a, self.error("Priority 0 reserved for KNL_swi only.")} else {GlobalStatus.gDirty = 1, if (GlobalStatus.MinStackSize >= MEM.STACKSIZE) {self.pri = $a, self.error("System stack size (see MEM) is too small to support a new SWI priority level.")} else {if ($1 > 14) {self.pri = $a, self.error("SWI can only support 15 priority levels.")} else {"ok"}}}})
+ }
+ inst mailbox :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01 | 0x02
+ prop JSName :: "mailbox"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ }
+ inst arg0 :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "arg0"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ }
+ inst arg1 :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "arg1"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ }
+ inst dorta :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst Order :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "order"
+ prop NoGen :: 0
+ prop Writable :: 1
+ }
+ inst filter :: 2 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "filter"
+ prop NoGen :: 0
+ }
+ inst maxformat :: self.STSGetMaxFmt() {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "maxformat"
+ prop NoGen :: 0
+ }
+ inst sumformat :: self.STSGetSumFmt() {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "sumformat"
+ prop NoGen :: 0
+ }
+ inst avgformat :: self.STSGetAvgFmt() {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "avgformat"
+ prop NoGen :: 0
+ }
+ inst filtmaxmult :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "filtmaxmult"
+ prop NoGen :: 0
+ }
+ inst filtsummult :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "filtsummult"
+ prop NoGen :: 0
+ }
+ inst unittype :: self.uType() {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "unittype"
+ prop NoGen :: 0
+ }
+}
+
+type TSK {
+ isa ObjectMgr
+ prop name :: "TSK"
+ prop Label :: "TSK - Task Manager"
+ prop IsConfMod :: self.USETSK
+ prop IsContainedIn :: SCH
+ prop DependsOn :: "SWI,HOOK"
+ prop GlobalIcon :: 143
+ prop InstanceIcon :: 144
+ prop GlobalHelpTopic :: (314)
+ prop InstanceHelpTopic :: (414)
+ prop InstancePropertyPage :: ("{473C4A64-B1A8-11d0-9885-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{473C4A65-B1A8-11d0-9885-0020AFEE33C6}")
+ prop SortByField :: "iPRI"
+ prop SortGroups :: 17
+ prop objectSize :: (if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL") {$a = (27 * 4)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") {$a = (44 * 4)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE") {$a = (44 * 4)} , if (GBL.DSPTYPE == 28) {$a = (40 * 4)} , if (GBL.DSPTYPE == 62 || (GBL.DSPTYPE == 54 && GBL.FARMODE == 0)) {$a = (24 * 4)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 1) {$a = (25 * 4)} , $a)
+ prop GenLinkPrologue :: (if (self.USETSK != 0) {"SECTIONS {%4t\n.%1L: {%8t\n %4S %4t\n} > %3s%5s\0, name, objSize, _bssmemSeg, linkString, pageString"} else {"_KNL_swi = 0;"})
+ prop linkString :: if self.gNumOf > 0 {"*(.%1L)"} else {"/* no %1U objects */"}
+ prop pageString :: if GBL.DSPTYPE == 62 {""} else {if (GBL.DSPTYPE == 55 || GBL.DSPTYPE == 28) {(if TSK.OBJMEMSEG.space() == "code" {" PAGE 0"} else {if TSK.OBJMEMSEG.space() == "data" {" PAGE 1"} else {if TSK.OBJMEMSEG.space() == "io" {" PAGE 2"} else {" PAGE 0"}}})} else {" PAGE 1"}}
+ prop GenLinkEpilogue :: (if (self.USETSK != 0) {"%0t}\n\0"} else {""})
+ prop _objAllocDesc :: ("%8t .TSK$obj: {}")
+ prop _bssmemSeg :: self.OBJMEMSEG
+ prop _objmemSeg :: MEM.CFGOBJSEG
+ prop AllocInst :: (if self.iAUTOSTK {"1\0, _instStackDesc, _instStackSeg, _placement"} else {"0\0"})
+ prop _instStackDesc :: ("%8t .%0s$stk: {%12t\n *(.%0s$stk)%8t\n }\0")
+ prop _self :: self
+ prop _instStackSize :: self.iSTKSZ * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE)
+ prop _instStackSeg :: self.iSTKSEG
+ prop _placement :: (0x7fffffff / 2)
+ prop localInit :: (KNL_swi.Create("SWI"), if (self.STACKSEG.iAllocHeap == 1) {self.STACKSEG.iReqHeapCount++, "ok"} else {self.error("TSK default stack segment must be a memory segment with a heap")})
+ prop HighTimeBased :: (if CLK.HIRES == 1 {1} else {0})
+ prop LowTimeBased :: (if CLK.HIRES == 1 {0} else {1})
+ prop uType :: (if (self.HighTimeBased()) {$a = 0} else {if (self.LowTimeBased()) {$a = 1} else {$a = 2}}, $a)
+ prop STSGetMaxFmt :: (if (TSK.STSUNITS == "raw") {if CLK.HIRES {"%g inst"} else {"%g ints"}} else {if TSK.STSUNITS == "microseconds" {"%.1f us"} else {"%.2f ms"}})
+ prop STSGetSumFmt :: (TSK.STSGetMaxFmt())
+ prop STSGetAvgFmt :: (if (TSK.STSUNITS == "raw") {if CLK.HIRES {"%.2f inst"} else {"%.2f ints"}} else {if TSK.STSUNITS == "microseconds" {"%.1f us"} else {"%.2f ms"}})
+ prop STSFilterMaxMult :: ($a = 1)
+ prop STSFilterSumMult :: (TSK.STSFilterMaxMult($1))
+ prop localCreate :: (STS.gNumEmbed += 1, "ok")
+ prop localCanCreate :: ($e = "ok", if (TSK.USETSK != 1) {$e = self.error("TSK manager not enabled")} , $e)
+ prop localDelete :: (STS.gNumEmbed -= 1, "ok")
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"tsk.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far TSK_Obj %0r;\n\0"} else {"extern TSK_Obj %0r;\n\0"})
+ prop NOPFXN :: @FXN_F_nop
+ prop _objId :: self.iId
+ prop objSize :: if GBL.DSPTYPE == 55 {(2 * self.objectSize())} else {self.objectSize()}
+ prop dataSize :: ($d = 0, scan ($i; TSK) {$d += ($i.iSTKSZ + self.objectSize() * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE))}, $d)
+ prop minStackSize :: ($a = self.STACKSIZE, scan ($i; TSK) {if ($i.STACKSIZE < $a) {$a = $i.STACKSIZE} }, $a)
+ prop maxObjs :: (32767)
+ prop GetPriority :: (self.iPRI)
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global USETSK :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable TSK Manager"
+ prop JSName :: "ENABLETSK"
+ prop Visible :: 1
+ prop Writable :: if GBL.DSPSUBTYPE == 0x55DA200 {0} else {1}
+ prop NoGen :: 1
+ prop Set :: (if ($1 == 0) {if (self.gNumOf > 1) {self.error("Cannot disable TSK until all TSK objects are deleted.")} else {self.STACKSEG.iReqHeapCount--, TSK.STACKSEG = MEM_NULL, TSK.OBJMEMSEG = MEM_NULL, TSK_idle.iSTKSEG = MEM_NULL, TSK_idle.Delete("TSK"), KNL_swi.Delete("TSK"), PRD.THOOKFXN = self.NOPFXN, if (PRD.gNumOf == 0) {if (PRD_clock.iIsUsed == 1) {PRD_clock.function = @FXN_F_nop} } , self.USETSK = $1, "ok"}} else {$e = "ok", GlobalStatus.gDirty = 1, if (GlobalStatus.MinStackSize >= MEM.STACKSIZE) {$e = self.error("Current stack size inadequate to enable TSK"), break} , scan ($a; SWI) {if ($a != KNL_swi && $a.pri == 0 && $a.iIsUsed == 1) {$e = self.error("Cannot enable TSK when there are SWI objects at Priority 0."), break} }, if ($e == "ok") {TSK.STACKSEG = MEM_NULL, scan ($b; MEM) {if ($b.iAllocHeap && $b != MEM_NULL) {TSK.STACKSEG = $b, break} }, self.STACKSEG.iReqHeapCount++, self.USETSK = $1, TSK.OBJMEMSEG = SWI.OBJMEMSEG, TSK_idle.iSTKSEG = self.OBJMEMSEG, TSK_idle.Create("TSK"), KNL_swi.Create("TSK"), PRD.THOOKFXN = PRD.DEFAULT_THOOKFXN, if (TSK.TSKTICK == "PRD") {if (PRD_clock.iIsUsed == 1) {PRD_clock.function = @PRD_F_tick} } , if (MEM.NOHEAPS) {self.STACKSEG.iReqHeapCount++} , $e} else {$e}})
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "OBJMEMSEG"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataNullMember($1)
+ prop Label :: "Object Memory"
+ prop Visible :: 1
+ prop Writable :: self.USETSK
+ prop NoGen :: 1
+ }
+ global CALLBACKOBJ :: nil {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global STACKSIZE :: 1024 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: if GBL.DSPTYPE == 54 {0x01} else {0x02}
+ prop Label :: "Default stack size (MAUs)"
+ prop JSName :: "STACKSIZE"
+ prop Visible :: 1
+ prop Writable :: self.USETSK
+ }
+ global STACKSEG :: MEM_NULL {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataNullMember($1) && $1.iAllocHeap
+ prop Label :: "Stack segment for dynamic tasks"
+ prop JSName :: "STACKSEG"
+ prop Visible :: 1
+ prop Writable :: self.USETSK && (MEM.NOHEAPS == 0)
+ prop Set :: (if (self.STACKSEG.iReqHeapCount > 0) {self.STACKSEG.iReqHeapCount--} , self.STACKSEG = $1, self.STACKSEG.iReqHeapCount++, "ok")
+ }
+ global PRIORITY :: 1 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "PRIORITY"
+ prop Enum :: "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15"
+ prop Label :: "Default task priority"
+ prop Visible :: 1
+ prop Writable :: self.USETSK
+ }
+ global CREATEFXN :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Create function"
+ prop JSName :: "CREATEFXN"
+ prop Visible :: 1
+ prop Writable :: self.USETSK
+ prop TabName :: "Function Hooks"
+ prop Set :: (self.CREATEFXN = $1, HOOK_KNL.createFxn = self.CREATEFXN, "ok")
+ prop NoGen :: 1
+ }
+ global VCREATEFXN :: = if HOOK_KNL.iIsUsed == 1 {@__HOOK_doCreate} else {self.CREATEFXN} {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ }
+ global DELETEFXN :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Delete function"
+ prop JSName :: "DELETEFXN"
+ prop Visible :: 1
+ prop Writable :: self.USETSK
+ prop TabName :: "Function Hooks"
+ prop Set :: (self.DELETEFXN = $1, HOOK_KNL.deleteFxn = self.DELETEFXN, "ok")
+ prop NoGen :: 1
+ }
+ global VDELETEFXN :: = if HOOK_KNL.iIsUsed == 1 {@__HOOK_doDelete} else {self.DELETEFXN} {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ }
+ global EXITFXN :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Exit function"
+ prop JSName :: "EXITFXN"
+ prop Visible :: 1
+ prop Writable :: self.USETSK
+ prop TabName :: "Function Hooks"
+ prop Set :: (self.EXITFXN = $1, HOOK_KNL.exitFxn = self.EXITFXN, "ok")
+ prop NoGen :: 1
+ }
+ global VEXITFXN :: = if HOOK_KNL.iIsUsed == 1 {@__HOOK_doExit} else {self.EXITFXN} {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ }
+ global DOSWITCH :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Call switch function"
+ prop JSName :: "CALLSWITCHFXN"
+ prop Writable :: self.USETSK
+ prop Visible :: 1
+ prop NoGen :: 1
+ prop Set :: (self.DOSWITCH = $1, HOOK_KNL.callSwitchFxn = self.DOSWITCH, "ok")
+ prop TabName :: "Function Hooks"
+ }
+ global VSWFXN :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Switch function"
+ prop JSName :: "SWITCHFXN"
+ prop Visible :: 1
+ prop NoGen :: 1
+ prop Writable :: self.DOSWITCH && self.USETSK
+ prop Set :: (self.VSWFXN = $1, HOOK_KNL.switchFxn = self.VSWFXN, "ok")
+ prop TabName :: "Function Hooks"
+ }
+ global SWITCHFXN :: = (if (HOOK_KNL.iIsUsed) {$i = 0, scan ($a; HOOK) {if ($a.callSwitchFxn) {$i = 1} }, if ($i) {@__HOOK_doSwitch} else {0}} else {if (self.DOSWITCH) {self.VSWFXN} else {0}}) {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: ""
+ prop TabName :: "Function Hooks"
+ }
+ global DOREADY :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Call ready function"
+ prop JSName :: "CALLREADYFXN"
+ prop Writable :: self.USETSK
+ prop Visible :: 1
+ prop NoGen :: 1
+ prop Set :: (self.DOREADY = $1, HOOK_KNL.callReadyFxn = self.DOREADY, "ok")
+ prop TabName :: "Function Hooks"
+ }
+ global VRDYFXN :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Ready function"
+ prop JSName :: "READYFXN"
+ prop Visible :: 1
+ prop Writable :: self.DOREADY && self.USETSK
+ prop NoGen :: 1
+ prop Set :: (self.VRDYFXN = $1, HOOK_KNL.readyFxn = self.VRDYFXN, "ok")
+ prop TabName :: "Function Hooks"
+ }
+ global READYFXN :: = (if (HOOK_KNL.iIsUsed) {$i = 0, scan ($a; HOOK) {if ($a.callReadyFxn) {$i = 1} }, if ($i) {@__HOOK_doReady} else {0}} else {if (self.DOREADY) {self.VRDYFXN} else {0}}) {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: ""
+ prop TabName :: "Function Hooks"
+ }
+ global NUM_HOOKS :: = HOOK.gNumOf {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ }
+ global STSUNITS :: "raw" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "raw,milliseconds,microseconds"
+ prop Label :: "Statistics Units"
+ prop Visible :: 0
+ prop Writable :: self.USETSK
+ prop NoGen :: 1
+ }
+ global TSKTICK :: "PRD" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "PRD,User"
+ prop Label :: "TSK tick driven by"
+ prop JSName :: "DRIVETSKTICK"
+ prop Visible :: 1
+ prop Writable :: self.USETSK
+ prop NoGen :: 1
+ prop Set :: (if ($1 != self.TSKTICK) {if ($1 == "PRD") {PRD.THOOKFXN = PRD.DEFAULT_THOOKFXN, if (TSK.USETSK == 1) {if (PRD_clock.iIsUsed == 1) {PRD_clock.function = @PRD_F_tick} } } , if ($1 == "User") {PRD.THOOKFXN = self.NOPFXN, if (PRD.gNumOf == 0) {if (PRD_clock.iIsUsed == 1) {PRD_clock.function = @FXN_F_nop} } } , if ($1 != "PRD" && $1 != "User") {self.error("Invalid TSK tick driver selection")} } , self.TSKTICK = $1, "ok")
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iFXN :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Task function"
+ prop JSName :: "fxn"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "TSK" {0} else {1}
+ prop TabName :: "Function"
+ }
+ inst iARG0 :: 0 {
+ prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
+ prop Label :: "Task function argument 0"
+ prop JSName :: "arg0"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "TSK" {0} else {1}
+ prop TabName :: "Function"
+ }
+ inst iARG1 :: 0 {
+ prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
+ prop Label :: "Task function argument 1"
+ prop JSName :: "arg1"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "TSK" {0} else {1}
+ prop TabName :: "Function"
+ }
+ inst iARG2 :: 0 {
+ prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
+ prop Label :: "Task function argument 2"
+ prop JSName :: "arg2"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "TSK" {0} else {1}
+ prop TabName :: "Function"
+ }
+ inst iARG3 :: 0 {
+ prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
+ prop Label :: "Task function argument 3"
+ prop JSName :: "arg3"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "TSK" {0} else {1}
+ prop TabName :: "Function"
+ }
+ inst iARG4 :: 0 {
+ prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
+ prop Label :: "Task function argument 4"
+ prop JSName :: "arg4"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "TSK" {0} else {1}
+ prop TabName :: "Function"
+ }
+ inst iARG5 :: 0 {
+ prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
+ prop Label :: "Task function argument 5"
+ prop JSName :: "arg5"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "TSK" {0} else {1}
+ prop TabName :: "Function"
+ }
+ inst iARG6 :: 0 {
+ prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
+ prop Label :: "Task function argument 6"
+ prop JSName :: "arg6"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "TSK" {0} else {1}
+ prop TabName :: "Function"
+ }
+ inst iARG7 :: 0 {
+ prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
+ prop Label :: "Task function argument 7"
+ prop JSName :: "arg7"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "TSK" {0} else {1}
+ prop TabName :: "Function"
+ }
+ inst iAUTOSTK :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Automatically allocate stack"
+ prop JSName :: "autoAllocateStack"
+ prop Set :: (if (($1 == 1) && (self.iAUTOSTK == 0)) {self.iSTKSZ = TSK.STACKSIZE} , self.iAUTOSTK = $1, "ok")
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "TSK" {0} else {1}
+ }
+ inst iMANSTK :: @null {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Manually allocated stack"
+ prop JSName :: "manualStack"
+ prop Visible :: 1
+ prop Writable :: self.iAUTOSTK == 0
+ }
+ inst iSTKSZ :: TSK.STACKSIZE {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: if GBL.DSPTYPE == 54 {0x01} else {0x02}
+ prop Label :: "Stack size (MAUs)"
+ prop JSName :: "stackSize"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop Set :: ($a = $1, if ($a < 32) {if (GBL.DSPSUBTYPE == 62) {self.error("Task stack size is too small.")} else {if ($a < 32) {self.error("Task stack size is too small.")} else {self.iSTKSZ = ($1 - ($1 - 1) % 8 + 7), GlobalStatus.gDirty = 1, "ok"}}} else {self.iSTKSZ = ($1 - ($1 - 1) % 8 + 7), GlobalStatus.gDirty = 1, "ok"})
+ }
+ inst iSTKSEG :: = self.OBJMEMSEG {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: $1 == MEM_NULL || MEM.dataMember($1)
+ prop Label :: "Stack Memory Segment"
+ prop JSName :: "stackMemSeg"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ inst iPRI :: TSK.PRIORITY {
+ prop Label :: "Priority"
+ prop JSName :: "priority"
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop Set :: (if (self == TSK_idle) {if ($1 == 0) {"ok"} else {self.error("Cannot change the priority of the idle task.")}} else {if ($1 == 0) {self.error("Priority 0 is reserved for the system idle task")} else {self.iPRI = $1, "ok"}})
+ }
+ inst iENV :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Environment pointer"
+ prop JSName :: "envPointer"
+ prop Visible :: 1
+ prop Writable :: self.iDelUser != "TSK"
+ prop TabName :: "Advanced"
+ }
+ inst iEXITFLAG :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Don't shut down system while this task is still running"
+ prop JSName :: "exitFlag"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop TabName :: "Advanced"
+ }
+ inst iUSETSKNAME :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Allocate Task Name on Target"
+ prop JSName :: "allocateTaskName"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop TabName :: "Advanced"
+ }
+ inst iSTATREG :: = GBL.CACHE {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: "0x%08x"
+ prop Label :: "Initial Status Register value"
+ prop Visible :: 0
+ prop Writable :: 1
+ }
+ inst Order :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "order"
+ prop NoGen :: 0
+ prop Writable :: 1
+ }
+ inst filter :: 2 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "filter"
+ prop NoGen :: 0
+ }
+ inst maxformat :: self.STSGetMaxFmt() {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "maxformat"
+ prop NoGen :: 0
+ }
+ inst sumformat :: self.STSGetSumFmt() {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "sumformat"
+ prop NoGen :: 0
+ }
+ inst avgformat :: self.STSGetAvgFmt() {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "avgformat"
+ prop NoGen :: 0
+ }
+ inst filtmaxmult :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "filtmaxmult"
+ prop NoGen :: 0
+ }
+ inst filtsummult :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "filtsummult"
+ prop NoGen :: 0
+ }
+ inst unittype :: self.uType() {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "unittype"
+ prop NoGen :: 0
+ }
+}
+
+object TSK_idle :: TSK {
+ param iComment :: "This is the idle task; it only runs when no other task is ready"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "TSK"
+ param iDelMsg :: "This task executes all IDL functions and cannot be deleted"
+ param iFXN :: @IDL_F_loop
+ param iARG0 :: 0
+ param iARG1 :: 0
+ param iARG2 :: 0
+ param iARG3 :: 0
+ param iARG4 :: 0
+ param iARG5 :: 0
+ param iARG6 :: 0
+ param iARG7 :: 0
+ param iAUTOSTK :: 1
+ param iMANSTK :: @null
+ param iSTKSZ :: 1024
+ param iSTKSEG :: IRAM
+ param iPRI :: 0
+ param iENV :: 0
+ param iEXITFLAG :: 1
+ param iUSETSKNAME :: 0
+ param Order :: 0
+ param filter :: 2
+ param maxformat :: "%g inst"
+ param sumformat :: "%g inst"
+ param avgformat :: "%.2f inst"
+ param filtmaxmult :: 1
+ param filtsummult :: 1
+ param unittype :: 0
+}
+
+object KNL_swi :: SWI {
+ param iComment :: "This Software Interrupt calls the TSK scheduler"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "TSK"
+ param iDelMsg :: "This object cannot be deleted in DSP/BIOS."
+ param function :: @_KNL_run
+ param pri :: 0
+ param mailbox :: 0
+ param arg0 :: 0
+ param arg1 :: 0
+ param dorta :: 1
+ param Order :: 0
+ param filter :: 2
+ param maxformat :: "%g inst"
+ param sumformat :: "%g inst"
+ param avgformat :: "%.2f inst"
+ param filtmaxmult :: 1
+ param filtsummult :: 1
+ param unittype :: 0
+}
+
+type IDL {
+ isa ObjectMgr
+ prop Label :: "IDL - Idle Function Manager"
+ prop name :: "IDL"
+ prop IsContainedIn :: SCH
+ prop GlobalIcon :: 111
+ prop InstanceIcon :: 112
+ prop GlobalHelpTopic :: (106)
+ prop InstanceHelpTopic :: (206)
+ prop InstancePropertyPage :: ("{586735F1-770B-11d0-A61F-0000C070F3E9}")
+ prop GlobalPropertyPage :: ("{586735F0-770B-11d0-A61F-0000C070F3E9}")
+ prop objectSize :: (if (GBL.DSPTYPE == 55 || GBL.DSPTYPE == 28) {$a = (2 * 4)} else {$a = (1 * 4)}, $a)
+ prop GenLinkPrologue :: ("SECTIONS {%4t\n.%1L: {%8t\n %4S %4t\n} > %3s%5s, RUN_START(%1U_A_TABBEG)\0, name, _objSize, _memSeg, _linkString, _pageString")
+ prop GenLinkEpilogue :: ("%4t\n.%1Lcal: {%8t\n %4S %4t\n} > %3s%5s, RUN_START(%1U_A_CALBEG) %0t\n}\n%6S\n\0, name, _objSize, _memSeg, _linkCalString, _pageString, _nilBusyObj")
+ prop _linkString :: "*(.%1L)"
+ prop _linkCalString :: "*(.%1Lcal)"
+ prop _pageString :: if GBL.DSPTYPE == 62 {""} else {if (GBL.DSPTYPE == 55 || GBL.DSPTYPE == 28) {(if IDL.OBJMEMSEG.space() == "code" {" PAGE 0"} else {if IDL.OBJMEMSEG.space() == "data" {" PAGE 1"} else {if IDL.OBJMEMSEG.space() == "io" {" PAGE 2"} else {" PAGE 0"}}})} else {" PAGE 1"}}
+ prop _nilBusyObj :: (if ((IDL.USEIDLBUSYOBJ == 0) && (GBL.ROM == 1)) {"IDL_busyObj = 0;\n"} else {""})
+ prop _memSeg :: IDL.OBJMEMSEG
+ prop _objSize :: if GBL.DSPTYPE == 55 {(2 * self.objectSize())} else {self.objectSize()}
+ prop dataSize :: (self.objectSize() * (IDL.gNumOf + 1))
+ prop maxObjs :: (32767)
+ prop SortByField :: "iPri"
+ prop SortGroups :: 1
+ prop idlFxnSum :: ($a = 0, scan ($i; IDL) {$a += $i.cycles}, $a)
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 3 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global AUTOCALCULATE :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Auto calculate idle loop instruction count"
+ prop JSName :: "AUTOCALCULATE"
+ prop Visible :: 1
+ prop Writable :: CLK.USETIMER
+ prop Set :: (if ($1 == 1 && CLK.USETIMER == 0) {self.error("CLK must be enabled to do idle loop intruction count")} else {if ($1 == 1 && GBL.ENABLEINST == 0) {self.error("Real Time Analysis must be enabled to do idle loop instruction count")} else {self.AUTOCALCULATE = $1, "ok"}})
+ prop NoGen :: 1
+ }
+ global USECLKIDLTIME :: = IDL.AUTOCALCULATE {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global USEIDLBUSYOBJ :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CALIBRFXN :: = (if (IDL.AUTOCALCULATE == 1) {if TSK.USETSK {@IDL_F_stub} else {@IDL_F_calibrate}} else {@GBL_NULL}) {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Idle Loop Auto-Calibrate Function"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global CALIBRERROR :: = (if (GBL.DSPTYPE == 62 && IDL.CALIBRFXN == @IDL_F_stub) {6} else {0}) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Idle Loop Auto-Calibrate Error"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global LOOPOVERHEAD :: 0 {
+ prop Label :: "Idle Loop Instruction Count"
+ prop JSName :: "LOOPINSTCOUNT"
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: self.AUTOCALCULATE == 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst function :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "fxn"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ }
+ inst cycles :: 0 {
+ prop Label :: "CPU cycles"
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: if (self.iDelUser == "USER") {1} else {0}
+ prop NoGen :: 1
+ }
+ inst calibration :: 1 {
+ prop Label :: "Include in CPU load calibration"
+ prop JSName :: "calibration"
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: if (self.iDelUser == "USER") {1} else {0}
+ prop NoGen :: 0
+ }
+ inst Order :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "order"
+ prop NoGen :: 1
+ prop Writable :: 1
+ }
+ inst iPri :: 0 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop NoGen :: 1
+ }
+}
+
+object IDL_cpuLoad :: IDL {
+ param iComment :: "This object is required by the system to acquire CPU load data"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "IDL"
+ param iDelMsg :: "This object is required to compute CPU load and can't be deleted"
+ param function :: @IDL_F_busy
+ param cycles :: 0
+ param calibration :: 1
+ param Order :: 0
+ param iPri :: 0
+}
+
+object IDL_busyObj :: STS {
+ param iComment :: "This object is required by the system to accumulate CPU load statistics"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "IDL"
+ param iDelMsg :: "This object is required to accumulate CPU load data and can't be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+type ISRC {
+ isa ObjectMgr
+ prop name :: "ISRC"
+ prop Label :: "ISRC - Interrupt Sources"
+ prop IsConfMod :: 1
+ prop Visible :: 0
+ prop InstancePropertyPage :: ("{91BA37C0-98C3-11d1-988B-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{91BA37C1-98C3-11d1-988B-0020AFEE33C6}")
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iHwi :: HWI_UNUSED {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: HWI
+ prop MemberTest :: 1
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iIntrSelectNum :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+}
+
+object Reset :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_RESET
+ param iIntrSelectNum :: -1
+}
+
+object Non_Maskable :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_NMI
+ param iIntrSelectNum :: -1
+}
+
+object Reserved :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_RESERVED0
+ param iIntrSelectNum :: -1
+}
+
+object Host_Port_Host_to_DSP :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT13
+ param iIntrSelectNum :: 0
+}
+
+object DSPINT :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 0
+}
+
+object Timer_0 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT14
+ param iIntrSelectNum :: 1
+}
+
+object Timer_1 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT15
+ param iIntrSelectNum :: 2
+}
+
+object EMIF_SDRAM_Timer :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT10
+ param iIntrSelectNum :: 3
+}
+
+object External_Pin_4 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 4
+}
+
+object External_Pin_5 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT5
+ param iIntrSelectNum :: 5
+}
+
+object External_Pin_6 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT6
+ param iIntrSelectNum :: 6
+}
+
+object External_Pin_7 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT7
+ param iIntrSelectNum :: 7
+}
+
+object EDMA_Controller :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT8
+ param iIntrSelectNum :: 8
+}
+
+object HSRTDX11 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT11
+ param iIntrSelectNum :: 10
+}
+
+object HSRTDX12 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT12
+ param iIntrSelectNum :: 11
+}
+
+object MCSP_0_Transmit :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 12
+}
+
+object MCSP_0_Receive :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 13
+}
+
+object MCSP_1_Transmit :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 14
+}
+
+object MCSP_1_Receive :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT4
+ param iIntrSelectNum :: 15
+}
+
+object GPIO_Interrupt_0 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 16
+}
+
+object I2C_Interrupt_0 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 22
+}
+
+object I2C_Interrupt_1 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 23
+}
+
+object MCASP_0_Transmit :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 28
+}
+
+object MCASP_0_Receive :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 29
+}
+
+object MCASP_1_Transmit :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 30
+}
+
+object MCASP_1_Receive :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 31
+}
+
+type LOG {
+ isa ObjectMgr
+ prop name :: "LOG"
+ prop Label :: "LOG - Event Log Manager"
+ prop IsContainedIn :: INS
+ prop GlobalIcon :: 113
+ prop InstanceIcon :: 114
+ prop InstanceHelpTopic :: (207)
+ prop GlobalHelpTopic :: (107)
+ prop InstancePropertyPage :: ("{B7240DE8-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop GlobalPropertyPage :: ("{B7240DE9-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop maxObjs :: (32767)
+ prop AllocType :: ("1\0, _globalAllocDesc, _memSeg, _placement")
+ prop _globalAllocDesc :: ("%8t .%1L: RUN_START(%1U_A_TABBEG), RUN_START(_%1U_A_TABBEG), RUN_END(%1U_A_TABEND), RUN_END(_%1U_A_TABEND) {%8t\n }\0, name")
+ prop objectSize :: (if (GBL.DSPTYPE == 28 || (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") || (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE")) {$a = (10 * 4)} , if (GBL.DSPTYPE == 62 || GBL.DSPTYPE == 54 || (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL")) {$a = (6 * 4)} , $a)
+ prop _placement :: (0x7fffffff / 2)
+ prop AllocInst :: ("1\0, _instAllocDesc, _objMemSeg, _placement")
+ prop GenLinkEpilogue :: ("%0tLOG_A_TABLEN = %1d; _LOG_A_TABLEN = %1d;\n\0, numInst")
+ prop _instAllocDesc :: ("%8t /* %0s buffer */\n .%0s$buf: align = 0x%1x {}\0, _objAlign")
+ prop _objSize :: if GBL.DSPTYPE == 55 {(2 * self.objectSize())} else {self.objectSize()}
+ prop _memSeg :: LOG.OBJMEMSEG
+ prop _linkString :: if self.gNumOf > 0 {"*(.%1L)"} else {"/* no %1U objects */"}
+ prop _objAlign :: if GBL.DSPTYPE == 55 {self.buflen * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE) * 2} else {self.buflen * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE)}
+ prop _objMemSeg :: self.bufseg
+ prop LogType :: self.iType
+ prop LogFormat :: self.iFormat
+ prop pageString :: (if GBL.DSPTYPE == 62 {""} else {if (GBL.DSPTYPE == 55 || GBL.DSPTYPE == 28) {(if LOG.OBJMEMSEG.space() == "code" {" PAGE 0"} else {if LOG.OBJMEMSEG.space() == "data" {" PAGE 1"} else {if LOG.OBJMEMSEG.space() == "io" {" PAGE 2"} else {" PAGE 0"}}})} else {" PAGE 1"}})
+ prop numInst :: (LOG.gNumOf)
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"log.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far LOG_Obj %0r;\n\0"} else {"extern LOG_Obj %0r;\n\0"})
+ prop dataSize :: ($d = 0, scan ($i; LOG) {if ($i.IsConfObj()) {$d += $i.buflen} , $d += self.objectSize()}, $d)
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global ENABLED :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Compile in logging"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global TS :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "timestamped LOGs"
+ prop JSName :: "TS"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst bufseg :: = self.OBJMEMSEG {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "bufseg"
+ prop JSName :: "bufSeg"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst buflen :: 64 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "0,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,524288,1048576,2097152,4194304,8388608,16777216,33554432"
+ prop Label :: "buflen (words)"
+ prop JSName :: "bufLen"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (GlobalStatus.gDirty = 1, self.buflen = $1, "ok")
+ }
+ inst logtype :: "circular" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "circular,fixed"
+ prop Label :: "logtype"
+ prop JSName :: "logType"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst iType :: "printf" {
+ prop Label :: "datatype"
+ prop JSName :: "dataType"
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "printf,raw data"
+ prop Visible :: 1
+ prop Writable :: if self.iType == "system" {0} else {1}
+ prop NoGen :: 0
+ }
+ inst iFormat :: "0x%x, 0x%x, 0x%x" {
+ prop Label :: "format"
+ prop JSName :: "format"
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: if self.iType == "raw data" {1} else {0}
+ prop NoGen :: 0
+ }
+}
+
+object LOG_system :: LOG {
+ param iComment :: "This object is required by the system to accumulate execution trace information"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "LOG"
+ param iDelMsg :: "LOG_system is a system log and cannot be deleted."
+ param bufseg :: IRAM
+ param buflen :: 64
+ param logtype :: "circular"
+ param iType :: "system"
+ param iFormat :: "0x%x, 0x%x, 0x%x"
+}
+
+type PIP {
+ isa ObjectMgr
+ prop Label :: "PIP - Buffered Pipe Manager"
+ prop IsContainedIn :: IOF
+ prop GlobalIcon :: 117
+ prop InstanceIcon :: 118
+ prop GlobalHelpTopic :: (109)
+ prop InstanceHelpTopic :: (209)
+ prop name :: "PIP"
+ prop maxObjs :: (32767)
+ prop objectSize :: (if (GBL.DSPTYPE == 54 && GBL.FARMODE == 0) {$a = (27 * 4)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 1) {$a = (34 * 4)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL") {$a = (30 * 4)} , if (GBL.DSPTYPE == 28 || (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") || (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE")) {$a = (50 * 4)} , if (GBL.DSPTYPE == 62) {$a = (25 * 4)} , $a)
+ prop dataSize :: ($b = 0, scan ($i; PIP) {if ($i.IsConfObj()) {$b += (12 + $i.framesize) * $i.numframes + self.objectSize()} }, $b)
+ prop InstancePropertyPage :: ("{B7240DF0-AA51-11cf-9BFE-0000C0AC14C8}")
+ prop GlobalPropertyPage :: ("{B7240DF1-AA51-11cf-9BFE-0000C0AC14C8}")
+ prop localCreate :: ("ok")
+ prop AllocType :: ("1\0, _globalAllocDesc, _memSeg, _placement")
+ prop _globalAllocDesc :: ("%8t .%1L: RUN_START(%1U_A_TABBEG), RUN_START(_%1U_A_TABBEG), RUN_END(%1U_A_TABEND), RUN_END(_%1U_A_TABEND) {%8t\n }\0, name")
+ prop AllocInst :: ("1\0, _instAllocDesc, _objMemSeg, _placement")
+ prop GenLinkEpilogue :: ("%0tPIP_A_TABLEN = %1d;\n\0, numInst")
+ prop _instAllocDesc :: (if self.bufalign > 0 {"%8t /* %0s buffer */\n .pip%1d: align = 0x%2x {}\0, _objId, _objAlign"} else {"%8t /* %0s buffer */\n .pip%1d: {}\0, _objId"})
+ prop _placement :: (0x7fffffff / 2)
+ prop _objId :: self.iId
+ prop _objAlign :: self.bufalign * 4
+ prop _objMemSeg :: self.bufseg
+ prop _linkString :: if (self.gNumOf + self.gNumEmbed) > 0 {"*(.%1L)"} else {"/* no %1U objects */"}
+ prop _memSeg :: PIP.OBJMEMSEG
+ prop _objSize :: if GBL.DSPTYPE == 55 {(2 * self.objectSize())} else {self.objectSize()}
+ prop numInst :: (HST.gNumOf + PIP.gNumOf)
+ prop mkId :: (self.iId = self.gNextId++, self.gNumOf++, self.iId)
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"pip.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far PIP_Obj %0r;\n\0"} else {"extern PIP_Obj %0r;\n\0"})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global gNumEmbed :: 2 {
+ prop NoGen :: 0
+ }
+ global gNextId :: 0
+ global OBJSIZE :: = self._objSize
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst bufseg :: = self.OBJMEMSEG {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "bufSeg"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 1
+ }
+ inst bufalign :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "bufAlign"
+ prop Style :: 0x01 | 0x02
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 1
+ prop Set :: ($e = "ok", if ($1 == 0) {$e = self.error("Cannot set align value to 0")} else {self.bufalign = $1}, $e)
+ }
+ inst buf :: "<NULL>" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst framesize :: 8 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "framesize (words)"
+ prop JSName :: "frameSize"
+ prop Style :: if GBL.DSPTYPE == 62 {0x02} else {0x01 | 0x02}
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ prop Set :: (if ($1 < 1) {self.error("framesize must be >= 1.")} else {GlobalStatus.gDirty = 1, self.framesize = $1, "ok"})
+ }
+ inst numframes :: 2 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop JSName :: "numFrames"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ prop Set :: (if ($1 < 1) {self.error("Pipes must contain at least 1 frame.")} else {GlobalStatus.gDirty = 1, self.numframes = $1, "ok"})
+ }
+ inst monitor :: "reader" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "monitor"
+ prop Enum :: "reader,writer,none"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst notifyWriter :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "notifyWriterFxn"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ prop TabName :: "Notify Functions"
+ }
+ inst nwarg0 :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "notifyWriterArg0"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ prop TabName :: "Notify Functions"
+ }
+ inst nwarg1 :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "notifyWriterArg1"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ prop TabName :: "Notify Functions"
+ }
+ inst notifyReader :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "notifyReaderFxn"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ prop TabName :: "Notify Functions"
+ }
+ inst nrarg0 :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "notifyReaderArg0"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ prop TabName :: "Notify Functions"
+ }
+ inst nrarg1 :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "notifyReaderArg1"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ prop TabName :: "Notify Functions"
+ }
+ inst bufFrameAlign :: = self._objAlign {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+}
+
+type SEM {
+ isa ObjectMgr
+ prop name :: "SEM"
+ prop Label :: "SEM - Semaphore Manager"
+ prop IsContainedIn :: SYN
+ prop GlobalIcon :: 137
+ prop InstanceIcon :: 138
+ prop GlobalHelpTopic :: (310)
+ prop InstanceHelpTopic :: (410)
+ prop InstancePropertyPage :: ("{D01ACC04-38DD-11d1-988B-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{D01ACC05-38DD-11d1-988B-0020AFEE33C6}")
+ prop maxObjs :: (32767)
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _globalAllocDesc, _memSeg, _placement"} )
+ prop _globalAllocDesc :: ("%8t .sem: {}")
+ prop _placement :: (0x7fffffff / 2)
+ prop _memSeg :: self.OBJMEMSEG
+ prop objectSize :: (if (GBL.DSPTYPE == 62) {$a = (8 + 3)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 1) {$a = (10 + 4)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 0) {$a = (8 + 3)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") {$a = (16 + 6)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE") {$a = (16 + 6)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL") {$a = (10 + 4)} , if (GBL.DSPTYPE == 28) {$a = (16 + 6)} , $a)
+ prop dataSize :: (SEM.objectSize * SEM.gNumOf * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE))
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"sem.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far SEM_Obj %0r;\n\0"} else {"extern SEM_Obj %0r;\n\0"})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CALLBACKOBJ :: nil {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iCount :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Label :: "Initial semaphore count"
+ prop JSName :: "count"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+}
+
+type MBX {
+ isa ObjectMgr
+ prop name :: "MBX"
+ prop Label :: "MBX - Mailbox Manager"
+ prop IsContainedIn :: SYN
+ prop GlobalIcon :: 131
+ prop InstanceIcon :: 132
+ prop GlobalHelpTopic :: (307)
+ prop InstanceHelpTopic :: (407)
+ prop InstancePropertyPage :: ("{0EB45D44-38C1-11d1-988B-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{0EB45D45-38C1-11d1-988B-0020AFEE33C6}")
+ prop maxObjs :: (32767)
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _bssAllocDesc, _memSeg, _placement"} )
+ prop _bssAllocDesc :: ("%8t .mbx: {}")
+ prop _placement :: (0x7fffffff / 2)
+ prop _memSeg :: self.OBJMEMSEG
+ prop AllocInst :: ("1\0 _instAllocDesc, _instMemSeg, _placement")
+ prop _instAllocDesc :: ("%8t .%0s$que: align = 0x4 {%12t\n %0s$queElems = .;\n . += %1d;%8t\n }\0, _qElemSize")
+ prop _instMemSeg :: self.iMbxSeg
+ prop _qElemSize :: (if ((GBL.DSPTYPE == 55) && (GBL.DSPSUBTYPE != 5599)) {$a = self.iMsgSize, if ($a & 0x1) {$a += 1} , (8 + $a) * self.iMbxLength * 2} else {if (GBL.DSPTYPE == 28) {$a = self.iMsgSize, if ($a & 0x1) {$a += 1} , (8 + $a) * self.iMbxLength} else {$a = self.iMsgSize, $b = GBL.DSPWORDSIZE / GBL.DSPCHARSIZE, $c = $a & ($b - 1), if ($c != 0) {$a = $a + ($b - $c)} , (8 + $a) * self.iMbxLength}})
+ prop objectSize :: (if (GBL.DSPTYPE == 62) {$a = (29)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 1) {$a = (28)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 0) {$a = (24)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") {$a = (46)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE") {$a = (46)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL") {$a = (28)} , if (GBL.DSPTYPE == 28) {$a = (46)} , $a)
+ prop dataSize :: ($d = 0, scan ($i; MBX) {$d += (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE) * (($i.iMsgSize + 2) * $i.iMbxLength + self.objectSize())}, $d)
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"mbx.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far MBX_Obj %0r;\n\0"} else {"extern MBX_Obj %0r;\n\0"})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CALLBACKOBJ :: nil {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iMsgSize :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Label :: "Message Size"
+ prop JSName :: "messageSize"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop Set :: (if ($1 == 0) {self.error("Message size cannot be zero")} else {GlobalStatus.gDirty = 1, self.iMsgSize = $1, "ok"})
+ }
+ inst iMbxLength :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Label :: "Mailbox Length"
+ prop JSName :: "length"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop Set :: (if ($1 == 0) {self.error("Mailbox length cannot be zero")} else {GlobalStatus.gDirty = 1, self.iMbxLength = $1, "ok"})
+ }
+ inst iMbxSeg :: MBX.OBJMEMSEG {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Element memory segment"
+ prop JSName :: "elementSeg"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+}
+
+type QUE {
+ isa ObjectMgr
+ prop name :: "QUE"
+ prop Label :: "QUE - Atomic Queue Manager"
+ prop IsContainedIn :: SYN
+ prop GlobalIcon :: 133
+ prop InstanceIcon :: 134
+ prop IsConfMod :: 1
+ prop GlobalHelpTopic :: (309)
+ prop InstanceHelpTopic :: (409)
+ prop InstancePropertyPage :: ("{D01ACC01-38DD-11d1-988B-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{D01ACC02-38DD-11d1-988B-0020AFEE33C6}")
+ prop maxObjs :: (32767)
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _globalAllocDesc, _memSeg, _placement"} )
+ prop _globalAllocDesc :: ("%8t .que: {}")
+ prop _placement :: (0x7fffffff / 2)
+ prop _memSeg :: self.OBJMEMSEG
+ prop objectSize :: (if (GBL.DSPTYPE == 62) {$a = (2)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 1) {$a = (2)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 0) {$a = (2)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") {$a = (4)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE") {$a = (4)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL") {$a = (2)} , if (GBL.DSPTYPE == 28) {$a = (4)} , $a)
+ prop dataSize :: (QUE.objectSize * QUE.gNumOf * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE))
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"que.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far QUE_Obj %0r;\n\0"} else {"extern QUE_Obj %0r;\n\0"})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CALLBACKOBJ :: nil {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+type LCK {
+ isa ObjectMgr
+ prop name :: "LCK"
+ prop Label :: "LCK - Resource Lock Manager"
+ prop IsContainedIn :: SYN
+ prop GlobalIcon :: 129
+ prop InstanceIcon :: 130
+ prop IsConfMod :: 1
+ prop GlobalHelpTopic :: (306)
+ prop InstanceHelpTopic :: (406)
+ prop InstancePropertyPage :: ("{0EB45D40-38C1-11d1-988B-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{0EB45D41-38C1-11d1-988B-0020AFEE33C6}")
+ prop maxObjs :: (32767)
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _bssAllocDesc, _memSeg, _placement"} )
+ prop _bssAllocDesc :: ("%8t .lck: {}")
+ prop _objAllocDesc :: ("%8t .LCK$obj: {}")
+ prop _placement :: (0x7fffffff / 2)
+ prop _memSeg :: self.OBJMEMSEG
+ prop objectSize :: (if (GBL.DSPTYPE == 62) {$a = (10)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 1) {$a = (12)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 0) {$a = (10)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") {$a = (20)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE") {$a = (20)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL") {$a = (12)} , if (GBL.DSPTYPE == 28) {$a = (20)} , $a)
+ prop dataSize :: (LCK.objectSize * LCK.gNumOf * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE))
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"lck.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far LCK_Obj %0r;\n\0"} else {"extern LCK_Obj %0r;\n\0"})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CALLBACKOBJ :: nil {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+type STS {
+ isa ObjectMgr
+ prop name :: "STS"
+ prop Label :: "STS - Statistics Object Manager"
+ prop IsContainedIn :: INS
+ prop GlobalIcon :: 125
+ prop InstanceIcon :: 126
+ prop InstanceHelpTopic :: (212)
+ prop GlobalHelpTopic :: (112)
+ prop AllocType :: ("1\0, _globalAllocDesc, _memSeg, _placement")
+ prop _globalAllocDesc :: ("%8t .%1L: RUN_START(%1U_A_TABBEG), RUN_START(_%1U_A_TABBEG), RUN_END(%1U_A_TABEND), RUN_END(_%1U_A_TABEND) {%8t\n }\0, name")
+ prop localInit :: (if (PRD.CALLBACKOBJ != nil) {self.error("STS initialization failure")} , PRD.CALLBACKOBJ = STS)
+ prop objectSize :: ((4 * 4))
+ prop _placement :: (0x7fffffff / 2)
+ prop _linkString :: if self.gNumOf > 0 {"*(.%1L)"} else {"/* no %1U objects */"}
+ prop _memSeg :: STS.OBJMEMSEG
+ prop _objSize :: if GBL.DSPTYPE == 55 {(2 * self.objectSize())} else {self.objectSize()}
+ prop dataSize :: (self.objectSize() * (STS.gNumOf + STS.gNumEmbed))
+ prop maxObjs :: (32767)
+ prop InstancePropertyPage :: ("{B7240DEE-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop GlobalPropertyPage :: ("{B7240DEF-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop STSGetMaxFmt :: (self.format)
+ prop STSGetSumFmt :: (self.format)
+ prop STSGetAvgFmt :: ("%.2f")
+ prop STSFilterSum :: ((self.iA * $1 + self.iB * $2) / (1.0 * self.iC))
+ prop STSFilterMax :: ((self.iA * $1 + self.iB) / (1.0 * self.iC))
+ prop HighTimeBased :: (if self.unittype == "High resolution time based" {1} else {0})
+ prop LowTimeBased :: (if self.unittype == "Low resolution time based" {1} else {0})
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"sts.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far STS_Obj %0r;\n\0"} else {"extern STS_Obj %0r;\n\0"})
+ prop modifiable :: ((if (self.iDelUser == "USER" || self.iDelUser == "HWI") {1} else {0}))
+ prop untype :: (if (self.unittype == "Not time based") {$a = 2} , if (self.unittype == "High resolution time based") {$a = 0} , if (self.unittype == "Low resolution time based") {$a = 1} , $a)
+ prop optype :: (if (self.operation == "Nothing") {$a = 0} , if (self.operation == "A * x") {$a = 1} , if (self.operation == "A * x + B") {$a = 2} , if (self.operation == "(A * x + B) / C") {$a = 3} , $a)
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global gNumEmbed :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst prev :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: self.modifiable()
+ prop JSName :: "previousVal"
+ prop NoGen :: GBL.DSPTYPE != 40 && GBL.DSPTYPE != 62
+ prop Set :: (self.prev = $1, self.prevlow = $1 & 0xffff, self.prevhigh = ($1 >> 16) & 0xffff, "ok")
+ }
+ inst format :: "%g" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "format"
+ prop NoGen :: 1
+ }
+ inst filter :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "filter"
+ prop NoGen :: 0
+ }
+ inst maxformat :: "%g" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "maxformat"
+ prop NoGen :: 0
+ }
+ inst sumformat :: "%g" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "sumformat"
+ prop NoGen :: 0
+ }
+ inst avgformat :: "%.2f" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "avgformat"
+ prop NoGen :: 0
+ }
+ inst unittype :: "Not time based" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "Not time based,High resolution time based,Low resolution time based"
+ prop Label :: "unit type"
+ prop JSName :: "unitType"
+ prop Visible :: 1
+ prop Writable :: self.modifiable()
+ prop NoGen :: 1
+ prop Set :: (self.unittype = $1, if ($1 == "High resolution time based") {self.iA = 1, self.iB = 0, self.iC = 1, self.operation = "A * x"} else {if ($1 == "Low resolution time based") {self.iA = 1, self.iB = 0, self.iC = 1, self.operation = "A * x"} else {self.iA = 1, self.iB = 0, self.iC = 1, self.operation = "Nothing"}}, "ok")
+ }
+ inst operation :: "Nothing" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "Nothing,A * x,A * x + B,(A * x + B) / C"
+ prop Label :: "host operation"
+ prop JSName :: "operation"
+ prop Visible :: 1
+ prop Writable :: ((self.unittype != "Low resolution time based") && self.modifiable())
+ prop NoGen :: 1
+ prop Set :: (self.operation = $1, if ($1 == "Nothing" && self.unittype != "High resolution time based") {self.iA = 1, self.iB = 0, self.iC = 1} else {if ($1 == "A * x") {self.iB = 0, self.iC = 1} else {if ($1 == "A * x + B") {self.iC = 1} }}, "ok")
+ }
+ inst op :: = self.optype() {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst uType :: = self.untype() {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst iA :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: (self.modifiable() && !(self.unittype != "Not time based" || self.operation == "Nothing"))
+ prop Label :: "A"
+ prop JSName :: "numA"
+ prop NoGen :: 0
+ }
+ inst iB :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: (self.modifiable() && !(self.unittype == "Low resolution time based" || self.operation == "Nothing" || self.operation == "A * x"))
+ prop Label :: "B"
+ prop JSName :: "numB"
+ prop NoGen :: 0
+ }
+ inst iC :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: (self.modifiable() && (self.unittype == "Not time based" && self.operation == "(A * x + B) / C"))
+ prop Label :: "C"
+ prop JSName :: "numC"
+ prop NoGen :: 0
+ }
+ inst prevhigh :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: GBL.DSPTYPE == 40 || GBL.DSPTYPE == 62
+ }
+ inst prevlow :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+}
+
+type SYS {
+ isa Module
+ prop name :: "SYS"
+ prop Label :: "SYS - System Settings"
+ prop IsContainedIn :: SYSTEM
+ prop GlobalIcon :: 141
+ prop InstanceIcon :: 142
+ prop IsConfMod :: 1
+ prop GlobalHelpTopic :: (313)
+ prop InstanceHelpTopic :: (413)
+ prop InstancePropertyPage :: ("{473C4A62-B1A8-11d0-9885-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{473C4A63-B1A8-11d0-9885-0020AFEE33C6}")
+ prop AllocType :: (if self.PUTCFXN == @_UTL_doPutc {"2\0, _globalAllocDesc, _memSeg, _midPlace, _traceString, _traceSeg, _midPlace"} else {"1\0, _globalAllocDesc, _memSeg, _midPlace"})
+ prop _globalAllocDesc :: ("%8t .sys: {}")
+ prop _traceString :: ("%8t .trace: fill = 0x0 align = 0x4 {%12t\n_SYS_PUTCBEG = .;\n. += 0x%1x;\n_SYS_PUTCEND = . - 1;%8t\n }\0, _traceSize")
+ prop _midPlace :: (0x7fffffff / 2)
+ prop _memSeg :: MEM.CFGOBJSEG
+ prop _traceSeg :: SYS.TRACESEG
+ prop _traceSize :: SYS.TRACESIZE
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CALLBACKOBJ :: nil {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global TRACESIZE :: 512 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: "%d"
+ prop Style :: 0x01 | 0x02
+ prop Label :: "Trace Buffer Size"
+ prop JSName :: "TRACESIZE"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global TRACESEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Trace Buffer Memory"
+ prop JSName :: "TRACESEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global ABORTFXN :: @_UTL_doAbort {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Abort Function"
+ prop JSName :: "ABORTFXN"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global ERRORFXN :: @_UTL_doError {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Error Function"
+ prop JSName :: "ERRORFXN"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global EXITFXN :: @_UTL_halt {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Exit Function"
+ prop JSName :: "EXITFXN"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global PUTCFXN :: @_UTL_doPutc {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Putc Function"
+ prop JSName :: "PUTCFXN"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+}
+
+type SIO {
+ isa ObjectMgr
+ prop name :: "SIO"
+ prop Label :: "SIO - Stream Input and Output Manager"
+ prop IsContainedIn :: IOF
+ prop DependsOn :: "DIO,DGN,DHL,DPI"
+ prop GlobalIcon :: 139
+ prop InstanceIcon :: 140
+ prop GlobalHelpTopic :: (311)
+ prop InstanceHelpTopic :: (411)
+ prop InstancePropertyPage :: ("{7C4C9A60-763E-11d1-988B-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{7C4C9A61-763E-11d1-988B-0020AFEE33C6}")
+ prop maxObjs :: (32767)
+ prop AllocType :: (if (self.gNumOf > 0) {"2\0, _bssAllocDesc, _memSeg, _placement,
+ _objAllocDesc, _memSeg, _placement"} )
+ prop _bssAllocDesc :: ("%8t .SIO$bss: {%12t\n *(.SIO$bss)%8t\n }")
+ prop _objAllocDesc :: ("%8t .SIO$obj: {%12t\n *(.SIO$obj)%8t\n }")
+ prop _placement :: (0x7fffffff / 2)
+ prop _memSeg :: self.OBJMEMSEG
+ prop AllocInst :: ("1\0, _instBufDesc, _instBufSeg, _placement")
+ prop _instBufDesc :: (if self.iAlign > 1 {"%8t .%0s$bufs: align = 0x%1x {}\0, _objAlign"} else {"%8t .%0s$bufs: {}"})
+ prop _objAlign :: self.iAlign
+ prop _instBufSeg :: self.iBufSegid
+ prop defDev :: ($h = nil, $i = nil, $j = nil, scan ($h; nil) {if ($h.isDriver == 1) {scan ($i; $h) {if ($j == nil && $i.iIsTerminal != 0 && $i.iIsVirtual == 0) {$j = $i, break} }} }, $j)
+ prop devList :: ($h = nil, $i = nil, $j = nil, scan ($h; nil) {if ($h.isDriver == 1) {scan ($i; $h) {if ($j == nil && $i.iIsTerminal != 0 && $i.iIsVirtual == 0) {$j = $i, scan ($a; DIO) {if ($a == $i) {$i.numTimeUse++} }, break} }} }, $j)
+ prop setDev :: ($h = nil, $i = nil, $j = nil, scan ($h; nil) {if ($h.isDriver == 1) {scan ($i; $h) {if ($i == $1) {$j = $i} }} }, $j)
+ prop localCanCreate :: (if (self.defDev == nil) {self.error("A driver device must be created before creating a stream.")} else {"ok"})
+ prop localDelete :: (scan ($a; DIO) {if ($a == self.iDevice) {self.iDevice.numTimeUse--} }, "ok")
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"sio.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far SIO_Obj %0r;\n\0"} else {"extern SIO_Obj %0r;\n\0"})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumEmbed :: 0 {
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global USEISSUERECLAIM :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Use Only Issue/Reclaim Model"
+ prop JSName :: "USEISSUERECLAIM"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: (self.USEISSUERECLAIM = $1, if ($1 == 1) {scan ($i; SIO) {$i.iModelName = "Issue/Reclaim"}} , "ok")
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDevice :: SIO.devList {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop TypeTest :: $1.isDriver == 1
+ prop MemberTest :: $1.driverType != "DEV_IOMTYPE"
+ prop Label :: "Device"
+ prop JSName :: "deviceName"
+ prop Set :: (if (($1.iIsTerminal == 0) && (self.iDevCtrlParam == "")) {self.error("To select a stacking device, enter first a terminal device in Device Control String")} else {if ($1.iIsVirtual == 1) {self.error("The device you have selected is a virtual instance, you must select a non-virtual device")} else {scan ($a; DIO) {if ($a == self.iDevice) {self.iDevice.numTimeUse--} }, scan ($b; DIO) {if ($b == $1) {$1.numTimeUse++} }, self.iDevice = self.setDev($1), "ok"}})
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ inst iDevCtrlParam :: "" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Device Control String"
+ prop JSName :: "controlParameter"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ inst iDevId :: = self.iDevice.iDevId
+ inst iFxns :: = self.iDevice.iFxns
+ inst iMode :: "input" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "input,output"
+ prop Label :: "Mode"
+ prop JSName :: "mode"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ inst iBufsize :: 0x80 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Label :: "Buffer size"
+ prop JSName :: "bufSize"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ inst iNbufs :: 2 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Label :: "Number of buffers"
+ prop JSName :: "numBufs"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ inst iBufSegid :: = self.OBJMEMSEG {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Place buffers in memory segment"
+ prop JSName :: "bufSegId"
+ prop Visible :: 1
+ prop Writable :: self.iAllocBuf == 1
+ }
+ inst iAlign :: 1 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768"
+ prop Label :: "Buffer alignment"
+ prop JSName :: "bufAlign"
+ prop Visible :: 1
+ prop Writable :: self.iAllocBuf == 1
+ }
+ inst iFlush :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Flush"
+ prop JSName :: "flush"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ inst iModelName :: "Standard" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "Standard,Issue/Reclaim"
+ prop Label :: "Model"
+ prop JSName :: "modelName"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: ($e = "ok", if (self.USEISSUERECLAIM == 1) {if ($1 == "Standard") {$e = self.error("SIO Issue/Reclaim model support selected")} else {self.iModel = if $1 == "Standard" {"SIO_STANDARD"} else {"SIO_ISSUERECLAIM"}, self.iModelName = $1}} else {self.iModel = if $1 == "Standard" {"SIO_STANDARD"} else {"SIO_ISSUERECLAIM"}, self.iModelName = $1}, $e)
+ }
+ inst iAllocBuf :: = self.iSaveAllocBuf {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Allocate Static Buffer(s)"
+ prop JSName :: "allocStaticBuf"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop Set :: (self.iSaveAllocBuf = $1, "ok")
+ }
+ inst iSaveAllocBuf :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst iModel :: "SIO_STANDARD" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "SIO_STANDARD,SIO_ISSUERECLAIM"
+ prop Visible :: 0
+ prop Writable :: 0
+ }
+ inst iTimeout :: = if self.iModel == "SIO_ISSUERECLAIM" {self.iSaveTimeout} else {-1} {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Timeout for I/O operation"
+ prop JSName :: "timeout"
+ prop Visible :: 1
+ prop Writable :: self.iModel == "SIO_ISSUERECLAIM"
+ prop Set :: (self.iSaveTimeout = $1, "ok")
+ }
+ inst iSaveTimeout :: -1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst useCallBackFxn :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "use callback function"
+ prop JSName :: "useCallBackFxn"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop TabName :: "Callback"
+ }
+ inst callBackFxn :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "callback function"
+ prop JSName :: "callBackFxn"
+ prop Visible :: 1
+ prop Writable :: self.useCallBackFxn
+ prop NoGen :: 0
+ prop TabName :: "Callback"
+ }
+ inst arg0 :: 0 {
+ prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
+ prop Label :: "argument 0"
+ prop JSName :: "arg0"
+ prop Visible :: 1
+ prop Writable :: self.useCallBackFxn
+ prop NoGen :: 0
+ prop TabName :: "Callback"
+ }
+ inst arg1 :: 0 {
+ prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
+ prop Label :: "argument 1"
+ prop JSName :: "arg1"
+ prop Visible :: 1
+ prop Writable :: self.useCallBackFxn
+ prop NoGen :: 0
+ prop TabName :: "Callback"
+ }
+}
+
+type GIO {
+ isa Module
+ prop Visible :: 1
+ prop name :: "GIO"
+ prop Label :: "GIO - General Input/Output Manager"
+ prop IsConfMod :: self.USEGIO
+ prop IsContainedIn :: IOF
+ prop DependsOn :: "UDEV"
+ prop GlobalIcon :: 141
+ prop InstanceIcon :: 142
+ prop GlobalHelpTopic :: (320)
+ prop InstanceHelpTopic :: (420)
+ prop InstancePropertyPage :: ("{473C4A62-B1A8-11d0-9885-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{473C4A63-B1A8-11d0-9885-0020AFEE33C6}")
+ prop AllocType :: ("1\0, _globalAllocDesc, _memSeg, _midPlace")
+ prop _globalAllocDesc :: ("%8t .gio: {}")
+ prop _midPlace :: (0x7fffffff / 2)
+ prop _memSeg :: MEM.CFGOBJSEG
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CALLBACKOBJ :: nil {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global USEGIO :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable General Input/Output Manager"
+ prop JSName :: "ENABLEGIO"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global CREATEFXN :: = if self.USEGIO == 1 {@_SEM_create} else {@_FXN_F_nop} {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Create Function"
+ prop JSName :: "CREATEFXN"
+ prop Visible :: 1
+ prop Writable :: self.USEGIO
+ prop NoGen :: 0
+ }
+ global DELETEFXN :: = if self.USEGIO == 1 {@_SEM_delete} else {@_FXN_F_nop} {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Delete Function"
+ prop JSName :: "DELETEFXN"
+ prop Visible :: 1
+ prop Writable :: self.USEGIO
+ prop NoGen :: 0
+ }
+ global PENDFXN :: = if self.USEGIO == 1 {@_SEM_pend} else {@_FXN_F_nop} {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Pend Function"
+ prop JSName :: "PENDFXN"
+ prop Visible :: 1
+ prop Writable :: self.USEGIO
+ prop NoGen :: 0
+ }
+ global POSTFXN :: = if self.USEGIO == 1 {@_SEM_post} else {@_FXN_F_nop} {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Post Function"
+ prop JSName :: "POSTFXN"
+ prop Visible :: 1
+ prop Writable :: self.USEGIO
+ prop NoGen :: 0
+ }
+}
+
+type DEV {
+ isa ObjectMgr
+ prop name :: "DEV"
+ prop Visible :: 0
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _bssAllocDesc, _memSeg, _placement"} , if (self.devCount() > 0) {"1\0, _devtableDesc, _memSeg, _placement"} )
+ prop _bssAllocDesc :: ("%8t .dev: {}")
+ prop _devtableDesc :: ("%8t .devtable: {}")
+ prop _memSeg :: MEM.CFGOBJSEG
+ prop _placement :: (0x7fffffff / 2)
+ prop DependsOn :: "HWI"
+ prop devCount :: ($i = nil, $a = 0, scan ($i; nil) {if ($i.isDriver == 1) {$a = $a + $i.gNumOf} }, $a)
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+type UDEV {
+ isa ObjectMgr
+ prop name :: "UDEV"
+ prop Label :: "User-Defined Devices"
+ prop IsContainedIn :: SIODRIVER
+ prop DependsOn :: "DEV"
+ prop GlobalIcon :: 127
+ prop InstanceIcon :: 128
+ prop GlobalHelpTopic :: (315)
+ prop InstanceHelpTopic :: (415)
+ prop InstancePropertyPage :: ("{7AE86AA0-35C0-11d1-988B-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{7AE86AA1-35C0-11d1-988B-0020AFEE33C6}")
+ prop maxObjs :: (32767)
+ prop isDriver :: (1)
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _globalAllocDesc, _memSeg, _placement"} )
+ prop _globalAllocDesc :: ("%8t .udev: {}")
+ prop _placement :: (0x7fffffff / 2)
+ prop _memSeg :: MEM.CFGOBJSEG
+ prop _driverType :: (if self.fxnTableType == "DEV_Fxns" {"DEV_SIOTYPE"} else {"DEV_IOMTYPE"})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iInit :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "init function"
+ prop JSName :: "initFxn"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: (self.iInit = $1, self.initFxn = self.iInit, "ok")
+ }
+ inst iFxns :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "function table ptr"
+ prop JSName :: "fxnTable"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ inst fxnTableType :: "DEV_Fxns" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "DEV_Fxns,IOM_Fxns"
+ prop Label :: "function table type"
+ prop JSName :: "fxnTableType"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst driverType :: = self._driverType {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "DEV_SIOTYPE,DEV_IOMTYPE"
+ prop Visible :: 0
+ }
+ inst iDevId :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "device id"
+ prop JSName :: "deviceId"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: (self.iDevId = $1, self.deviceId = self.iDevId, "ok")
+ }
+ inst iParams :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "device params ptr"
+ prop JSName :: "params"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ inst deviceId :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: ""
+ prop Visible :: 0
+ }
+ inst initFxn :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: ""
+ prop Visible :: 0
+ }
+ inst iIsStacking :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Stacking Device"
+ prop JSName :: "stackingDevice"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst deviceGlobalDataPtr :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "device global data ptr"
+ prop JSName :: "deviceGlobalDataPtr"
+ prop Visible :: 1
+ prop Writable :: self.fxnTableType == "IOM_Fxns"
+ }
+ inst iIsTerminal :: = if self.fxnTableType == "DEV_Fxns" {1} else {0} {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst iIsVirtual :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+}
+
+type DIO {
+ isa ObjectMgr
+ prop Visible :: 1
+ prop Label :: "DIO - Class Driver"
+ prop name :: "DIO"
+ prop IsContainedIn :: SIODRIVER
+ prop DependsOn :: "UDEV"
+ prop GlobalIcon :: 127
+ prop InstanceIcon :: 127
+ prop GlobalHelpTopic :: (319)
+ prop InstanceHelpTopic :: (419)
+ prop InstancePropertyPage :: ("{f80273c0-3838-11d2-a32c-006097656921}")
+ prop GlobalPropertyPage :: ("{050a0600-3839-11d2-a32c-006097656921}")
+ prop maxObjs :: (32767)
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _globalAllocDesc, _memSeg, _placement"} )
+ prop _globalAllocDesc :: ("%8t .dio: {}")
+ prop _placement :: (0x7fffffff / 2)
+ prop _memSeg :: self.OBJMEMSEG
+ prop isDriver :: (1)
+ prop mdObject :: ($h = nil, $j = nil, scan ($h; UDEV) {if ($h.driverType == "DEV_IOMTYPE") {$j = $h, break} }, $j)
+ prop localCanCreate :: (if (self.mdObject == nil) {self.error("An IOM type device must be created first.")} else {"ok"})
+ prop numTsk :: ($a = 0, $h = nil, scan ($h; DIO) {if ($h.useCallBackFxn == 0) {$a = $a + $h.numTimeUse} }, $a)
+ prop numSwi :: ($a = 0, $h = nil, scan ($h; DIO) {if ($h.useCallBackFxn == 1) {$a = $a + $h.numTimeUse} }, $a)
+ prop functionTablePtr :: (if (self.STATIC) {if (self.useCallBackFxn) {@_DIO_cbStaticFxns} else {@_DIO_tskStaticFxns}} else {if (self.useCallBackFxn) {@_DIO_cbDynamicFxns} else {@_DIO_tskDynamicFxns}})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global STATIC :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Create all DIO Objects Statically"
+ prop JSName :: "STATICCREATE"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global NUMTSKBASE :: = self.numTsk {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "TSK based"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global NUMSWIBASE :: = self.numSwi {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "SWI based"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst useCallBackFxn :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "use callback version of DIO function table (for SWI)"
+ prop JSName :: "useCallBackFxn"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst fxnsTable :: = self.functionTablePtr {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst initFxn :: @_DIO_init {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst deviceName :: self.mdObject {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: UDEV
+ prop MemberTest :: $1.driverType == "DEV_IOMTYPE"
+ prop Label :: "device name"
+ prop JSName :: "deviceName"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst chanParams :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "channel parameters"
+ prop JSName :: "chanParams"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst numTimeUse :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDevId :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iFxns :: = self.functionTablePtr {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iIsTerminal :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst iIsVirtual :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+}
+
+type DGN {
+ isa ObjectMgr
+ prop name :: "DGN"
+ prop Label :: "DGN - Software Generator Driver"
+ prop IsContainedIn :: SIODRIVER
+ prop GlobalIcon :: 127
+ prop InstanceIcon :: 128
+ prop GlobalHelpTopic :: (302)
+ prop InstanceHelpTopic :: (402)
+ prop InstancePropertyPage :: ("{054FE166-B014-11d0-9885-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{054FE167-B014-11d0-9885-0020AFEE33C6}")
+ prop DependsOn :: "DEV"
+ prop maxObjs :: (32767)
+ prop isDriver :: (1)
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _globalAllocDesc, _memSeg, _placement"} )
+ prop _globalAllocDesc :: ("%8t .dgn: {}")
+ prop _placement :: (0x7fffffff / 2)
+ prop _memSeg :: MEM.CFGOBJSEG
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDevice :: "user" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: if GBL.DSPARITHMETIC == "FLOAT" {"user,sine,random,constant,printFloat,printHex,printInt"} else {"user,sine,random,constant,printHex,printInt"}
+ prop Label :: "Device category"
+ prop JSName :: "device"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: ($a = $1, if ($a != self.iDevice) {self.iDevice = $a, self.iUserFxn = @_FXN_F_nop} , if ($a == "user") {self.iUserFxn = self.iSaveUserFxn} , if ($a == "printFloat") {self.iUserFxn = @_DGN_printFloat} , if ($a == "printHex") {self.iUserFxn = @_DGN_printHex} , if ($a == "printInt") {self.iUserFxn = @_DGN_printInt} , "ok")
+ }
+ inst iUseDefaults :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Use default parameters"
+ prop Visible :: 1
+ prop JSName :: "useDefaultParam"
+ prop Writable :: self.iDevice == "sine" || self.iDevice == "constant" || self.iDevice == "random" || self.iDevice == "user"
+ }
+ inst iDevId :: = if self.iDevice == "constant" {@DGN_CONST} else {if self.iDevice == "random" {@DGN_RAND} else {if self.iDevice == "sine" {@DGN_SINE} else {@DGN_USER}}} {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Device ID"
+ prop JSName :: "deviceId"
+ prop Visible :: 1
+ prop Writable :: 0
+ }
+ inst iIsTerminal :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst iIsVirtual :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst iConstant :: if GBL.DSPARITHMETIC == "FIXED" {1} else {1.0} {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: if GBL.DSPARITHMETIC == "FIXED" {0} else {0x04}
+ prop Format :: if GBL.DSPARITHMETIC == "FIXED" {"%d"} else {"%f"}
+ prop Label :: "Constant value"
+ prop JSName :: "constant"
+ prop Visible :: 1
+ prop Writable :: self.iUseDefaults == 0 && (self.iDevice == "constant" || self.iDevice == "user")
+ }
+ inst iRandSeed :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Seed value"
+ prop JSName :: "seedValue"
+ prop Visible :: 1
+ prop Writable :: self.iUseDefaults == 0 && (self.iDevice == "random" || self.iDevice == "user")
+ }
+ inst iRandLower :: if GBL.DSPARITHMETIC == "FIXED" {-32767} else {0.0} {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: if GBL.DSPARITHMETIC == "FIXED" {0} else {0x04}
+ prop Format :: if GBL.DSPARITHMETIC == "FIXED" {"%d"} else {"%f"}
+ prop Label :: "Lower limit"
+ prop JSName :: "lowerLimit"
+ prop Visible :: 1
+ prop Writable :: self.iUseDefaults == 0 && (self.iDevice == "random" || self.iDevice == "user")
+ }
+ inst iRandUpper :: if GBL.DSPARITHMETIC == "FIXED" {32767} else {1.0} {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: if GBL.DSPARITHMETIC == "FIXED" {0} else {0x04}
+ prop Format :: if GBL.DSPARITHMETIC == "FIXED" {"%d"} else {"%f"}
+ prop Label :: "Upper limit"
+ prop JSName :: "upperLimit"
+ prop Visible :: 1
+ prop Writable :: self.iUseDefaults == 0 && (self.iDevice == "random" || self.iDevice == "user")
+ }
+ inst iSineGain :: if GBL.DSPARITHMETIC == "FIXED" {32767} else {1.0} {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: if GBL.DSPARITHMETIC == "FIXED" {0} else {0x04}
+ prop Format :: if GBL.DSPARITHMETIC == "FIXED" {"%d"} else {"%f"}
+ prop Label :: "Gain"
+ prop JSName :: "gain"
+ prop Visible :: 1
+ prop Writable :: self.iUseDefaults == 0 && (self.iDevice == "sine" || self.iDevice == "user")
+ }
+ inst iSineFreq :: if GBL.DSPARITHMETIC == "FIXED" {1} else {1000.0} {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: if GBL.DSPARITHMETIC == "FIXED" {0} else {0x04}
+ prop Format :: if GBL.DSPARITHMETIC == "FIXED" {"%d"} else {"%f"}
+ prop Label :: "Frequency (Hz)"
+ prop JSName :: "frequency"
+ prop Visible :: 1
+ prop Writable :: self.iUseDefaults == 0 && (self.iDevice == "sine" || self.iDevice == "user")
+ }
+ inst iSinePhase :: if GBL.DSPARITHMETIC == "FIXED" {0} else {0.0} {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: if GBL.DSPARITHMETIC == "FIXED" {0} else {0x04}
+ prop Format :: if GBL.DSPARITHMETIC == "FIXED" {"%d"} else {"%f"}
+ prop Label :: "Phase (radians)"
+ prop JSName :: "phase"
+ prop Visible :: 1
+ prop Writable :: self.iUseDefaults == 0 && (self.iDevice == "sine" || self.iDevice == "user")
+ }
+ inst iSineRate :: if GBL.DSPARITHMETIC == "FIXED" {256} else {44000} {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Sample rate (samples/sec)"
+ prop JSName :: "rate"
+ prop Visible :: 1
+ prop Writable :: self.iUseDefaults == 0 && (self.iDevice == "sine" || self.iDevice == "user")
+ }
+ inst iUserFxn :: if self.iDevice == "printFloat" {@_DGN_printFloat} else {if self.iDevice == "printHex" {@_DGN_printHex} else {if self.iDevice == "printInt" {@_DGN_printInt} else {@_FXN_F_nop}}} {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "User function"
+ prop JSName :: "fxn"
+ prop Visible :: 1
+ prop Writable :: self.iDevice == "user"
+ prop Set :: (self.iUserFxn = $1, self.iSaveUserFxn = self.iUserFxn, "ok")
+ }
+ inst iSaveUserFxn :: @_FXN_F_nop {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iUserArg :: = 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "User function argument"
+ prop JSName :: "arg"
+ prop Visible :: 1
+ prop Writable :: self.iDevice == "user"
+ }
+ inst iFxns :: @_DGN_FXNS {
+ prop NoGen :: 1
+ }
+}
+
+type DHL {
+ isa ObjectMgr
+ prop name :: "DHL"
+ prop Label :: "DHL - Host Link Driver"
+ prop IsContainedIn :: SIODRIVER
+ prop GlobalHelpTopic :: (303)
+ prop InstanceHelpTopic :: (403)
+ prop InstancePropertyPage :: ("{9C29DA20-90F9-11d1-988B-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{9C29DA21-90F9-11d1-988B-0020AFEE33C6}")
+ prop GlobalIcon :: 127
+ prop InstanceIcon :: 128
+ prop DependsOn :: "DEV"
+ prop Visible :: 1
+ prop isDriver :: 1
+ prop objectSize :: (if (GBL.DSPTYPE == 62) {$a = (19)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 1) {$a = (22)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 0) {$a = (19)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") {$a = (34)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE") {$a = (34)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL") {$a = (22)} , if (GBL.DSPTYPE == 28) {$a = (34)} , $a)
+ prop dataSize :: (DHL.objectSize * DHL.gNumOf * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE))
+ prop localCanCreate :: (if (self.gChannelsAvailable > 0) {"ok"} else {self.warning("No HST channels are available for a new DHL device.")})
+ prop localCreate :: (self.gChannelsAvailable--, self.seizeHSTChannel(self.iHSTChannel), "ok")
+ prop seizeHSTChannel :: ($1.iDelUser = "DHL", $1.iDHLAvailable = 0, $1.notify = @_DHL_notify, $1.arg0 = $1.iId, "ok")
+ prop localDelete :: (self.gChannelsAvailable++, self.releaseHSTChannel(self.iHSTChannel), "ok")
+ prop releaseHSTChannel :: ($1.iDelUser = "USER", $1.iDHLAvailable = 1, $1.notify = @_FXN_F_nop, $1.arg0 = 0, "ok")
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _globalAllocDesc, _memSeg, _placement"} )
+ prop _globalAllocDesc :: "%8t .dhl: {}"
+ prop _memSeg :: self.OBJMEMSEG
+ prop _placement :: (0x7fffffff / 2)
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gChannelsAvailable :: 0
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iHSTChannel :: (scan ($i; HST) {if ($i.iDHLAvailable == 1) {$a = $i} }, $a) {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Underlying HST Channel"
+ prop JSName :: "hstChannel"
+ prop MemberType :: HST
+ prop MemberTest :: (if (($1.iDHLAvailable == 1) || ($1 == self.iHSTChannel)) {1} else {0})
+ prop Set :: (if ($1.iDHLAvailable != 1) {self.error("This channel is already in use.")} else {self.releaseHSTChannel(self.iHSTChannel), self.seizeHSTChannel($1), self.iHSTChannel = $1, "ok"})
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst iMode :: = self.iHSTChannel.mode {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Mode"
+ prop JSName :: "mode"
+ prop Visible :: 1
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst iDevId :: = (self.iHSTChannel.iId) {
+ prop NoGen :: 0
+ }
+ inst iIsTerminal :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst iIsVirtual :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst iFxns :: @_DHL_FXNS {
+ prop NoGen :: 1
+ }
+}
+
+type DPI {
+ isa ObjectMgr
+ prop name :: "DPI"
+ prop Label :: "DPI - Pipe Driver"
+ prop IsContainedIn :: SIODRIVER
+ prop GlobalIcon :: 127
+ prop InstanceIcon :: 128
+ prop GlobalHelpTopic :: (304)
+ prop InstanceHelpTopic :: (404)
+ prop InstancePropertyPage :: ("{7FE06FA0-2DE9-11d1-988B-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{7FE06FA1-2DE9-11d1-988B-0020AFEE33C6}")
+ prop DependsOn :: "DEV"
+ prop maxObjs :: (32767)
+ prop isDriver :: (1)
+ prop localCreate :: (self.gCurDevId += 1, "ok")
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gCurDevId :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDevId :: DPI.gCurDevId {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop Set :: (self.error("DPI.iDevId parameter no longer settable, it is now handled automatically"))
+ }
+ inst iIsVirtual :: 0 {
+ prop Label :: "Allow virtual instances of this device."
+ prop JSName :: "allowVirtual"
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (if ($1 == 1) {$a = "ok", $b = 1, scan ($i; SIO) {if ($i.iDevice == self) {$a = self.error("This DPI instance is being used by one or more SIO instances, cannot reconfigure"), $b = 0} }, if ($b == 1) {self.iIsVirtual = 1} , $a} else {self.iIsVirtual = 0, "ok"})
+ }
+ inst iIsTerminal :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst iFxns :: @_DPI_FXNS {
+ prop NoGen :: 1
+ }
+}
+
+type MSGQ {
+ isa Module
+ prop Visible :: 1
+ prop name :: "MSGQ"
+ prop Label :: "MSGQ - Message Queue Manager"
+ prop IsConfMod :: self.USEMSGQ
+ prop IsContainedIn :: IOF
+ prop DependsOn :: "GIO,SIO"
+ prop GlobalIcon :: 131
+ prop InstanceIcon :: 132
+ prop GlobalHelpTopic :: (323)
+ prop InstanceHelpTopic :: (423)
+ prop InstancePropertyPage :: ("{473C4A62-B1A8-11d0-9885-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{473C4A63-B1A8-11d0-9885-0020AFEE33C6}")
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global USEMSGQ :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable MSGQ Manager"
+ prop JSName :: "ENABLEMSGQ"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+}
+
+type HOOK {
+ isa ObjectMgr
+ prop name :: "HOOK"
+ prop Label :: "HOOK - Module Hook Manager"
+ prop IsContainedIn :: SYSTEM
+ prop DependsOn :: "SWI"
+ prop InstancePropertyPage :: ("{473C4A64-B1A8-11d0-9885-0020AFEE33C6}")
+ prop GlobalIcon :: 181
+ prop InstanceIcon :: 182
+ prop GlobalHelpTopic :: (318)
+ prop InstanceHelpTopic :: (418)
+ prop localCreate :: (if (self.gNumOf == 0) {HOOK_KNL.iIsUsed = 1, self.mkId(0)} , "ok")
+ prop localDelete :: (if (self.gNumOf == 2) {HOOK_KNL.iIsUsed = 0, self.rmId} , "ok")
+ prop maxObjs :: (32767)
+ prop SortByField :: "iPri"
+ prop SortGroups :: 1
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global KNLID :: = (HOOK_KNL.Order - 1) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst initFxn :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Initialization function"
+ prop JSName :: "initFxn"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ inst createFxn :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Create function"
+ prop JSName :: "createFxn"
+ prop Visible :: 1
+ prop Writable :: self.iDelUser == "USER"
+ }
+ inst deleteFxn :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Delete function"
+ prop JSName :: "deleteFxn"
+ prop Visible :: 1
+ prop Writable :: self.iDelUser == "USER"
+ }
+ inst exitFxn :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Exit function"
+ prop JSName :: "exitFxn"
+ prop Visible :: 1
+ prop Writable :: self.iDelUser == "USER"
+ }
+ inst callSwitchFxn :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Call switch function"
+ prop JSName :: "callSwitchFxn"
+ prop Visible :: 1
+ prop Writable :: self.iDelUser == "USER"
+ }
+ inst switchFxn :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Switch function"
+ prop JSName :: "switchFxn"
+ prop Visible :: 1
+ prop Writable :: self.callSwitchFxn
+ }
+ inst callReadyFxn :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Call ready function"
+ prop JSName :: "callReadyFxn"
+ prop Visible :: 1
+ prop Writable :: self.iDelUser == "USER"
+ }
+ inst readyFxn :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Ready function"
+ prop JSName :: "readyFxn"
+ prop Visible :: 1
+ prop Writable :: self.callReadyFxn
+ }
+ inst Order :: 2 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "order"
+ prop NoGen :: 1
+ prop Writable :: 1
+ }
+ inst iPri :: 0 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop NoGen :: 1
+ }
+}
+
+object HOOK_KNL :: HOOK {
+ param iComment :: "Used to support TSK function hooks (cannot be deleted)"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HOOK"
+ param iDelMsg :: "This hook instance is used by TSK and cannot be deleted"
+ param initFxn :: @_FXN_F_nop
+ param createFxn :: @_FXN_F_nop
+ param deleteFxn :: @_FXN_F_nop
+ param exitFxn :: @_FXN_F_nop
+ param callSwitchFxn :: 0
+ param switchFxn :: @_FXN_F_nop
+ param callReadyFxn :: 0
+ param readyFxn :: @_FXN_F_nop
+ param Order :: 1
+ param iPri :: 0
+}
+
+object SDRAM :: MEM {
+ param iComment :: "This object defines 8MB for the DSP's off-chip memory"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param base :: -2147483648
+ param len :: 8388608
+ param iAllocHeap :: 0
+ param iHeapSize :: 32768
+ param iUserHeapId :: 0
+ param iHeapId :: @segment_name
+ param iReqHeapCount :: 0
+ param space :: "code/data"
+ param dynamicLoading :: 0
+ param iIsModifiable :: 1
+}
+
+object IRAM :: MEM {
+ param iComment :: "Internal L2 memory"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param base :: 0
+ param len :: 262144
+ param iAllocHeap :: 0
+ param iHeapSize :: 32768
+ param iUserHeapId :: 0
+ param iHeapId :: @segment_name
+ param iReqHeapCount :: 0
+ param space :: "code/data"
+ param dynamicLoading :: 0
+ param iIsModifiable :: 1
+}
+
diff --git a/Project/RTDSP/.gconf/RTDSP/lab4/RTDSP/dsp_bios_.tcf b/Project/RTDSP/.gconf/RTDSP/lab4/RTDSP/dsp_bios_.tcf
new file mode 100644
index 0000000..6383243
--- /dev/null
+++ b/Project/RTDSP/.gconf/RTDSP/lab4/RTDSP/dsp_bios_.tcf
@@ -0,0 +1,15 @@
+utils.loadPlatform("ti.platforms.dsk6713");
+
+/* The following DSP/BIOS Features are enabled. */
+bios.enableRealTimeAnalysis(prog);
+bios.enableRtdx(prog);
+bios.enableTskManager(prog);
+
+bios.HWI.instance("HWI_INT4").interruptSource = prog.get("MCSP_1_Receive");
+bios.HWI.instance("HWI_INT4").fxn = prog.extern("ISR_AIC");
+bios.HWI.instance("HWI_INT4").useDispatcher = 1;
+bios.HWI.instance("HWI_INT4").interruptSource = prog.get("MCSP_1_Transmit");
+bios.HWI.instance("HWI_INT4").interruptSource = prog.get("MCSP_1_Receive");
+// !GRAPHICAL_CONFIG_TOOL_SCRIPT_INSERT_POINT!
+
+prog.gen();
diff --git a/Project/RTDSP/.gconf/RTDSP/lab4/RTDSP/dsp_bios_cfg.cmd b/Project/RTDSP/.gconf/RTDSP/lab4/RTDSP/dsp_bios_cfg.cmd
new file mode 100644
index 0000000..3a02123
--- /dev/null
+++ b/Project/RTDSP/.gconf/RTDSP/lab4/RTDSP/dsp_bios_cfg.cmd
@@ -0,0 +1,292 @@
+/* Do *not* directly modify this file. It was */
+/* generated by the Configuration Tool; any */
+/* changes risk being overwritten. */
+
+/* INPUT dsp_bios_.cdb */
+
+/* MODULE PARAMETERS */
+-u _GBL_setPLLto225MHz
+GBL_USERINITFXN = _GBL_setPLLto225MHz;
+
+-u MEM_NULL
+MEM_SEGZERO = MEM_NULL;
+-u MEM_NULL
+MEM_MALLOCSEG = MEM_NULL;
+
+-u CLK_F_getshtime
+CLK_TIMEFXN = CLK_F_getshtime;
+-u HWI_F_dispatch
+CLK_HOOKFXN = HWI_F_dispatch;
+
+-u _KNL_tick
+PRD_THOOKFXN = _KNL_tick;
+
+-u IRAM
+RTDX_DATAMEMSEG = IRAM;
+
+-u IRAM
+HST_DSMBUFSEG = IRAM;
+
+-u GBL_NULL
+SWI_EHOOKFXN = GBL_NULL;
+-u GBL_NULL
+SWI_IHOOKFXN = GBL_NULL;
+-u SWI_F_exec
+SWI_EXECFXN = SWI_F_exec;
+-u SWI_F_run
+SWI_RUNFXN = SWI_F_run;
+
+-u MEM_NULL
+TSK_STACKSEG = MEM_NULL;
+-u _FXN_F_nop
+TSK_VCREATEFXN = _FXN_F_nop;
+-u _FXN_F_nop
+TSK_VDELETEFXN = _FXN_F_nop;
+-u _FXN_F_nop
+TSK_VEXITFXN = _FXN_F_nop;
+
+-u IDL_F_stub
+IDL_CALIBRFXN = IDL_F_stub;
+
+-u _UTL_doAbort
+SYS_ABORTFXN = _UTL_doAbort;
+-u _UTL_doError
+SYS_ERRORFXN = _UTL_doError;
+-u _UTL_halt
+SYS_EXITFXN = _UTL_halt;
+-u _UTL_doPutc
+SYS_PUTCFXN = _UTL_doPutc;
+
+-u _FXN_F_nop
+GIO_CREATEFXN = _FXN_F_nop;
+-u _FXN_F_nop
+GIO_DELETEFXN = _FXN_F_nop;
+-u _FXN_F_nop
+GIO_PENDFXN = _FXN_F_nop;
+-u _FXN_F_nop
+GIO_POSTFXN = _FXN_F_nop;
+
+/* OBJECT ALIASES */
+_SDRAM = SDRAM;
+_IRAM = IRAM;
+_PRD_clock = PRD_clock;
+_RTA_fromHost = RTA_fromHost;
+_RTA_toHost = RTA_toHost;
+_HWI_RESET = HWI_RESET;
+_HWI_NMI = HWI_NMI;
+_HWI_RESERVED0 = HWI_RESERVED0;
+_HWI_RESERVED1 = HWI_RESERVED1;
+_HWI_INT4 = HWI_INT4;
+_HWI_INT5 = HWI_INT5;
+_HWI_INT6 = HWI_INT6;
+_HWI_INT7 = HWI_INT7;
+_HWI_INT8 = HWI_INT8;
+_HWI_INT9 = HWI_INT9;
+_HWI_INT10 = HWI_INT10;
+_HWI_INT11 = HWI_INT11;
+_HWI_INT12 = HWI_INT12;
+_HWI_INT13 = HWI_INT13;
+_HWI_INT14 = HWI_INT14;
+_HWI_INT15 = HWI_INT15;
+_KNL_swi = KNL_swi;
+_TSK_idle = TSK_idle;
+_IDL_cpuLoad = IDL_cpuLoad;
+_LNK_dataPump = LNK_dataPump;
+_RTA_dispatcher = RTA_dispatcher;
+_LOG_system = LOG_system;
+_IDL_busyObj = IDL_busyObj;
+
+/* MODULE GBL */
+
+SECTIONS {
+ .vers (COPY): {} /* version information */
+}
+
+-priority
+--trampolines
+-llnkrtdx.a67
+-ldrivers.a67 /* device drivers support */
+-lsioboth.a67 /* supports both SIO models */
+-lbiosC6000.a67 /* BIOS clock specific library */
+-lbios6x1x.a67 /* BIOS c6x1x specific library */
+-lbios.a67 /* DSP/BIOS support */
+-lrtdx.lib /* RTDX support */
+-lrts6700.lib /* C and C++ run-time library support */
+
+_GBL_CACHE = GBL_CACHE;
+
+/* MODULE MEM */
+-stack 0x400
+MEMORY {
+ SDRAM : origin = 0x80000000, len = 0x800000
+ IRAM : origin = 0x0, len = 0x40000
+}
+/* MODULE CLK */
+SECTIONS {
+ .clk: {
+
+ CLK_F_gethtime = CLK_F_getshtime;
+ *(.clk)
+ } > IRAM, RUN_START(CLK_A_TABBEG)
+}
+_CLK_PRD = CLK_PRD;
+_CLK_COUNTSPMS = CLK_COUNTSPMS;
+_CLK_REGS = CLK_REGS;
+_CLK_USETIMER = CLK_USETIMER;
+_CLK_TIMERNUM = CLK_TIMERNUM;
+_CLK_TDDR = CLK_TDDR;
+
+/* MODULE PRD */
+SECTIONS {
+ .prd: RUN_START(PRD_A_TABBEG), RUN_END(PRD_A_TABEND) {
+ } > IRAM
+}
+PRD_A_TABLEN = 0;
+
+/* MODULE RTDX */
+_RTDX_interrupt_mask = 0x0;
+
+/* MODULE HST */
+_LNK_dspFrameReadyMask = LNK_dspFrameReadyMask;
+_LNK_dspFrameRequestMask = LNK_dspFrameRequestMask;
+_LNK_readDone = LNK_readDone;
+_LNK_readFail = LNK_readFail;
+_LNK_readPend = LNK_readPend;
+_LNK_writeFail = LNK_writeFail;
+/* MODULE HWI */
+SECTIONS {
+ .hwi_vec: 0x0 {
+ HWI_A_VECS = .;
+ *(.hwi_vec)
+ }
+}
+
+_HWI_CFGDISPATCHED = HWI_CFGDISPATCHED;
+
+/* MODULE SWI */
+SECTIONS {
+ .swi: RUN_START(SWI_A_TABBEG), RUN_END(SWI_A_TABEND) {
+ } > IRAM
+}
+SWI_A_TABLEN = 1;
+
+/* MODULE TSK */
+SECTIONS {
+ .tsk: {
+ *(.tsk)
+ } > IRAM
+}
+
+/* MODULE IDL */
+SECTIONS {
+ .idl: {
+ *(.idl)
+ } > IRAM, RUN_START(IDL_A_TABBEG)
+
+ .idlcal: {
+ *(.idlcal)
+ } > IRAM, RUN_START(IDL_A_CALBEG)
+}
+
+
+LOG_A_TABLEN = 1; _LOG_A_TABLEN = 1;
+
+PIP_A_TABLEN = 2;
+
+
+SECTIONS {
+ .bss: {} > IRAM
+
+ .far: {} > IRAM
+
+ .sysdata: {} > IRAM
+
+ .dsm: {} > IRAM
+
+ frt: {} > IRAM
+
+ .mem: {} > IRAM
+
+ .bios: {} > IRAM
+
+ .cio: {} > IRAM
+
+ .data: {} > IRAM
+
+ .gio: {} > IRAM
+
+ .pinit: {} > IRAM
+
+ .sys: {} > IRAM
+
+ .sysregs: {} > IRAM
+
+ .text: {} > IRAM
+
+ .cinit: {} > IRAM
+
+ .switch: {} > IRAM
+
+ .gblinit: {} > IRAM
+
+ .sysinit: {} > IRAM
+
+ .trcdata: {} > IRAM
+
+ .hwi: {} > IRAM
+
+ .rtdx_data: {} > IRAM
+
+ .rtdx_text: {} > IRAM
+
+ .TSK_idle$stk: {
+ *(.TSK_idle$stk)
+ } > IRAM
+
+ /* LOG_system buffer */
+ .LOG_system$buf: align = 0x100 {} > IRAM
+
+ /* RTA_fromHost buffer */
+ .hst1: align = 0x4 {} > IRAM
+
+ /* RTA_toHost buffer */
+ .hst0: align = 0x4 {} > IRAM
+
+ GROUP {
+ .const: align = 0x8 {}
+ .printf (COPY): {}
+ } > IRAM
+
+ .args: align=4 fill=0 {
+ *(.args)
+ . += 0x4;
+ } > IRAM
+
+ .trace: fill = 0x0 align = 0x4 {
+ _SYS_PUTCBEG = .;
+ . += 0x200;
+ _SYS_PUTCEND = . - 1;
+ } > IRAM
+
+ .hst: RUN_START(HST_A_TABBEG), RUN_START(_HST_A_TABBEG), RUN_END(HST_A_TABEND), RUN_END(_HST_A_TABEND) {
+ } > IRAM
+
+ .log: RUN_START(LOG_A_TABBEG), RUN_START(_LOG_A_TABBEG), RUN_END(LOG_A_TABEND), RUN_END(_LOG_A_TABEND) {
+ } > IRAM
+
+ .pip: RUN_START(PIP_A_TABBEG), RUN_START(_PIP_A_TABBEG), RUN_END(PIP_A_TABEND), RUN_END(_PIP_A_TABEND) {
+ } > IRAM
+
+ .sts: RUN_START(STS_A_TABBEG), RUN_START(_STS_A_TABBEG), RUN_END(STS_A_TABEND), RUN_END(_STS_A_TABEND) {
+ } > IRAM
+
+ .stack: align = 0x8 {
+ GBL_stackbeg = .;
+ *(.stack)
+ GBL_stackend = GBL_stackbeg + 0x400 - 1;
+ _HWI_STKBOTTOM = GBL_stackbeg + 0x400 - 8;
+ _HWI_STKTOP = GBL_stackbeg;
+ } > IRAM
+
+}
+
diff --git a/Project/RTDSP/.gconf/RTDSP/lab4/RTDSP/dsp_bios_cfg.h b/Project/RTDSP/.gconf/RTDSP/lab4/RTDSP/dsp_bios_cfg.h
new file mode 100644
index 0000000..616731f
--- /dev/null
+++ b/Project/RTDSP/.gconf/RTDSP/lab4/RTDSP/dsp_bios_cfg.h
@@ -0,0 +1,29 @@
+/* Do *not* directly modify this file. It was */
+/* generated by the Configuration Tool; any */
+/* changes risk being overwritten. */
+
+/* INPUT dsp_bios_.cdb */
+
+/* Include Header Files */
+#include <std.h>
+#include <hst.h>
+#include <swi.h>
+#include <tsk.h>
+#include <log.h>
+#include <sts.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern far HST_Obj RTA_fromHost;
+extern far HST_Obj RTA_toHost;
+extern far SWI_Obj KNL_swi;
+extern far TSK_Obj TSK_idle;
+extern far LOG_Obj LOG_system;
+extern far STS_Obj IDL_busyObj;
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
diff --git a/Project/RTDSP/.gconf/RTDSP/lab4/RTDSP/dsp_bios_cfg.h62 b/Project/RTDSP/.gconf/RTDSP/lab4/RTDSP/dsp_bios_cfg.h62
new file mode 100644
index 0000000..7165b14
--- /dev/null
+++ b/Project/RTDSP/.gconf/RTDSP/lab4/RTDSP/dsp_bios_cfg.h62
@@ -0,0 +1,197 @@
+;; Do *not* directly modify this file. It was
+;; generated by the Configuration Tool; any
+;; changes risk being overwritten.
+
+;; INPUT dsp_bios_.cdb
+
+;; CONFIGURATION/VERSION INFORMATION
+ .asg "dsp_bios_.cdb", VERS$CDB
+ .asg ";;;", VERS$CDBRELATIVEPATH
+ .asg "dsp_bios_cfg", VERS$CFG
+ .asg "@(#)*** xdcutils-e03", VERS$TREE
+
+;; EXTERNAL REFERENCES
+ .global HWI_unused
+ .global RESERVED
+ .global _FXN_F_nop
+ .global segment_name
+ .global _CLK_start6x
+ .global FXN_F_nop
+ .global FXN_F_zero
+ .global HWI_F_dispatch
+ .global CLK_F_frete
+ .global CLK_F_rete
+ .global CLK_F_getltime
+ .global CLK_F_isr
+ .global CLK_A_TABBEG
+ .global CLK_F_getfhtime
+ .global CLK_F_getshtime
+ .global PRD_F_tick
+ .global PRD_F_swi
+ .global _KNL_tick
+ .global LNK_F_dataPump
+ .global RTA_F_dispatch
+ .global _HSRTDX_xmt
+ .global _HSRTDX_rec
+ .global _RTDX_Poll
+ .global GBL_stackbeg
+ .global _c_int00
+ .global SWI_F_exec
+ .global SWI_F_run
+ .global GBL_NULL
+ .global __HOOK_doCreate
+ .global __HOOK_doDelete
+ .global __HOOK_doExit
+ .global __HOOK_doSwitch
+ .global __HOOK_doReady
+ .global null
+ .global _IDL_loop
+ .global IDL_F_loop
+ .global _KNL_run
+ .global IDL_F_stub
+ .global IDL_F_calibrate
+ .global IDL_F_busy
+ .global _UTL_doPutc
+ .global _UTL_doAbort
+ .global _UTL_doError
+ .global _UTL_halt
+ .global _SEM_create
+ .global _SEM_delete
+ .global _SEM_pend
+ .global _SEM_post
+ .global _DIO_cbStaticFxns
+ .global _DIO_tskStaticFxns
+ .global _DIO_cbDynamicFxns
+ .global _DIO_tskDynamicFxns
+ .global _DIO_init
+ .global _DGN_printFloat
+ .global _DGN_printHex
+ .global _DGN_printInt
+ .global DGN_CONST
+ .global DGN_RAND
+ .global DGN_SINE
+ .global DGN_USER
+ .global _DGN_FXNS
+ .global _DHL_notify
+ .global _DHL_FXNS
+ .global _DPI_FXNS
+ .global _GBL_setPLLto225MHz
+ .global _ISR_AIC
+
+;; MODULE PARAMETERS
+GBL$ .set 1
+GBL_ROM .set 00H
+GBL_PROCID .set 00H
+GBL_CLKIN .set 04e20H
+GBL_FREQ .set 036ee8H
+GBL_DSPTYPE .set 03eH
+GBL_DSPSUBTYPE .set 01a39H
+GBL_CLKTYPE .set 01770H
+GBL_BIGENDIAN .set 00H
+GBL_USERINIT .set 01H
+GBL_ENABLEINST .set 01H
+GBL_CACHE .set 00H
+GBL_L2CONFIGURE .set 01H
+GBL_L2MODE .set 00H
+GBL_L2PRIORITY .set 00H
+GBL_L2MARMASK .set 01H
+GBL_SUPPORTCSL .set 00H
+GBL_TRCMASKVALUE .set 0dbefH
+GBL_CALLCSLCFGINIT .set 01H
+GBL_C641XL2PRIORITY .set 00H
+GBL_L2MARMASK1 .set 00H
+GBL_L2MARMASK2 .set 00H
+GBL_L2MARMASK3 .set 00H
+GBL_L2MARMASK4 .set 00H
+GBL_L2MARMASK5 .set 00H
+GBL_L2CONFIGALLOC .set 00H
+GBL_L2ALLOC .set 02226H
+MEM$ .set 1
+MEM_gNumHeap .set 00H
+MEM_USEMPC .set 00H
+OBJ$ .set 0
+BUF$ .set 0
+BUF_ENABLED .set 01H
+POOL$ .set 0
+POOL_USEPOOL .set 00H
+CLK$ .set 1
+CLK_INTBIT .set 04000H
+CLK_REGS .set 01940000H
+CLK_TIMERNUM .set 00H
+CLK_USETIMER .set 01H
+CLK_MICROSECS .set 03e8H
+CLK_TCR .set 020H
+CLK_TDDR .set 00H
+CLK_TDDRHIGH .set 00H
+CLK_PRD .set 0dbbaH
+CLK_PRDHIGH .set 00H
+CLK_COUNTSPMS .set 0dbbaH
+CLK_COUNTSPMSHIGH .set 00H
+CLK_CALDIV .set 01H
+CLK_CALMULT .set 04H
+CLK_HTIMEDIV .set 01H
+CLK_HTIMEMULT .set 04H
+CLK_LTIMEDIV .set 01H
+CLK_LTIMEMULT .set 036ee8H
+CLK_HTIMEPERLTIME .set 0dbbaH
+PRD$ .set 1
+PRD_SCALAR .set 04000H
+RTDX$ .set 1
+RTDX_USERTDX .set 01H
+RTDX_USERTEXECUTION .set 00H
+ .asg "JTAG", RTDX_RTDXTYPE
+RTDX_BUFMEMSIZE .set 0408H
+HST$ .set 1
+HST_RTDX .set 01H
+HST_DSM .set 00H
+HST_NONE .set 00H
+HST_MAXFRAMESET .set 040H
+HST_MAXFRAMEALLOWED .set 0ffH
+HST_DSMMEMSIZE .set 0400H
+HWI$ .set 1
+HWI_ZEROTAB .set 01H
+HWI_GENERATE_RESET_VEC .set 00H
+HWI_POLARITYMASK .set 00H
+HWI_INTRMULTLOW .set 0310718afH
+HWI_INTRMULTHIGH .set 082039a3H
+HWI_CFGDISPATCHED .set 04018H
+SWI$ .set 1
+TSK$ .set 1
+TSK_STACKSIZE .set 0400H
+TSK_PRIORITY .set 01H
+TSK_SWITCHFXN .set 00H
+TSK_READYFXN .set 00H
+TSK_NUM_HOOKS .set 00H
+IDL$ .set 1
+IDL_USECLKIDLTIME .set 01H
+IDL_CALIBRERROR .set 06H
+ISRC$ .set 1
+LOG$ .set 1
+LOG_ENABLED .set 01H
+PIP$ .set 0
+PIP_gNumEmbed .set 02H
+PIP_gNextId .set 00H
+PIP_OBJSIZE .set 064H
+SEM$ .set 0
+MBX$ .set 0
+QUE$ .set 1
+LCK$ .set 1
+STS$ .set 1
+SYS$ .set 1
+SIO$ .set 0
+GIO$ .set 0
+DEV$ .set 0
+UDEV$ .set 0
+DIO$ .set 0
+DIO_STATIC .set 00H
+DIO_NUMTSKBASE .set 00H
+DIO_NUMSWIBASE .set 00H
+DGN$ .set 0
+DHL$ .set 0
+DHL_gChannelsAvailable .set 00H
+DPI$ .set 0
+MSGQ$ .set 0
+MSGQ_USEMSGQ .set 00H
+HOOK$ .set 0
+HOOK_KNLID .set 00H
+DEV$NUMDEVICES .set 0
diff --git a/Project/RTDSP/.gconf/RTDSP/lab4/RTDSP/dsp_bios_cfg.s62 b/Project/RTDSP/.gconf/RTDSP/lab4/RTDSP/dsp_bios_cfg.s62
new file mode 100644
index 0000000..97d994c
--- /dev/null
+++ b/Project/RTDSP/.gconf/RTDSP/lab4/RTDSP/dsp_bios_cfg.s62
@@ -0,0 +1,1091 @@
+;; Do *not* directly modify this file. It was
+;; generated by the Configuration Tool; any
+;; changes risk being overwritten.
+
+;; INPUT dsp_bios_.cdb
+
+;; CONFIGURATION/VERSION INFORMATION
+ .asg "Thu Jan 25 14:01:53 2018", VERS$DATE
+
+;; PROLOGUE
+ .include dsp_bios_cfg.h62
+ .copy confbeg.s62
+
+;; TYPE HEADERS
+ .include gbl.h62
+ .include mem.h62
+ .include obj.h62
+ .include buf.h62
+ .include pool.h62
+ .include clk.h62
+ .include prd.h62
+ .include rtdx.h62
+ .include hst.h62
+ .include hwi.h62
+ .include swi.h62
+ .include tsk.h62
+ .include idl.h62
+ .include isrc.h62
+ .include log.h62
+ .include pip.h62
+ .include sem.h62
+ .include mbx.h62
+ .include que.h62
+ .include lck.h62
+ .include sts.h62
+ .include sys.h62
+ .include sio.h62
+ .include gio.h62
+ .include dev.h62
+ .include udev.h62
+ .include dio.h62
+ .include dgn.h62
+ .include dhl.h62
+ .include dpi.h62
+ .include msgq.h62
+ .include hook.h62
+
+;; TYPE ATTRIBUTES
+MEM$NUMOF .set 2
+MEM$SETOF .set 00H
+OBJ$NUMOF .set 0
+OBJ$SETOF .set 00H
+BUF$NUMOF .set 0
+BUF$SETOF .set 00H
+CLK$NUMOF .set 1
+CLK$SETOF .set 00H
+PRD$NUMOF .set 0
+PRD$SETOF .set 00H
+RTDX$NUMOF .set 0
+RTDX$SETOF .set 00H
+HST$NUMOF .set 2
+HST$SETOF .set 03H
+HWI$NUMOF .set 16
+HWI$SETOF .set 0ffffH
+SWI$NUMOF .set 1
+SWI$SETOF .set 00H
+TSK$NUMOF .set 1
+TSK$SETOF .set 00H
+IDL$NUMOF .set 3
+IDL$SETOF .set 00H
+ISRC$NUMOF .set 0
+ISRC$SETOF .set 00H
+LOG$NUMOF .set 1
+LOG$SETOF .set 00H
+PIP$NUMOF .set 0
+PIP$SETOF .set 00H
+SEM$NUMOF .set 0
+SEM$SETOF .set 00H
+MBX$NUMOF .set 0
+MBX$SETOF .set 00H
+QUE$NUMOF .set 0
+QUE$SETOF .set 00H
+LCK$NUMOF .set 0
+LCK$SETOF .set 00H
+STS$NUMOF .set 1
+STS$SETOF .set 00H
+SIO$NUMOF .set 0
+SIO$SETOF .set 00H
+DEV$NUMOF .set 0
+DEV$SETOF .set 00H
+UDEV$NUMOF .set 0
+UDEV$SETOF .set 00H
+DIO$NUMOF .set 0
+DIO$SETOF .set 00H
+DGN$NUMOF .set 0
+DGN$SETOF .set 00H
+DHL$NUMOF .set 0
+DHL$SETOF .set 00H
+DPI$NUMOF .set 0
+DPI$SETOF .set 00H
+HOOK$NUMOF .set 0
+HOOK$SETOF .set 00H
+
+;; module GBL (ROM, PROCID, CLKIN, FREQ, DSPTYPE, DSPSUBTYPE, CLKTYPE, BIGENDIAN, USERINIT, USERINITFXN, ENABLEINST, CACHE, L2CONFIGURE, L2MODE, L2PRIORITY, L2MARMASK, SUPPORTCSL, TRCMASKVALUE, CALLCSLCFGINIT, C641XL2PRIORITY, L2MARMASK1, L2MARMASK2, L2MARMASK3, L2MARMASK4, L2MARMASK5, L2CONFIGALLOC, L2ALLOC)
+ .global GBL$ ; == 1
+ .global GBL_ROM ; dsp_bios_cfg.h62
+ .global GBL_PROCID ; dsp_bios_cfg.h62
+ .global GBL_CLKIN ; dsp_bios_cfg.h62
+ .global GBL_FREQ ; dsp_bios_cfg.h62
+ .global GBL_DSPTYPE ; dsp_bios_cfg.h62
+ .global GBL_DSPSUBTYPE ; dsp_bios_cfg.h62
+ .global GBL_CLKTYPE ; dsp_bios_cfg.h62
+ .global GBL_BIGENDIAN ; dsp_bios_cfg.h62
+ .global GBL_USERINIT ; dsp_bios_cfg.h62
+ .global GBL_USERINITFXN ; dsp_bios_cfg.cmd
+ .global GBL_ENABLEINST ; dsp_bios_cfg.h62
+ .global GBL_CACHE ; dsp_bios_cfg.h62
+ .global GBL_L2CONFIGURE ; dsp_bios_cfg.h62
+ .global GBL_L2MODE ; dsp_bios_cfg.h62
+ .global GBL_L2PRIORITY ; dsp_bios_cfg.h62
+ .global GBL_L2MARMASK ; dsp_bios_cfg.h62
+ .global GBL_SUPPORTCSL ; dsp_bios_cfg.h62
+ .global GBL_TRCMASKVALUE ; dsp_bios_cfg.h62
+ .global GBL_CALLCSLCFGINIT ; dsp_bios_cfg.h62
+ .global GBL_C641XL2PRIORITY ; dsp_bios_cfg.h62
+ .global GBL_L2MARMASK1 ; dsp_bios_cfg.h62
+ .global GBL_L2MARMASK2 ; dsp_bios_cfg.h62
+ .global GBL_L2MARMASK3 ; dsp_bios_cfg.h62
+ .global GBL_L2MARMASK4 ; dsp_bios_cfg.h62
+ .global GBL_L2MARMASK5 ; dsp_bios_cfg.h62
+ .global GBL_L2CONFIGALLOC ; dsp_bios_cfg.h62
+ .global GBL_L2ALLOC ; dsp_bios_cfg.h62
+
+;; module MEM (gNumHeap, SEGZERO, MALLOCSEG, USEMPC)
+ .global MEM$ ; == 1
+ .global MEM_gNumHeap ; dsp_bios_cfg.h62
+ .global MEM_SEGZERO ; dsp_bios_cfg.cmd
+ .global MEM_MALLOCSEG ; dsp_bios_cfg.cmd
+ .global MEM_USEMPC ; dsp_bios_cfg.h62
+
+;; module OBJ ()
+ .global OBJ$ ; == 0
+
+;; module BUF (ENABLED)
+ .global BUF$ ; == 0
+ .global BUF_ENABLED ; dsp_bios_cfg.h62
+
+;; module POOL (USEPOOL)
+ .global POOL$ ; == 0
+ .global POOL_USEPOOL ; dsp_bios_cfg.h62
+
+;; module CLK (INTBIT, REGS, TIMERNUM, USETIMER, MICROSECS, TCR, TDDR, TDDRHIGH, PRD, PRDHIGH, COUNTSPMS, COUNTSPMSHIGH, TIMEFXN, HOOKFXN, CALDIV, CALMULT, HTIMEDIV, HTIMEMULT, LTIMEDIV, LTIMEMULT, HTIMEPERLTIME)
+ .global CLK$ ; == 1
+ .global CLK_INTBIT ; dsp_bios_cfg.h62
+ .global CLK_REGS ; dsp_bios_cfg.h62
+ .global CLK_TIMERNUM ; dsp_bios_cfg.h62
+ .global CLK_USETIMER ; dsp_bios_cfg.h62
+ .global CLK_MICROSECS ; dsp_bios_cfg.h62
+ .global CLK_TCR ; dsp_bios_cfg.h62
+ .global CLK_TDDR ; dsp_bios_cfg.h62
+ .global CLK_TDDRHIGH ; dsp_bios_cfg.h62
+ .global CLK_PRD ; dsp_bios_cfg.h62
+ .global CLK_PRDHIGH ; dsp_bios_cfg.h62
+ .global CLK_COUNTSPMS ; dsp_bios_cfg.h62
+ .global CLK_COUNTSPMSHIGH ; dsp_bios_cfg.h62
+ .global CLK_TIMEFXN ; dsp_bios_cfg.cmd
+ .global CLK_HOOKFXN ; dsp_bios_cfg.cmd
+ .global CLK_CALDIV ; dsp_bios_cfg.h62
+ .global CLK_CALMULT ; dsp_bios_cfg.h62
+ .global CLK_HTIMEDIV ; dsp_bios_cfg.h62
+ .global CLK_HTIMEMULT ; dsp_bios_cfg.h62
+ .global CLK_LTIMEDIV ; dsp_bios_cfg.h62
+ .global CLK_LTIMEMULT ; dsp_bios_cfg.h62
+ .global CLK_HTIMEPERLTIME ; dsp_bios_cfg.h62
+
+;; module PRD (SCALAR, THOOKFXN)
+ .global PRD$ ; == 1
+ .global PRD_SCALAR ; dsp_bios_cfg.h62
+ .global PRD_THOOKFXN ; dsp_bios_cfg.cmd
+
+;; module RTDX (USERTDX, USERTEXECUTION, RTDXTYPE, DATAMEMSEG, BUFMEMSIZE)
+ .global RTDX$ ; == 1
+ .global RTDX_USERTDX ; dsp_bios_cfg.h62
+ .global RTDX_USERTEXECUTION ; dsp_bios_cfg.h62
+ .global RTDX_RTDXTYPE ; dsp_bios_cfg.h62
+ .global RTDX_DATAMEMSEG ; dsp_bios_cfg.cmd
+ .global RTDX_BUFMEMSIZE ; dsp_bios_cfg.h62
+
+;; module HST (RTDX, DSM, NONE, MAXFRAMESET, MAXFRAMEALLOWED, DSMBUFSEG, DSMMEMSIZE)
+ .global HST$ ; == 1
+ .global HST_RTDX ; dsp_bios_cfg.h62
+ .global HST_DSM ; dsp_bios_cfg.h62
+ .global HST_NONE ; dsp_bios_cfg.h62
+ .global HST_MAXFRAMESET ; dsp_bios_cfg.h62
+ .global HST_MAXFRAMEALLOWED ; dsp_bios_cfg.h62
+ .global HST_DSMBUFSEG ; dsp_bios_cfg.cmd
+ .global HST_DSMMEMSIZE ; dsp_bios_cfg.h62
+
+;; module HWI (ZEROTAB, GENERATE_RESET_VEC, POLARITYMASK, INTRMULTLOW, INTRMULTHIGH, CFGDISPATCHED)
+ .global HWI$ ; == 1
+ .global HWI_ZEROTAB ; dsp_bios_cfg.h62
+ .global HWI_GENERATE_RESET_VEC ; dsp_bios_cfg.h62
+ .global HWI_POLARITYMASK ; dsp_bios_cfg.h62
+ .global HWI_INTRMULTLOW ; dsp_bios_cfg.h62
+ .global HWI_INTRMULTHIGH ; dsp_bios_cfg.h62
+ .global HWI_CFGDISPATCHED ; dsp_bios_cfg.h62
+
+;; module SWI (EHOOKFXN, IHOOKFXN, EXECFXN, RUNFXN)
+ .global SWI$ ; == 1
+ .global SWI_EHOOKFXN ; dsp_bios_cfg.cmd
+ .global SWI_IHOOKFXN ; dsp_bios_cfg.cmd
+ .global SWI_EXECFXN ; dsp_bios_cfg.cmd
+ .global SWI_RUNFXN ; dsp_bios_cfg.cmd
+
+;; module TSK (STACKSIZE, STACKSEG, PRIORITY, VCREATEFXN, VDELETEFXN, VEXITFXN, SWITCHFXN, READYFXN, NUM_HOOKS)
+ .global TSK$ ; == 1
+ .global TSK_STACKSIZE ; dsp_bios_cfg.h62
+ .global TSK_STACKSEG ; dsp_bios_cfg.cmd
+ .global TSK_PRIORITY ; dsp_bios_cfg.h62
+ .global TSK_VCREATEFXN ; dsp_bios_cfg.cmd
+ .global TSK_VDELETEFXN ; dsp_bios_cfg.cmd
+ .global TSK_VEXITFXN ; dsp_bios_cfg.cmd
+ .global TSK_SWITCHFXN ; dsp_bios_cfg.h62
+ .global TSK_READYFXN ; dsp_bios_cfg.h62
+ .global TSK_NUM_HOOKS ; dsp_bios_cfg.h62
+
+;; module IDL (USECLKIDLTIME, CALIBRFXN, CALIBRERROR)
+ .global IDL$ ; == 1
+ .global IDL_USECLKIDLTIME ; dsp_bios_cfg.h62
+ .global IDL_CALIBRFXN ; dsp_bios_cfg.cmd
+ .global IDL_CALIBRERROR ; dsp_bios_cfg.h62
+
+;; module ISRC ()
+ .global ISRC$ ; == 1
+
+;; module LOG (ENABLED)
+ .global LOG$ ; == 1
+ .global LOG_ENABLED ; dsp_bios_cfg.h62
+
+;; module PIP (gNumEmbed, gNextId, OBJSIZE)
+ .global PIP$ ; == 0
+ .global PIP_gNumEmbed ; dsp_bios_cfg.h62
+ .global PIP_gNextId ; dsp_bios_cfg.h62
+ .global PIP_OBJSIZE ; dsp_bios_cfg.h62
+
+;; module SEM ()
+ .global SEM$ ; == 0
+
+;; module MBX ()
+ .global MBX$ ; == 0
+
+;; module QUE ()
+ .global QUE$ ; == 1
+
+;; module LCK ()
+ .global LCK$ ; == 1
+
+;; module STS ()
+ .global STS$ ; == 1
+
+;; module SYS (ABORTFXN, ERRORFXN, EXITFXN, PUTCFXN)
+ .global SYS$ ; == 1
+ .global SYS_ABORTFXN ; dsp_bios_cfg.cmd
+ .global SYS_ERRORFXN ; dsp_bios_cfg.cmd
+ .global SYS_EXITFXN ; dsp_bios_cfg.cmd
+ .global SYS_PUTCFXN ; dsp_bios_cfg.cmd
+
+;; module SIO ()
+ .global SIO$ ; == 0
+
+;; module GIO (CREATEFXN, DELETEFXN, PENDFXN, POSTFXN)
+ .global GIO$ ; == 0
+ .global GIO_CREATEFXN ; dsp_bios_cfg.cmd
+ .global GIO_DELETEFXN ; dsp_bios_cfg.cmd
+ .global GIO_PENDFXN ; dsp_bios_cfg.cmd
+ .global GIO_POSTFXN ; dsp_bios_cfg.cmd
+
+;; module DEV ()
+ .global DEV$ ; == 0
+
+;; module UDEV ()
+ .global UDEV$ ; == 0
+
+;; module DIO (STATIC, NUMTSKBASE, NUMSWIBASE)
+ .global DIO$ ; == 0
+ .global DIO_STATIC ; dsp_bios_cfg.h62
+ .global DIO_NUMTSKBASE ; dsp_bios_cfg.h62
+ .global DIO_NUMSWIBASE ; dsp_bios_cfg.h62
+
+;; module DGN ()
+ .global DGN$ ; == 0
+
+;; module DHL (gChannelsAvailable)
+ .global DHL$ ; == 0
+ .global DHL_gChannelsAvailable ; dsp_bios_cfg.h62
+
+;; module DPI ()
+ .global DPI$ ; == 0
+
+;; module MSGQ (USEMSGQ)
+ .global MSGQ$ ; == 0
+ .global MSGQ_USEMSGQ ; dsp_bios_cfg.h62
+
+;; module HOOK (KNLID)
+ .global HOOK$ ; == 0
+ .global HOOK_KNLID ; dsp_bios_cfg.h62
+
+;; MODULE CONFIGURATION
+
+;; ======== GBL_config ========
+ .asg 00H, _ROM
+ .asg 00H, _PROCID
+ .asg 04e20H, _CLKIN
+ .asg 036ee8H, _FREQ
+ .asg 03eH, _DSPTYPE
+ .asg 01a39H, _DSPSUBTYPE
+ .asg 01770H, _CLKTYPE
+ .asg 00H, _BIGENDIAN
+ .asg 01H, _USERINIT
+ .asg _GBL_setPLLto225MHz, _USERINITFXN
+ .asg 01H, _ENABLEINST
+ .asg 00H, _CACHE
+ .asg 01H, _L2CONFIGURE
+ .asg 00H, _L2MODE
+ .asg 00H, _L2PRIORITY
+ .asg 01H, _L2MARMASK
+ .asg 00H, _SUPPORTCSL
+ .asg 0dbefH, _TRCMASKVALUE
+ .asg 01H, _CALLCSLCFGINIT
+ .asg 00H, _C641XL2PRIORITY
+ .asg 00H, _L2MARMASK1
+ .asg 00H, _L2MARMASK2
+ .asg 00H, _L2MARMASK3
+ .asg 00H, _L2MARMASK4
+ .asg 00H, _L2MARMASK5
+ .asg 00H, _L2CONFIGALLOC
+ .asg 02226H, _L2ALLOC
+ GBL_config _ROM, _PROCID, _CLKIN, _FREQ, _DSPTYPE, _DSPSUBTYPE, _CLKTYPE, _BIGENDIAN, _USERINIT, _USERINITFXN, _ENABLEINST, _CACHE, _L2CONFIGURE, _L2MODE, _L2PRIORITY, _L2MARMASK, _SUPPORTCSL, _TRCMASKVALUE, _CALLCSLCFGINIT, _C641XL2PRIORITY, _L2MARMASK1, _L2MARMASK2, _L2MARMASK3, _L2MARMASK4, _L2MARMASK5, _L2CONFIGALLOC, _L2ALLOC
+
+;; ======== MEM_config ========
+ .asg 00H, _gNumHeap
+ .asg MEM_NULL, _SEGZERO
+ .asg MEM_NULL, _MALLOCSEG
+ .asg 00H, _USEMPC
+ MEM_config _gNumHeap, _SEGZERO, _MALLOCSEG, _USEMPC
+
+;; ======== OBJ_config ========
+ OBJ_config
+
+;; ======== BUF_config ========
+ .asg 01H, _ENABLED
+ BUF_config _ENABLED
+
+;; ======== POOL_config ========
+ .asg 00H, _USEPOOL
+ POOL_config _USEPOOL
+
+;; ======== CLK_config ========
+ .asg 04000H, _INTBIT
+ .asg 01940000H, _REGS
+ .asg 00H, _TIMERNUM
+ .asg 01H, _USETIMER
+ .asg 03e8H, _MICROSECS
+ .asg 020H, _TCR
+ .asg 00H, _TDDR
+ .asg 00H, _TDDRHIGH
+ .asg 0dbbaH, _PRD
+ .asg 00H, _PRDHIGH
+ .asg 0dbbaH, _COUNTSPMS
+ .asg 00H, _COUNTSPMSHIGH
+ .asg CLK_F_getshtime, _TIMEFXN
+ .asg HWI_F_dispatch, _HOOKFXN
+ .asg 01H, _CALDIV
+ .asg 04H, _CALMULT
+ .asg 01H, _HTIMEDIV
+ .asg 04H, _HTIMEMULT
+ .asg 01H, _LTIMEDIV
+ .asg 036ee8H, _LTIMEMULT
+ .asg 0dbbaH, _HTIMEPERLTIME
+ CLK_config _INTBIT, _REGS, _TIMERNUM, _USETIMER, _MICROSECS, _TCR, _TDDR, _TDDRHIGH, _PRD, _PRDHIGH, _COUNTSPMS, _COUNTSPMSHIGH, _TIMEFXN, _HOOKFXN, _CALDIV, _CALMULT, _HTIMEDIV, _HTIMEMULT, _LTIMEDIV, _LTIMEMULT, _HTIMEPERLTIME
+
+;; ======== PRD_config ========
+ .asg 04000H, _SCALAR
+ .asg _KNL_tick, _THOOKFXN
+ PRD_config _SCALAR, _THOOKFXN
+
+;; ======== RTDX_config ========
+ .asg 01H, _USERTDX
+ .asg 00H, _USERTEXECUTION
+ .asg "JTAG", _RTDXTYPE
+ .asg IRAM, _DATAMEMSEG
+ .asg 0408H, _BUFMEMSIZE
+ RTDX_config _USERTDX, _USERTEXECUTION, _RTDXTYPE, _DATAMEMSEG, _BUFMEMSIZE
+
+;; ======== HST_config ========
+ .asg 01H, _RTDX
+ .asg 00H, _DSM
+ .asg 00H, _NONE
+ .asg 040H, _MAXFRAMESET
+ .asg 0ffH, _MAXFRAMEALLOWED
+ .asg IRAM, _DSMBUFSEG
+ .asg 0400H, _DSMMEMSIZE
+ HST_config _RTDX, _DSM, _NONE, _MAXFRAMESET, _MAXFRAMEALLOWED, _DSMBUFSEG, _DSMMEMSIZE
+
+;; ======== HWI_config ========
+ .asg 01H, _ZEROTAB
+ .asg 00H, _GENERATE_RESET_VEC
+ .asg 00H, _POLARITYMASK
+ .asg 0310718afH, _INTRMULTLOW
+ .asg 082039a3H, _INTRMULTHIGH
+ .asg 04018H, _CFGDISPATCHED
+ HWI_config _ZEROTAB, _GENERATE_RESET_VEC, _POLARITYMASK, _INTRMULTLOW, _INTRMULTHIGH, _CFGDISPATCHED
+
+;; ======== SWI_config ========
+ .asg GBL_NULL, _EHOOKFXN
+ .asg GBL_NULL, _IHOOKFXN
+ .asg SWI_F_exec, _EXECFXN
+ .asg SWI_F_run, _RUNFXN
+ SWI_config _EHOOKFXN, _IHOOKFXN, _EXECFXN, _RUNFXN
+
+;; ======== TSK_config ========
+ .asg 0400H, _STACKSIZE
+ .asg MEM_NULL, _STACKSEG
+ .asg 01H, _PRIORITY
+ .asg _FXN_F_nop, _VCREATEFXN
+ .asg _FXN_F_nop, _VDELETEFXN
+ .asg _FXN_F_nop, _VEXITFXN
+ .asg 00H, _SWITCHFXN
+ .asg 00H, _READYFXN
+ .asg 00H, _NUM_HOOKS
+ TSK_config _STACKSIZE, _STACKSEG, _PRIORITY, _VCREATEFXN, _VDELETEFXN, _VEXITFXN, _SWITCHFXN, _READYFXN, _NUM_HOOKS
+
+;; ======== IDL_config ========
+ .asg 01H, _USECLKIDLTIME
+ .asg IDL_F_stub, _CALIBRFXN
+ .asg 06H, _CALIBRERROR
+ IDL_config _USECLKIDLTIME, _CALIBRFXN, _CALIBRERROR
+
+;; ======== ISRC_config ========
+ ISRC_config
+
+;; ======== LOG_config ========
+ .asg 01H, _ENABLED
+ LOG_config _ENABLED
+
+;; ======== PIP_config ========
+ .asg 02H, _gNumEmbed
+ .asg 00H, _gNextId
+ .asg 064H, _OBJSIZE
+ PIP_config _gNumEmbed, _gNextId, _OBJSIZE
+
+;; ======== SEM_config ========
+ SEM_config
+
+;; ======== MBX_config ========
+ MBX_config
+
+;; ======== QUE_config ========
+ QUE_config
+
+;; ======== LCK_config ========
+ LCK_config
+
+;; ======== STS_config ========
+ STS_config
+
+;; ======== SYS_config ========
+ .asg _UTL_doAbort, _ABORTFXN
+ .asg _UTL_doError, _ERRORFXN
+ .asg _UTL_halt, _EXITFXN
+ .asg _UTL_doPutc, _PUTCFXN
+ SYS_config _ABORTFXN, _ERRORFXN, _EXITFXN, _PUTCFXN
+
+;; ======== SIO_config ========
+ SIO_config
+
+;; ======== GIO_config ========
+ .asg _FXN_F_nop, _CREATEFXN
+ .asg _FXN_F_nop, _DELETEFXN
+ .asg _FXN_F_nop, _PENDFXN
+ .asg _FXN_F_nop, _POSTFXN
+ GIO_config _CREATEFXN, _DELETEFXN, _PENDFXN, _POSTFXN
+
+;; ======== DEV_config ========
+ DEV_config
+
+;; ======== UDEV_config ========
+ UDEV_config
+
+;; ======== DIO_config ========
+ .asg 00H, _STATIC
+ .asg 00H, _NUMTSKBASE
+ .asg 00H, _NUMSWIBASE
+ DIO_config _STATIC, _NUMTSKBASE, _NUMSWIBASE
+
+;; ======== DGN_config ========
+ DGN_config
+
+;; ======== DHL_config ========
+ .asg 00H, _gChannelsAvailable
+ DHL_config _gChannelsAvailable
+
+;; ======== DPI_config ========
+ DPI_config
+
+;; ======== MSGQ_config ========
+ .asg 00H, _USEMSGQ
+ MSGQ_config _USEMSGQ
+
+;; ======== HOOK_config ========
+ .asg 00H, _KNLID
+ HOOK_config _KNLID
+
+;; ======== MEM_Obj SDRAM ========
+;; This object defines 8MB for the DSP's off-chip memory
+;;
+;; MEM_Obj SDRAM (len, iAllocHeap, iSegZero, iHeapId)
+ .global SDRAM
+ .asg 0800000H, _len
+ .asg 00H, _iAllocHeap
+ .asg MEM_NULL, _iSegZero
+ .asg segment_name, _iHeapId
+ MEM_Obj 1, SDRAM, 0, _len, _iAllocHeap, _iSegZero, _iHeapId
+
+;; ======== MEM_Obj IRAM ========
+;; Internal L2 memory
+;;
+;; MEM_Obj IRAM (len, iAllocHeap, iSegZero, iHeapId)
+ .global IRAM
+ .asg 040000H, _len
+ .asg 00H, _iAllocHeap
+ .asg MEM_NULL, _iSegZero
+ .asg segment_name, _iHeapId
+ MEM_Obj 1, IRAM, 0, _len, _iAllocHeap, _iSegZero, _iHeapId
+
+;; ======== CLK_Obj PRD_clock ========
+;; This clock function calls PRD_tick from within the on-chip timer ISR
+;;
+;; CLK_Obj PRD_clock (function)
+ .global PRD_clock
+ .asg PRD_F_tick, _function
+ CLK_Obj 1, PRD_clock, 0, _function
+
+;; ======== HST_Obj RTA_fromHost ========
+;; Used to access LOG and STS data
+;;
+;; HST_Obj RTA_fromHost (mode, buf, framesize, numframes, stsflg, notify, arg0, arg1, lnk, bufFrameAlign)
+ .global RTA_fromHost
+ .asg "input", _mode
+ .asg "<NULL>", _buf
+ .asg 04H, _framesize
+ .asg 01H, _numframes
+ .asg 00H, _stsflg
+ .asg _FXN_F_nop, _notify
+ .asg 00H, _arg0
+ .asg 00H, _arg1
+ .asg "RTDX", _lnk
+ .asg 04H, _bufFrameAlign
+ HST_Obj 1, RTA_fromHost, 1, _mode, _buf, _framesize, _numframes, _stsflg, _notify, _arg0, _arg1, _lnk, _bufFrameAlign
+
+;; ======== HST_Obj RTA_toHost ========
+;; Used to access LOG and STS data
+;;
+;; HST_Obj RTA_toHost (mode, buf, framesize, numframes, stsflg, notify, arg0, arg1, lnk, bufFrameAlign)
+ .global RTA_toHost
+ .asg "output", _mode
+ .asg "<NULL>", _buf
+ .asg 040H, _framesize
+ .asg 01H, _numframes
+ .asg 00H, _stsflg
+ .asg _FXN_F_nop, _notify
+ .asg 00H, _arg0
+ .asg 00H, _arg1
+ .asg "RTDX", _lnk
+ .asg 04H, _bufFrameAlign
+ HST_Obj 1, RTA_toHost, 0, _mode, _buf, _framesize, _numframes, _stsflg, _notify, _arg0, _arg1, _lnk, _bufFrameAlign
+
+;; ======== HWI_Obj HWI_RESET ========
+;; defines function for the RESET ISR
+;;
+;; HWI_Obj HWI_RESET (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_RESET
+ .asg _c_int00, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 01H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_RESET, 0, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_NMI ========
+;; defines function for the NMI ISR
+;;
+;; HWI_Obj HWI_NMI (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_NMI
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 02H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_NMI, 1, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_RESERVED0 ========
+;; RESERVED for RTDX
+;;
+;; HWI_Obj HWI_RESERVED0 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_RESERVED0
+ .asg RESERVED, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "RTDX", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 04H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_RESERVED0, 2, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_RESERVED1 ========
+;; RESERVED for RTDX
+;;
+;; HWI_Obj HWI_RESERVED1 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_RESERVED1
+ .asg _RTDX_Poll, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "RTDX", _client
+ .asg 01H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 08H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_RESERVED1, 3, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT4 ========
+;; defines the INT4 Interrupt
+;;
+;; HWI_Obj HWI_INT4 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT4
+ .asg _ISR_AIC, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 01H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 010H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT4, 4, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT5 ========
+;; defines the INT5 Interrupt
+;;
+;; HWI_Obj HWI_INT5 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT5
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 020H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT5, 5, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT6 ========
+;; defines the INT6 Interrupt
+;;
+;; HWI_Obj HWI_INT6 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT6
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 040H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT6, 6, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT7 ========
+;; defines the INT7 Interrupt
+;;
+;; HWI_Obj HWI_INT7 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT7
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 080H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT7, 7, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT8 ========
+;; defines the INT8 Interrupt
+;;
+;; HWI_Obj HWI_INT8 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT8
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 0100H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT8, 8, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT9 ========
+;; defines the INT9 Interrupt
+;;
+;; HWI_Obj HWI_INT9 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT9
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 0200H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT9, 9, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT10 ========
+;; defines the INT10 Interrupt
+;;
+;; HWI_Obj HWI_INT10 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT10
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 0400H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT10, 10, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT11 ========
+;; defines the INT11 Interrupt
+;;
+;; HWI_Obj HWI_INT11 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT11
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 0800H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT11, 11, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT12 ========
+;; defines the INT12 Interrupt
+;;
+;; HWI_Obj HWI_INT12 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT12
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 01000H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT12, 12, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT13 ========
+;; defines the INT13 Interrupt
+;;
+;; HWI_Obj HWI_INT13 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT13
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 02000H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT13, 13, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT14 ========
+;; defines the INT14 Interrupt
+;;
+;; HWI_Obj HWI_INT14 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT14
+ .asg CLK_F_isr, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "CLK", _client
+ .asg 01H, _iUseDispatcher
+ .asg CLK_A_TABBEG, _iArg
+ .asg 04000H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT14, 14, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT15 ========
+;; defines the INT15 Interrupt
+;;
+;; HWI_Obj HWI_INT15 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT15
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 08000H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT15, 15, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== SWI_Obj KNL_swi ========
+;; This Software Interrupt calls the TSK scheduler
+;;
+;; SWI_Obj KNL_swi (function, pri, mailbox, arg0, arg1, dorta, Order, filter, maxformat, sumformat, avgformat, filtmaxmult, filtsummult, unittype)
+ .global KNL_swi
+ .asg _KNL_run, _function
+ .asg 00H, _pri
+ .asg 00H, _mailbox
+ .asg 00H, _arg0
+ .asg 00H, _arg1
+ .asg 01H, _dorta
+ .asg 00H, _Order
+ .asg 02H, _filter
+ .asg "%g inst", _maxformat
+ .asg "%g inst", _sumformat
+ .asg "%.2f inst", _avgformat
+ .asg 01H, _filtmaxmult
+ .asg 01H, _filtsummult
+ .asg 00H, _unittype
+ SWI_Obj 1, KNL_swi, 0, _function, _pri, _mailbox, _arg0, _arg1, _dorta, _Order, _filter, _maxformat, _sumformat, _avgformat, _filtmaxmult, _filtsummult, _unittype
+
+;; ======== TSK_Obj TSK_idle ========
+;; This is the idle task; it only runs when no other task is ready
+;;
+;; TSK_Obj TSK_idle (iFXN, iARG0, iARG1, iARG2, iARG3, iARG4, iARG5, iARG6, iARG7, iAUTOSTK, iMANSTK, iSTKSZ, iSTKSEG, iPRI, iENV, iEXITFLAG, iUSETSKNAME, iSTATREG, Order, filter, maxformat, sumformat, avgformat, filtmaxmult, filtsummult, unittype)
+ .global TSK_idle
+ .asg IDL_F_loop, _iFXN
+ .asg 00H, _iARG0
+ .asg 00H, _iARG1
+ .asg 00H, _iARG2
+ .asg 00H, _iARG3
+ .asg 00H, _iARG4
+ .asg 00H, _iARG5
+ .asg 00H, _iARG6
+ .asg 00H, _iARG7
+ .asg 01H, _iAUTOSTK
+ .asg null, _iMANSTK
+ .asg 0400H, _iSTKSZ
+ .asg IRAM, _iSTKSEG
+ .asg 00H, _iPRI
+ .asg 00H, _iENV
+ .asg 01H, _iEXITFLAG
+ .asg 00H, _iUSETSKNAME
+ .asg 00H, _iSTATREG
+ .asg 00H, _Order
+ .asg 02H, _filter
+ .asg "%g inst", _maxformat
+ .asg "%g inst", _sumformat
+ .asg "%.2f inst", _avgformat
+ .asg 01H, _filtmaxmult
+ .asg 01H, _filtsummult
+ .asg 00H, _unittype
+ TSK_Obj 1, TSK_idle, 0, _iFXN, _iARG0, _iARG1, _iARG2, _iARG3, _iARG4, _iARG5, _iARG6, _iARG7, _iAUTOSTK, _iMANSTK, _iSTKSZ, _iSTKSEG, _iPRI, _iENV, _iEXITFLAG, _iUSETSKNAME, _iSTATREG, _Order, _filter, _maxformat, _sumformat, _avgformat, _filtmaxmult, _filtsummult, _unittype
+
+;; ======== IDL_Obj IDL_cpuLoad ========
+;; This object is required by the system to acquire CPU load data
+;;
+;; IDL_Obj IDL_cpuLoad (function, calibration)
+ .global IDL_cpuLoad
+ .asg IDL_F_busy, _function
+ .asg 01H, _calibration
+ IDL_Obj 1, IDL_cpuLoad, 0, _function, _calibration
+
+;; ======== IDL_Obj LNK_dataPump ========
+;; This object cannot be deleted
+;;
+;; IDL_Obj LNK_dataPump (function, calibration)
+ .global LNK_dataPump
+ .asg LNK_F_dataPump, _function
+ .asg 01H, _calibration
+ IDL_Obj 1, LNK_dataPump, 0, _function, _calibration
+
+;; ======== IDL_Obj RTA_dispatcher ========
+;; This object cannot be deleted
+;;
+;; IDL_Obj RTA_dispatcher (function, calibration)
+ .global RTA_dispatcher
+ .asg RTA_F_dispatch, _function
+ .asg 01H, _calibration
+ IDL_Obj 1, RTA_dispatcher, 0, _function, _calibration
+
+;; ======== LOG_Obj LOG_system ========
+;; This object is required by the system to accumulate execution trace information
+;;
+;; LOG_Obj LOG_system (bufseg, buflen, logtype, iType, iFormat)
+ .global LOG_system
+ .asg IRAM, _bufseg
+ .asg 040H, _buflen
+ .asg "circular", _logtype
+ .asg "system", _iType
+ .asg "0x%x, 0x%x, 0x%x", _iFormat
+ LOG_Obj 1, LOG_system, 0, _bufseg, _buflen, _logtype, _iType, _iFormat
+
+;; ======== STS_Obj IDL_busyObj ========
+;; This object is required by the system to accumulate CPU load statistics
+;;
+;; STS_Obj IDL_busyObj (prev, filter, maxformat, sumformat, avgformat, op, uType, iA, iB, iC, prevlow)
+ .global IDL_busyObj
+ .asg 00H, _prev
+ .asg 01H, _filter
+ .asg "%g", _maxformat
+ .asg "%g", _sumformat
+ .asg "%.2f", _avgformat
+ .asg 00H, _op
+ .asg 02H, _uType
+ .asg 01H, _iA
+ .asg 00H, _iB
+ .asg 01H, _iC
+ .asg 00H, _prevlow
+ STS_Obj 1, IDL_busyObj, 0, _prev, _filter, _maxformat, _sumformat, _avgformat, _op, _uType, _iA, _iB, _iC, _prevlow
+
+;; MODULE INITIALIZATION
+ .sect ".sysinit"
+ .global BIOS_init, _BIOS_init
+BIOS_init:
+_BIOS_init:
+ GBL_preamble
+ GBL_init
+ SEM_init
+ MEM_init
+ OBJ_init
+ BUF_init
+ POOL_init
+ CLK_init
+ PRD_init
+ RTDX_init
+ IDL_init
+ LCK_init
+ LOG_init
+ MBX_init
+ PIP_init
+ QUE_init
+ STS_init
+ SYS_init
+ HWI_init
+ HST_init
+ DEV_init
+ UDEV_init
+ DIO_init
+ DGN_init
+ DHL_init
+ DPI_init
+ SIO_init
+ GIO_init
+ MSGQ_init
+ SWI_init
+ HOOK_init
+ TSK_init
+ ISRC_init
+ GBL_postamble
+
+;; MODULE STARTUP
+ .sect ".sysinit"
+ .global BIOS_start, _BIOS_start
+BIOS_start:
+_BIOS_start:
+ GBL_preamble
+ GBL_startup
+ SEM_startup
+ MEM_startup
+ OBJ_startup
+ BUF_startup
+ POOL_startup
+ CLK_startup
+ PRD_startup
+ RTDX_startup
+ IDL_startup
+ LCK_startup
+ LOG_startup
+ MBX_startup
+ PIP_startup
+ QUE_startup
+ STS_startup
+ SYS_startup
+ HWI_startup
+ HST_startup
+ DEV_startup
+ UDEV_startup
+ DIO_startup
+ DGN_startup
+ DHL_startup
+ DPI_startup
+ SIO_startup
+ GIO_startup
+ MSGQ_startup
+ SWI_startup
+ HOOK_startup
+ TSK_startup
+ ISRC_startup
+ GBL_postamble
+
+;; EPILOGUE
+ GBL_end
+ MEM_end
+ OBJ_end
+ BUF_end
+ POOL_end
+ CLK_end
+ PRD_end
+ RTDX_end
+ HST_end
+ HWI_end
+ SWI_end
+ TSK_end
+ IDL_end
+ ISRC_end
+ LOG_end
+ PIP_end
+ SEM_end
+ MBX_end
+ QUE_end
+ LCK_end
+ STS_end
+ SYS_end
+ SIO_end
+ GIO_end
+ DEV_end
+ UDEV_end
+ DIO_end
+ DGN_end
+ DHL_end
+ DPI_end
+ MSGQ_end
+ HOOK_end
+
+ .copy confend.s62
diff --git a/Project/RTDSP/.gconf/RTDSP/lab4/RTDSP/dsp_bios_cfg_c.c b/Project/RTDSP/.gconf/RTDSP/lab4/RTDSP/dsp_bios_cfg_c.c
new file mode 100644
index 0000000..f13e3eb
--- /dev/null
+++ b/Project/RTDSP/.gconf/RTDSP/lab4/RTDSP/dsp_bios_cfg_c.c
@@ -0,0 +1,11 @@
+/* Do *not* directly modify this file. It was */
+/* generated by the Configuration Tool; any */
+/* changes risk being overwritten. */
+
+/* INPUT dsp_bios_.cdb */
+
+/* Include Header File */
+#include "dsp_bios_cfg.h"
+
+/* Config Structures */
+/* Handles */
diff --git a/Project/RTDSP/.gconf/RTDSP/lab5/RTDSP/dsp_bios_.cdb b/Project/RTDSP/.gconf/RTDSP/lab5/RTDSP/dsp_bios_.cdb
new file mode 100644
index 0000000..c17ef92
--- /dev/null
+++ b/Project/RTDSP/.gconf/RTDSP/lab5/RTDSP/dsp_bios_.cdb
@@ -0,0 +1,8762 @@
+//!
+//# c6x1x.cdb 5.25.25
+
+object CACHE_L2 :: MEM {
+ param iComment :: "Generated by Cache Settings in GBL"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param base :: 262144
+ param len :: 0
+ param iAllocHeap :: 0
+ param iHeapSize :: 32768
+ param iUserHeapId :: 0
+ param iHeapId :: @segment_name
+ param iReqHeapCount :: 0
+ param space :: "Cache"
+ param dynamicLoading :: 0
+ param iIsModifiable :: 1
+}
+
+class Module {
+ prop Visible :: 1
+ prop Writable :: 1
+ prop IsConfMod :: (if self.gNumOf > 0 {1} else {0})
+ prop NoGen :: 0
+ prop IsDirty :: ($a = self.gDirty, self.gDirty = 0, $a)
+ prop dataSize :: 0
+ prop error :: # ("Error: ", self.name, $1)
+ prop warning :: ("Warning ...", self.name, $1)
+ prop minBit :: ($a = 0, while (($1 & (1 << $a)) && $a < 32) {++$a}, $a)
+ prop name :: ("<unnamed module>")
+ prop numBit :: ($a = $b = 0, while ($a < 32) {if ($1 & (1 << $a)) {++$b} }, $b)
+}
+
+class ObjectMgr {
+ isa Module
+ prop CanCreate :: (if (self.gNumOf < self.maxObjs()) {self.localCanCreate()} else {self.warning("Maximum number of objects already created")})
+ prop CanDelete :: (if (self.iDelMsg == "ok" || (self.iDelUser == self.gUser)) {if (self.iId >= 0 && self.iIsUsed) {self.localCanDelete()} else {self.warning("Object already deleted")}} else {self.warning(self.iDelMsg)})
+ prop Create :: ((self.gUser = (if $0 > 0 {$1} else {"USER"})), if (($a = self.CanCreate()) == "ok") {if (($a = self.localCreate()) == "ok") {if (self.iIsUsed == 0) {self.mkId(if $0 > 1 {$2} else {-1}), self.iIsUsed = 1, GlobalStatus.gDirty = 1, self.gDirty = 1} } } , (self.gUser = "USER"), $a)
+ prop Delete :: ((self.gUser = (if $0 > 0 {$1} else {"USER"})), if (($a = self.CanDelete()) == "ok") {if (($a = self.localDelete()) == "ok") {self.rmId(self.iId), self.iIsUsed = 0, GlobalStatus.gDirty = 1, self.gDirty = 1} } , (self.gUser = "USER"), $a)
+ prop GetSetOf :: (self.gSetOf)
+ prop GetNumOf :: (self.gNumOf)
+ prop GetObjId :: (self.iId)
+ prop GetPriority :: (self.iId)
+ prop SetPriority :: (self.iId = $1)
+ prop IsConfObj :: (self.iIsUsed)
+ prop localCanCreate :: ("ok")
+ prop localCanDelete :: ("ok")
+ prop localCreate :: ("ok")
+ prop localDelete :: ("ok")
+ prop localInit :: (0)
+ prop isFinite :: (if self.maxObjs() <= GBL.DSPWORDSIZE {1} else {0})
+ prop mkId :: (if (self.isFinite()) {if ($1 < 0) {self.iId = self.minBit(self.gSetOf)} else {self.iId = $1}, (self.gSetOf |= (1 << self.iId))} else {self.iId = 0}, ++self.gNumOf, self.iId)
+ prop rmId :: (if (self.isFinite()) {self.gSetOf &= ~(1 << self.iId)} , --self.gNumOf)
+ prop maxObjs :: (GBL.DSPWORDSIZE)
+ prop isDriver :: (0)
+ prop SortChildHierView :: (1)
+}
+
+type GlobalStatus {
+ prop NoGen :: 1
+ prop Visible :: 0
+ prop Writable :: 0
+ prop Label :: "Current Configuration Status"
+ prop GlobalIcon :: 101
+ prop InstanceIcon :: 101
+ prop GlobalHelpTopic :: (100)
+ prop GlobalPropertyPage :: ("{9D3AD931-847B-11d0-A621-0000C070F3E9}")
+ prop Status :: (# self.SeedVersion, # self.MinStackSize, # self.SysDataSize)
+ global GENLIB :: "bioscfg.dll" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Generation Library"
+ prop NoGen :: 1
+ prop Visible :: 0
+ prop Writable :: 1
+ }
+ global DATE :: "Tue Feb 27 10:16:43 2018" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global GCONFVERS :: "@(#)*** xdcutils-e03" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global SysDataSize :: = ($a = 0, scan ($i; nil) {if ($i.dataSize() != nil) {$a = $a + $i.dataSize()} }, $a) {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: "Estimated Data Size: %d"
+ prop StatusField :: 1
+ prop NoGen :: 1
+ }
+ global MinStackSize :: = ($a = ((2 * (2)) * 4), $a = $a + ((2 * (5)) * 4), $a = $a + ((0) * 4), $b = 0, scan ($i; CLK) {if ($i.IsConfObj()) {$b |= 1} }, $a = $a + (((2 * (2)) * 4) * $b), $b = 0, scan ($i; HWI) {if ($i.IsConfObj()) {if ($i != HWI_NMI && $i != HWI_RESET) {if (($i.function != @HWI_unused) && ($i.function != @RESERVED)) {$b++} } } }, $a = $a + (((12 + 14 + 2) * 4) * $b), $b = 0, scan ($i; SWI) {if ($i.IsConfObj()) {if ($i.priority > $b) {$b = $i.priority} } }, $a = $a + ((((2 * 2) + 18 + (2 * 4)) * 4) * $b), $b = 0, scan ($i; PRD) {if ($i.IsConfObj()) {$b |= 1} }, $a = $a + (((2 * (3)) * 4) * $b), $a) {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: "Est. Min. Stack Size (MAUs): %d"
+ prop StatusField :: 1
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global ConfigWarnings :: = (if (self.MinStackSize > MEM.STACKSIZE) {"Application stack size is too small; decrease the number of SWI priorities or increase the stack in MEM."} else {"None"}) {
+ prop Label :: "Warnings"
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global SeedVersion :: = "@(#)*** cuda-u25x" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+class EModule {
+ isa Module
+ prop IsXMod :: (1)
+ prop Vendor :: ("")
+ prop Version :: ("")
+}
+
+class EObjectMgr {
+ isa ObjectMgr
+ prop IsXMod :: (1)
+ prop Vendor :: ("")
+ prop Version :: ("")
+}
+
+class ModuleFolder {
+ isa Module
+ prop NoGen :: 1
+}
+
+type SYSTEM {
+ isa ModuleFolder
+ prop Label :: "System"
+ prop GlobalIcon :: 151
+ prop GlobalHelpTopic :: (500)
+ prop GlobalPropertyPage :: ("{B936FB91-52A5-11d4-947C-0050048381B7}")
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+type INS {
+ isa ModuleFolder
+ prop Label :: "Instrumentation"
+ prop GlobalIcon :: 152
+ prop GlobalHelpTopic :: (501)
+ prop GlobalPropertyPage :: ("{053C8F90-52A6-11d4-947C-0050048381B7}")
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+type SCH {
+ isa ModuleFolder
+ prop Label :: "Scheduling"
+ prop GlobalIcon :: 153
+ prop GlobalHelpTopic :: (502)
+ prop GlobalPropertyPage :: ("{053C8F91-52A6-11d4-947C-0050048381B7}")
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+type SYN {
+ isa ModuleFolder
+ prop Label :: "Synchronization"
+ prop GlobalIcon :: 154
+ prop GlobalHelpTopic :: (503)
+ prop GlobalPropertyPage :: ("{053C8F92-52A6-11d4-947C-0050048381B7}")
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+type IOF {
+ isa ModuleFolder
+ prop Label :: "Input/Output"
+ prop GlobalIcon :: 155
+ prop GlobalHelpTopic :: (504)
+ prop GlobalPropertyPage :: ("{053C8F93-52A6-11d4-947C-0050048381B7}")
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+type SIODRIVER {
+ isa ModuleFolder
+ prop Label :: "Device Drivers"
+ prop IsContainedIn :: IOF
+ prop GlobalIcon :: 127
+ prop GlobalHelpTopic :: (505)
+ prop GlobalPropertyPage :: ("{A2BCEC70-5365-11d4-947C-0050048381B7}")
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+type PROJ {
+ isa ObjectMgr
+ prop name :: "PROJ"
+ prop maxObjs :: 0
+ prop Label :: "Project Manager"
+ prop GlobalIcon :: 121
+ prop InstanceIcon :: 122
+ prop InstanceHelpTopic :: (201)
+ prop GlobalHelpTopic :: (101)
+ prop InstancePropertyPage :: ("{AC3C77D1-890B-11d0-A621-0000C070F3E9}")
+ prop GlobalPropertyPage :: ("{AC3C77D2-890B-11d0-A621-0000C070F3E9}")
+ prop NoGen :: 1
+ prop Visible :: 0
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global ALIASALL :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Generate C Names for All Objects"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global IGNOREWARNING :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Ignore Warnings"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global LIBPATH :: ".;../../lib;$(BIOSROOT)/lib" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Library Search Path"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global INCPATH :: ".;../../include;$(BIOSROOT)/include" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Include File Search Path"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global OBJDIR :: "." {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Object file directory"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global EXTEXE :: "out" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Executable File Extension"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global EXTLIB :: "lib" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Library File Extension"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global EXTASM :: "asm" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Assembly Language Source File Extension"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global EXTOBJ :: "obj" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Object File Extension"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst projType :: "Executable" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "Executable,Library"
+ prop Label :: "Target Type"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst projName :: "$(PROG)" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Target File Name"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst useRpt :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Use RPT Instruction"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst minimizeSpace :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Optimize for Space over Time"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst tmx :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Avoid TMX Silicon Bugs"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+}
+
+type PROJ_FILE {
+ isa ObjectMgr
+ prop Visible :: 0
+ prop Label :: "Project File Manager"
+ prop InstanceHelpTopic :: (BIOSHELP_PROJ_FILE_INSTANCE)
+ prop GlobalHelpTopic :: (BIOSHELP_PROJ_FILE_GLOBAL)
+ prop InstancePropertyPage :: ("{AC3C77D3-890B-11d0-A621-0000C070F3E9}")
+ prop GlobalPropertyPage :: ("{AC3C77D4-890B-11d0-A621-0000C070F3E9}")
+ prop NoGen :: 1
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst elemType :: "C Source" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "C Source,ASM Source,Library,Linker Command File"
+ prop Label :: "Input File Type"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst elemName :: "$(PROG)" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Input File Name"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst optLevel :: "register+local+global" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "register,register+local,register+local+global,register+local+global+file"
+ prop Label :: "Optimization Level"
+ prop Visible :: 0
+ prop Writable :: if self.elemType == "C Source" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst inline :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Inline Expansion"
+ prop Visible :: 0
+ prop Writable :: if self.elemType == "C Source" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst definitions :: "" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Additional Definitions"
+ prop Visible :: 0
+ prop Writable :: if self.elemType == "C Source" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iParent :: 0 {
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+}
+
+type GBL {
+ isa Module
+ prop name :: "GBL"
+ prop Label :: "Global Settings"
+ prop IsContainedIn :: SYSTEM
+ prop cGen :: 0
+ prop GenLinkPrologue :: ("%10S\nSECTIONS {%4t\n.vers (COPY): {} /* version information */%0t\n}\n\n-priority\n--trampolines\n%25S%1S%22S-l%2S%23S%3S\n%24S%15S%4S%16S%18S%5S%6S%12S%7S%17S\0, _autoInitStr, _board, _librarySuffix, _devLibStr, _biosLibStr, _rtdxLibStr, _rtsLibStr, _librarySuffix, _compilerModel, _lnkCmdStr, _lnkCmdFile, _cslLibStr, _chipType, _librarySuffix, _chipStr, _sioLibStr, _mpcLibStr, _bios6xLibStr, _bios6xClkType, _instStr, _rtsNameStr, _romStr, _biosRomStr, _logLibStr, _SKLibStr")
+ prop poolStr :: (if (self.LINKWITHROM == 0) {""} else {if POOL.USEPOOL {""} else {"_POOL_config=0;\n"}})
+ prop msgqStr :: (if (self.LINKWITHROM == 0) {""} else {if MSGQ.USEMSGQ {""} else {"_MSGQ_config=0;\n"}})
+ prop GenLinkEpilogue :: ("%0t_GBL_CACHE = GBL_CACHE;\n%1S%2S\0, poolStr, msgqStr")
+ prop ConfigurationClass :: "{2779A121-92CC-11d1-A63D-0000C070F3E9}"
+ prop GlobalIcon :: 105
+ prop InstanceIcon :: 106
+ prop GlobalHelpTopic :: (103)
+ prop InstanceHelpTopic :: (103)
+ prop InstancePropertyPage :: ("{B7240DE4-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop GlobalPropertyPage :: ("{B7240DE5-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop localInit :: (RTA_toHost.Create("HST"), RTA_toHost.bufseg = HST.OBJMEMSEG, RTA_fromHost.Create("HST"), RTA_fromHost.bufseg = HST.OBJMEMSEG, RTA_dispatcher.Create("HST"), IDL_busyObj.Create("IDL"), IDL.USEIDLBUSYOBJ = 1, IDL_cpuLoad.Create("IDL"))
+ prop chipcall :: ("ok")
+ prop IsConfMod :: 1
+ prop ucompare :: ($e = "ok", $a = ($1 >> 31) & 0x00000001, $b = ($2 >> 31) & 0x00000001, $c = $1 & 0x7fffffff, $d = $2 & 0x7fffffff, if ($a > $b) {$e = "gt"} else {if ($a == $b) {if ($c > $d) {$e = "gt"} else {if ($c == $d) {$e = "eq"} else {$e = "lt"}}} else {$e = "lt"}}, $e)
+ prop L2Check :: (if (self.DSPSUBTYPE == 6211 || self.DSPSUBTYPE == 6711) {self.PCC = "mapped", if (self.C641XL2CONFIGURE == 1) {self.C641XL2CONFIGURE = 0, self.L2CONFIGALLOC = 0} , self.L2CacheSizeCheck()} else {if (self.DSPSUBTYPE == 6400) {self.PCC = "mapped", if (self.C621XL2CONFIGURE == 1) {self.C621XL2CONFIGURE = 0} , self.L2CacheSizeCheck()} else {if (self.C621XL2CONFIGURE == 1) {self.C621XL2CONFIGURE = 0, self.L2CacheSizeCheck()} else {if (self.C641XL2CONFIGURE == 1) {self.C641XL2CONFIGURE = 0, self.L2CONFIGALLOC = 0, self.L2CacheSizeCheck()} }}})
+ prop C621xL2CacheSizeCheck :: ($e = "ok", $a = CACHE_L2.base, $b = CACHE_L2.len, if (self.C621XL2CONFIGURE == 0) {CACHE_L2.Delete("MEM")} else {if (self.L2MODEOPTS == "SRAM") {CACHE_L2.base = CACHE_L2.base + CACHE_L2.len, CACHE_L2.len = 0x0, CACHE_L2.Delete("MEM")} else {if (self.L2MODEOPTS == "1-way cache") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x4000, CACHE_L2.len = 0x4000} else {if (self.L2MODEOPTS == "2-way cache") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x8000, CACHE_L2.len = 0x8000} else {if (self.L2MODEOPTS == "3-way cache") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0xc000, CACHE_L2.len = 0xc000} else {if (self.L2MODEOPTS == "4-way cache") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x10000, CACHE_L2.len = 0x10000} }}}}}, $e)
+ prop C641xL2CacheSizeCheck :: ($e = "ok", $a = CACHE_L2.base, $b = CACHE_L2.len, if (self.C641XL2CONFIGURE == 0) {CACHE_L2.Delete("MEM")} else {if (self.C641XL2MODEOPTS == "4-way cache (0k)") {CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x0, CACHE_L2.len = 0x0, CACHE_L2.Delete("MEM")} else {if (self.C641XL2MODEOPTS == "4-way cache (32k)") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x8000, CACHE_L2.len = 0x8000} else {if (self.C641XL2MODEOPTS == "4-way cache (64k)") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x10000, CACHE_L2.len = 0x10000} else {if (self.C641XL2MODEOPTS == "4-way cache (128k)") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x20000, CACHE_L2.len = 0x20000} else {if (self.C641XL2MODEOPTS == "4-way cache (256k)") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x40000, CACHE_L2.len = 0x40000} }}}}}, $e)
+ prop C64PL1PCacheSizeCheck :: ($e = "ok", if (self.C64PL2CONFIGURE == 0) {self.C64PL1PCFG = "32k", CACHE_L1P.Create("MEM"), CACHE_L1P.base = CACHE_L1P.base + CACHE_L1P.len - 0x8000, CACHE_L1P.len = 0x8000} else {if (self.C64PL1PCFG == "0k") {CACHE_L1P.base = CACHE_L1P.base + CACHE_L1P.len - 0x0, CACHE_L1P.len = 0x0, CACHE_L1P.Delete("MEM")} else {if (self.C64PL1PCFG == "4k") {CACHE_L1P.Create("MEM"), CACHE_L1P.base = CACHE_L1P.base + CACHE_L1P.len - 0x1000, CACHE_L1P.len = 0x1000} else {if (self.C64PL1PCFG == "8k") {CACHE_L1P.Create("MEM"), CACHE_L1P.base = CACHE_L1P.base + CACHE_L1P.len - 0x2000, CACHE_L1P.len = 0x2000} else {if (self.C64PL1PCFG == "16k") {CACHE_L1P.Create("MEM"), CACHE_L1P.base = CACHE_L1P.base + CACHE_L1P.len - 0x4000, CACHE_L1P.len = 0x4000} else {if (self.C64PL1PCFG == "32k") {CACHE_L1P.Create("MEM"), CACHE_L1P.base = CACHE_L1P.base + CACHE_L1P.len - 0x8000, CACHE_L1P.len = 0x8000} else {$e = self.error("Unknown cache size")}}}}}}, $e)
+ prop C64PL1DCacheSizeCheck :: ($e = "ok", if (self.C64PL2CONFIGURE == 0) {self.C64PL1DCFG = "32k", CACHE_L1D.Create("MEM"), CACHE_L1D.base = CACHE_L1D.base + CACHE_L1D.len - 0x8000, CACHE_L1D.len = 0x8000} else {if (self.C64PL1DCFG == "0k") {CACHE_L1D.base = CACHE_L1D.base + CACHE_L1D.len - 0x0, CACHE_L1D.len = 0x0, CACHE_L1D.Delete("MEM")} else {if (self.C64PL1DCFG == "4k") {CACHE_L1D.Create("MEM"), CACHE_L1D.base = CACHE_L1D.base + CACHE_L1D.len - 0x1000, CACHE_L1D.len = 0x1000} else {if (self.C64PL1DCFG == "8k") {CACHE_L1D.Create("MEM"), CACHE_L1D.base = CACHE_L1D.base + CACHE_L1D.len - 0x2000, CACHE_L1D.len = 0x2000} else {if (self.C64PL1DCFG == "16k") {CACHE_L1D.Create("MEM"), CACHE_L1D.base = CACHE_L1D.base + CACHE_L1D.len - 0x4000, CACHE_L1D.len = 0x4000} else {if (self.C64PL1DCFG == "32k") {CACHE_L1D.Create("MEM"), CACHE_L1D.base = CACHE_L1D.base + CACHE_L1D.len - 0x8000, CACHE_L1D.len = 0x8000} else {$e = self.error("Unknown cache size")}}}}}}, $e)
+ prop C64PL2CacheSizeCheck :: ($e = "ok", if (self.C64PL2CONFIGURE == 0) {CACHE_L2.Delete("MEM")} else {if (self.C64PL2MODEOPTS == "0k") {CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x0, CACHE_L2.len = 0x0, CACHE_L2.Delete("MEM")} else {if (self.C64PL2MODEOPTS == "32k") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x8000, CACHE_L2.len = 0x8000} else {if (self.C64PL2MODEOPTS == "64k") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x10000, CACHE_L2.len = 0x10000} else {if (self.C64PL2MODEOPTS == "128k") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x20000, CACHE_L2.len = 0x20000} else {if (self.C64PL2MODEOPTS == "256k") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x40000, CACHE_L2.len = 0x40000} else {if (self.C64PL2MODEOPTS == "512k") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x80000, CACHE_L2.len = 0x80000} else {if (self.C64PL2MODEOPTS == "1024k") {CACHE_L2.Create("MEM"), CACHE_L2.base = CACHE_L2.base + CACHE_L2.len - 0x100000, CACHE_L2.len = 0x100000} else {$e = self.error("Unknown cache size")}}}}}}}}, $e)
+ prop L2CacheSizeCheck :: ($e = "ok", scan ($i; MEM) {if ($i == CACHE_L2) {if self.C621XL2CONFIGURE {$e = self.C621xL2CacheSizeCheck()} else {if self.C641XL2CONFIGURE {$e = self.C641xL2CacheSizeCheck()} else {if self.DSPSUBTYPE == 6211 || self.DSPSUBTYPE == 6711 {$e = self.C621xL2CacheSizeCheck()} else {if self.DSPSUBTYPE == 6400 {$e = self.C641xL2CacheSizeCheck()} else {{CACHE_L2.base = 0x0, CACHE_L2.len = 0x0, CACHE_L2.Delete("MEM")}}}}}} }, $e)
+ prop setCPUClock :: ($e = "ok", if ($1 != self.CPUCLOCK) {$a = self.CPUCLOCK, self.CPUCLOCK = $1, if (GBL.CALLBACKOBJ != nil) {$e = GBL.CALLBACKOBJ.call()} , if ($e != "ok") {self.CPUCLOCK = $a, GBL.CALLBACKOBJ.call()} } , if ($e == "ok") {"ok"} else {self.error($e)})
+ prop setL2MODE :: (if (self.L2MODEOPTS == "SRAM") {0x0} else {if (self.L2MODEOPTS == "1-way cache") {0x1} else {if (self.L2MODEOPTS == "2-way cache") {0x2} else {if (self.L2MODEOPTS == "3-way cache") {0x3} else {0x7}}}})
+ prop setC641XL2MODE :: (if (self.C641XL2MODEOPTS == "4-way cache (0k)") {0x0} else {if (self.C641XL2MODEOPTS == "4-way cache (32k)") {0x1} else {if (self.C641XL2MODEOPTS == "4-way cache (64k)") {0x2} else {if (self.C641XL2MODEOPTS == "4-way cache (128k)") {0x3} else {0x7}}}})
+ prop _cint00Str :: "-u_c_int00 %24t/* link with alternate boot.obj */%0t\n"
+ prop _autoInitStr :: ""
+ prop _board :: (if (HST.RTDX == 1) {"lnkrtdx"} else {if (HST.DSM == 1) {"lnkdsm"} else {if (HST.EVM54 == 1) {"lnkevm54"} else {if (HST.BIOSLINK == 1) {"lnkbioslink"} else {"lnknone"}}}})
+ prop _dsptype :: GBL.DSPTYPE
+ prop _instStr :: if self.INSTRUMENTED {""} else {"_NONINST"}
+ prop _rtsNameStr :: (self.RTSLIB)
+ prop _biosLibStr :: "-lbios%20S%23S%8S %24t/* DSP/BIOS support */%0t\n"
+ prop _compilerModel :: if self.ENDIAN == "big" {"e"} else {""}
+ prop _librarySuffix :: (if (self.DSPSUBTYPE == 6700 || self.DSPSUBTYPE == 6711 || self.DSPSUBTYPE == 6712 || self.DSPSUBTYPE == 6713) {if (self.ENDIAN == "big") {".a67e"} else {".a67"}} else {if (self.DSPSUBTYPE == 6400) {if (self.ENDIAN == "big") {".a64e"} else {".a64"}} else {if (self.DSPSUBTYPE == 6499) {if (self.ENDIAN == "big") {".a64Pe"} else {".a64P"}} else {if (self.DSPSUBTYPE == 6799) {if (self.ENDIAN == "big") {".a67Pe"} else {".a67P"}} else {if ((self.DSPSUBTYPE == 6747) || (self.DSPSUBTYPE == 6748)) {if (self.ENDIAN == "big") {".a674e"} else {".a674"}} else {if (self.ENDIAN == "big") {".a62e"} else {".a62"}}}}}})
+ prop _rtdxLibStr :: if RTDX.USERTDX == 0 {""} else {if RTDX.RTDXTYPE == "JTAG" {"-lrtdx%9S.lib %24t/* RTDX support */%0t\n"} else {if RTDX.RTDXTYPE == "Simulator" {"-lrtdxsim%9S.lib %24t/* RTDX support */%0t\n"} else {"-lrtdxhs%9S.lib %24t/* RTDX support */%0t\n"}}}
+ prop _rtsLibStr :: (if self.SPECIFYRTSLIB {"-l%21S%24t/* C and C++ run-time library support */%0t\n"} else {if self.DSPSUBTYPE == 6700 || self.DSPSUBTYPE == 6711 || self.DSPSUBTYPE == 6712 || self.DSPSUBTYPE == 6713 {"-lrts6700%9S.lib%24t/* C and C++ run-time library support */%0t\n"} else {if self.DSPSUBTYPE == 6400 {"-lrts6400%9S.lib%24t/* C and C++ run-time library support */%0t\n"} else {if self.DSPSUBTYPE == 6799 {"-lrts67plus%9S.lib%24t/* C and C++ run-time library support */%0t\n"} else {if self.DSPSUBTYPE == 6499 {"-lrts64plus%9S.lib%24t/* C and C++ run-time library support */%0t\n"} else {if ((self.DSPSUBTYPE == 6747) || (self.DSPSUBTYPE == 6748)) {"-lrts6740%9S.lib%24t/* C and C++ run-time library support */%0t\n"} else {"-lrts6200%9S.lib%24t/* C and C++ run-time library support */%0t\n"}}}}}})
+ prop _bios6xClkType :: (if self.CLKTYPE == 6000 {"C6000"} else {if self.CLKTYPE == 700 {"DA700"} else {if (self.CLKTYPE == 420 || self.CLKTYPE == 6424) {if self.USEIDMA0DISPATCHER {"DM420IDMA0"} else {"DM420"}} else {if self.CLKTYPE == 2430 {"2430"} else {if self.CLKTYPE == 6482 {"TCI6482"} else {if self.CLKTYPE == 6486 {"TCI6486"} else {if self.CLKTYPE == 6488 {"TCI6488"} else {if self.CLKTYPE == 442 {"DRA442"} else {if self.CLKTYPE == 3430 {"3430"} else {if self.CLKTYPE == 6467 {"DM6467"} else {if self.CLKTYPE == 761990 {"F761990"} else {""}}}}}}}}}}})
+ prop _bios6xLibStr :: ("-lbios%19S%8S%24t/* BIOS clock specific library */%0t\n-lbios6x1x%8S%24t/* BIOS c6x1x specific library */%0t\n")
+ prop _chipStr :: ""
+ prop _pmiLibStr :: ""
+ prop _pmiVoltLibStr :: ""
+ prop _pmiVoltControlLibStr :: ""
+ prop _psclLibStr :: ""
+ prop _psclCfgLibStr :: ""
+ prop _psclConfigLibStr :: ""
+ prop _mpcLibStr :: ""
+ prop _lnkCmdFile :: MEM.LNKCMDFILE
+ prop _lnkCmdStr :: (if (MEM.LNKCMDFILE == "") {""} else {"-l%11S %24t/* User Specified Linker cmd file */%0t\n"})
+ prop _sioLibStr :: if SIO.USEISSUERECLAIM == 1 {"-lsioir%23S%8S %24t/* supports SIO Issue/Reclaim model only */%0t\n"} else {"-lsioboth%23S%8S %24t/* supports both SIO models */%0t\n"}
+ prop _devLibStr :: "-ldrivers%23S%14S %24t/* device drivers support */%0t\n"
+ prop _cslLibStr :: ""
+ prop _chipType :: ""
+ prop _logLibStr :: if LOG.TS {"-llog8%3S\n"} else {""}
+ prop _romStr :: if self.LINKWITHROM {"-lromC672x.out\n-lromC672x.cmd\n"} else {""}
+ prop _biosRomStr :: if self.LINKWITHROM {"_BIOSROM"} else {""}
+ prop _SKLibStr :: ""
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global PRODUCT :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ prop Visible :: 0
+ prop Writable :: 1
+ prop EnvField :: 1
+ }
+ global CALLBACKOBJ :: CLK {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CHIPCHAIN :: nil {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global TRACE :: "CD-01234567" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Trace Mask"
+ prop NoGen :: 1
+ prop Visible :: 0
+ prop Writable :: 0
+ }
+ global BOARD :: "c6211" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Target Board Name"
+ prop JSName :: "BOARDNAME"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global ROM :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Link to ROM Library"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global CPUCLOCK :: 225.000000 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global PROCID :: = 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Label :: "Processor ID (PROCID)"
+ prop JSName :: "PROCID"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global CLKIN :: = 20000 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Label :: "Board Clock in KHz (Informational Only)"
+ prop JSName :: "CLKIN"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global FREQ :: 225000 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global MIPS :: 225.000000 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: 0x04
+ prop Format :: "%.4f"
+ prop Label :: "DSP Speed In MHz (CLKOUT)"
+ prop JSName :: "CLKOUT"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: ($a = self.MIPS, $b = if (GBL.DSPTYPE == 62) {$1} else {$1 * 2}, $e = "ok", self.MIPS = $1, self.FREQ = int(self.MIPS * 1000), if (($e = self.setCPUClock($b)) != "ok") {self.MIPS = $a} , $e)
+ }
+ global OSTYPE :: "BIOS" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "BIOS"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global DSPTYPE :: 62 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "DSP Major Type"
+ prop JSName :: "DSPTYPE"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global SPECIFYRTSLIB :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Specify RTS library"
+ prop JSName :: "SPECIFYRTSLIB"
+ prop NoGen :: 1
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ global RTSLIB :: "" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Run-Time Support Library"
+ prop JSName :: "RTSLIB"
+ prop NoGen :: 1
+ prop Visible :: 1
+ prop Writable :: self.SPECIFYRTSLIB
+ }
+ global DSPSUBTYPE :: 6713 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "6211,6711,6712,6713"
+ prop Label :: "DSP Type"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Set :: (self.DSPSUBTYPE = $1, self.L2Check(), "ok")
+ prop NoGen :: 0
+ }
+ global CLKTYPE :: 6000 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "CLK Type"
+ prop JSName :: "CLKTYPE"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global CHIPTYPE :: "6713" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "6211,6711,6712,6713,DA610,custom,other"
+ prop Label :: "Chip Support Library (CSL)"
+ prop JSName :: "CHIPTYPE"
+ prop NoGen :: 1
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Set :: (if ($1 == "6201" || $1 == "6202" || $1 == "6203" || $1 == "6204" || $1 == "6205") {self.DSPSUBTYPE = 6200} else {if ($1 == "6701") {self.DSPSUBTYPE = 6700} else {if ($1 == "6211") {self.DSPSUBTYPE = 6211} else {if ($1 == "6711" || $1 == "6712" || $1 == "6713" || $1 == "DA610") {if ($1 == "6711") {self.DSPSUBTYPE = 6711} , if ($1 == "6712") {self.DSPSUBTYPE = 6712} , if ($1 == "6713") {self.DSPSUBTYPE = 6713} } else {if ($1 == "DM642" || $1 == "6412" || $1 == "6414" || $1 == "6415" || $1 == "6416" || $1 == "6410" || $1 == "6413") {self.DSPSUBTYPE = 6400} }}}}, self.CHIPTYPE = $1, self.L2Check(), $e = "ok", if (GBL.CHIPCHAIN != nil) {$e = GBL.CHIPCHAIN.chipcall()} , $e)
+ }
+ global DISPCALLCSLCFGINIT :: = (self.CHIPTYPE != "other" && self.CHIPTYPE != "custom") {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Call CSL_cfgInit Initialization routine"
+ prop Visible :: 0
+ prop Writable :: self.SUPPORTCSL
+ prop NoGen :: 1
+ }
+ global DSPNAME :: "TMS320C62XX" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global DSPARITHMETIC :: = (if (GBL.DSPTYPE == 62 && (GBL.DSPSUBTYPE / 100) == 67) {"FLOAT"} else {"FIXED"}) {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "FIXED,FLOAT"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global DSPWORDSIZE :: = (if (GBL.DSPTYPE == 30 || GBL.DSPTYPE == 40 || GBL.DSPTYPE == 62) {32} else {16}) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "DSP Word Size"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global DSPCHARSIZE :: = (if GBL.DSPTYPE == 62 {8} else {if GBL.DSPSUBTYPE == 5599 {8} else {GBL.DSPWORDSIZE}}) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "DSP Byte Size"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global DATAPTRSIZE :: = (if (GBL.DSPTYPE == 62) {32} else {if (GBL.DSPTYPE == 54) {16} else {if (GBL.DSPTYPE == 55) {if (GBL.MEMORYMODEL == "SMALL") {16} else {23}} else {if (GBL.DSPTYPE == 28) {22} else {0}}}}) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop iComment :: "Size of the Data Pointer"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CODEPTRSIZE :: = (if (GBL.DSPTYPE == 62) {32} else {if (GBL.DSPTYPE == 54) {if (GBL.CALLMODEL == "near") {16} else {24}} else {if (GBL.DSPTYPE == 55) {24} else {if (GBL.DSPTYPE == 28) {22} else {0}}}}) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop iComment :: "Size of Code Pointer"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global ENDIAN :: "little" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "little,big"
+ prop Label :: "DSP Endian Mode"
+ prop JSName :: "ENDIANMODE"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: (self.ENDIAN = $1, "ok")
+ }
+ global BIGENDIAN :: = if self.ENDIAN == "little" {0} else {1} {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global AUTOINIT :: "ROM" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "ROM,RAM"
+ prop Label :: "C Autoinitialization Model"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global USERINIT :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Call User Init Function"
+ prop JSName :: "CALLUSERINITFXN"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (if ($1 == 0) {self.USERINITFXN = @_FXN_F_nop, self.USERINIT = $1} else {self.USERINIT = $1}, "ok")
+ }
+ global USERINITFXN :: @_GBL_setPLLto225MHz {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "User Init Function"
+ prop JSName :: "USERINITFXN"
+ prop Visible :: 1
+ prop Writable :: self.USERINIT
+ prop NoGen :: 0
+ }
+ global OLDAUTOCALCULATE :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "previous value for autocalculate"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global ENABLEINST :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable Real Time Analysis"
+ prop JSName :: "ENABLEINST"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (if ($1 != self.ENABLEINST) {if ($1) {RTA_toHost.Create("HST"), RTA_toHost.bufseg = HST.OBJMEMSEG, RTA_fromHost.Create("HST"), RTA_fromHost.bufseg = HST.OBJMEMSEG, RTA_dispatcher.Create("HST"), IDL_busyObj.Create("IDL"), IDL.USEIDLBUSYOBJ = 1, IDL_cpuLoad.Create("IDL"), IDL.AUTOCALCULATE = self.OLDAUTOCALCULATE} else {if (self.LINKWITHROM) {self.LINKWITHROM = 0} , RTA_toHost.Delete("HST"), RTA_toHost.bufseg = MEM_NULL, RTA_fromHost.Delete("HST"), RTA_fromHost.bufseg = MEM_NULL, RTA_dispatcher.Delete("HST"), IDL_busyObj.Delete("IDL"), IDL.USEIDLBUSYOBJ = 0, IDL_cpuLoad.Delete("IDL"), self.OLDAUTOCALCULATE = IDL.AUTOCALCULATE, IDL.AUTOCALCULATE = 0}, self.ENABLEINST = $1} , "ok")
+ }
+ global INSTRUMENTED :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Use Instrumented BIOS library"
+ prop JSName :: "INSTRUMENTED"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global CGENERATE :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Do C Generation"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global ENABLEDLL :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable Dynamic Loading"
+ prop JSName :: "ENABLEDLL"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global PCC :: "mapped" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "mapped,cache enable,cache freeze,cache bypass"
+ prop Label :: "Program Cache Control - CSR(PCC) "
+ prop JSName :: "CSRPCC"
+ prop Visible :: 1
+ prop Writable :: if (GBL.DSPSUBTYPE == 6211 || GBL.DSPSUBTYPE == 6711 || GBL.DSPSUBTYPE == 6400) {0} else {1}
+ prop NoGen :: 1
+ prop TabName :: "620x/670x/672x"
+ }
+ global DCC :: "mapped" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "mapped,cache enable,cache freeze,cache bypass"
+ prop Label :: "Data Cache Control"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "620x/670x/672x"
+ }
+ global PCACHE :: = (if (self.PCC == "mapped") {0x0000} else {if (self.PCC == "cache enable") {0x0040} else {if (self.PCC == "cache freeze") {0x0060} else {0x0080}}}) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global DCACHE :: = (if (self.DCC == "mapped") {0x0000} else {if (self.DCC == "cache enable") {0x0008} else {if (self.DCC == "cache freeze") {0x000c} else {0x0010}}}) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CACHE :: = (self.PCACHE | self.DCACHE) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global C621XL2CONFIGURE :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "621x/671x - Configure L2 Memory Settings"
+ prop JSName :: "C621XCONFIGUREL2"
+ prop Visible :: 1
+ prop Writable :: if (GBL.DSPSUBTYPE == 6211 || GBL.DSPSUBTYPE == 6711 || GBL.DSPSUBTYPE == 6712 || GBL.DSPSUBTYPE == 6713) {1} else {0}
+ prop TabName :: "621x/671x"
+ prop Set :: ($e = "ok", self.C621XL2CONFIGURE = $1, self.PCC = "mapped", $e = self.L2CacheSizeCheck(), $e)
+ prop NoGen :: 1
+ }
+ global C641XL2CONFIGURE :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "641x - Configure L2 Memory Settings"
+ prop JSName :: "C641XCONFIGUREL2"
+ prop Visible :: 1
+ prop Writable :: if (GBL.DSPSUBTYPE == 6400) {1} else {0}
+ prop TabName :: "641x"
+ prop Set :: ($e = "ok", self.C641XL2CONFIGURE = $1, self.PCC = "mapped", $e = self.L2CacheSizeCheck(), $e)
+ prop NoGen :: 1
+ }
+ global L2CONFIGURE :: = (if GBL.DSPSUBTYPE == 6400 {self.C641XL2CONFIGURE} else {self.C621XL2CONFIGURE}) {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Configure L2 Cache Control (c6x1x support)"
+ prop Visible :: 0
+ prop NoGen :: 0
+ }
+ global C621XPCC :: "Cache Enabled - Direct Mapped" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "Cache Enabled - Direct Mapped"
+ prop Label :: "Program Cache Control - CSR(PCC) "
+ prop Visible :: 1
+ prop Writable :: 0
+ prop NoGen :: 1
+ prop TabName :: "621x/671x"
+ }
+ global C641XPCC :: "Cache Enabled - Direct Mapped" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "Cache Enabled - Direct Mapped"
+ prop Label :: "641x - Program Cache Control - CSR(PCC)"
+ prop Visible :: 1
+ prop Writable :: 0
+ prop NoGen :: 1
+ prop TabName :: "641x"
+ }
+ global L2MODEOPTS :: "SRAM" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "L2 Mode - CCFG(L2MODE)"
+ prop JSName :: "C621XCCFGL2MODE"
+ prop Enum :: "SRAM,1-way cache,2-way cache,3-way cache,4-way cache"
+ prop Visible :: 1
+ prop Writable :: if ((GBL.DSPSUBTYPE == 6211 || GBL.DSPSUBTYPE == 6711 || GBL.DSPSUBTYPE == 6712 || GBL.DSPSUBTYPE == 6713) && GBL.L2CONFIGURE == 1) {1} else {0}
+ prop NoGen :: 1
+ prop TabName :: "621x/671x"
+ prop Set :: ($i = self.L2MODEOPTS, self.L2MODEOPTS = $1, $e = self.L2CacheSizeCheck(), if ($e != "ok") {self.L2MODEOPTS = $i} , $e)
+ }
+ global C641XL2MODEOPTS :: "4-way cache (0k)" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "641x L2 Mode - CCFG(L2MODE)"
+ prop Enum :: "4-way cache (0k),4-way cache (32k),4-way cache (64k),4-way cache (128k),4-way cache (256k)"
+ prop JSName :: "C641XCCFGL2MODE"
+ prop Visible :: 1
+ prop Writable :: if ((GBL.DSPSUBTYPE == 6400) && GBL.L2CONFIGURE == 1) {1} else {0}
+ prop NoGen :: 1
+ prop TabName :: "641x"
+ prop Set :: ($i = self.C641XL2MODEOPTS, self.C641XL2MODEOPTS = $1, $e = self.L2CacheSizeCheck(), if ($e != "ok") {self.C641XL2MODEOPTS = $i} , $e)
+ }
+ global L2MODE :: = (if GBL.DSPSUBTYPE == 6400 {self.setC641XL2MODE()} else {self.setL2MODE()}) {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "L2 Mode - CCFG(L2MODE) Values"
+ prop Enum :: "0,1,2,3,7"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global L2PRIORITY :: 0 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "L2 Requestor Priority - CCFG(P)"
+ prop Enum :: "0,1"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global L2MARMASK :: 1 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Label :: "L2 MAR0-15 - bitmask used to initialize MARs"
+ prop JSName :: "C621XMAR"
+ prop Format :: "0x%04x"
+ prop Style :: 0x01 | 0x02
+ prop Visible :: 1
+ prop Writable :: if ((GBL.DSPSUBTYPE == 6211 || GBL.DSPSUBTYPE == 6711 || GBL.DSPSUBTYPE == 6712 || GBL.DSPSUBTYPE == 6713) && GBL.L2CONFIGURE == 1) {1} else {0}
+ prop NoGen :: 0
+ prop TabName :: "621x/671x"
+ }
+ global SUPPORTCSL :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 0
+ }
+ global ENABLEALLTRC :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable All TRC Trace Event Classes"
+ prop JSName :: "ENABLEALLTRC"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: (if ($1) {self.TRCMASKVALUE = 0xDBEF} else {self.TRCMASKVALUE = 0x4000}, self.ENABLEALLTRC = $1, "ok")
+ }
+ global TRCMASKVALUE :: 56303 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 0
+ }
+ global CALLCSLCFGINIT :: = self.DISPCALLCSLCFGINIT {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 0
+ }
+ global CDBPATH :: "" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "CDB search path in COFF file"
+ prop JSName :: "CDBRELATIVEPATH"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global LINKWITHROM :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Link with ROM"
+ prop JSName :: "LINKWITHROM"
+ prop Visible :: 0
+ prop Writable :: if (self.DSPSUBTYPE == 6799 && self.ENABLEINST) {1} else {0}
+ prop NoGen :: 1
+ prop Set :: ($e = "ok", if ($1) {$e = self.error("This BIOS version does not support linking with ROM.")} , $e)
+ }
+ global C641XL2PRIORITY :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: if ((GBL.DSPSUBTYPE == 6400) && GBL.L2CONFIGURE == 1) {1} else {0}
+ prop NoGen :: 0
+ prop TabName :: "641x"
+ }
+ global L2MARMASK1 :: 0 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Label :: "MAR96-111 - bitmask controls EMIFB CE space"
+ prop JSName :: "C641XMAREMIFB"
+ prop Format :: "0x%04x"
+ prop Style :: 0x01 | 0x02
+ prop Visible :: 1
+ prop Writable :: if ((GBL.DSPSUBTYPE == 6400) && GBL.L2CONFIGURE == 1) {1} else {0}
+ prop NoGen :: 0
+ prop TabName :: "641x"
+ }
+ global L2MARMASK2 :: 0 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Label :: "MAR128-143 - bitmask controls EMIFA CE0 space"
+ prop JSName :: "C641XMARCE0"
+ prop Format :: "0x%04x"
+ prop Style :: 0x01 | 0x02
+ prop Visible :: 1
+ prop Writable :: if ((GBL.DSPSUBTYPE == 6400) && GBL.L2CONFIGURE == 1) {1} else {0}
+ prop NoGen :: 0
+ prop TabName :: "641x"
+ }
+ global L2MARMASK3 :: 0 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Label :: "MAR144-159 - bitmask controls EMIFA CE1 space"
+ prop JSName :: "C641XMARCE1"
+ prop Format :: "0x%04x"
+ prop Style :: 0x01 | 0x02
+ prop Visible :: 1
+ prop Writable :: if ((GBL.DSPSUBTYPE == 6400) && GBL.L2CONFIGURE == 1) {1} else {0}
+ prop NoGen :: 0
+ prop TabName :: "641x"
+ }
+ global L2MARMASK4 :: 0 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Label :: "MAR160-175 - bitmask controls EMIFA CE2 space"
+ prop JSName :: "C641XMARCE2"
+ prop Format :: "0x%04x"
+ prop Style :: 0x01 | 0x02
+ prop Visible :: 1
+ prop Writable :: if ((GBL.DSPSUBTYPE == 6400) && GBL.L2CONFIGURE == 1) {1} else {0}
+ prop NoGen :: 0
+ prop TabName :: "641x"
+ }
+ global L2MARMASK5 :: 0 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Label :: "MAR176-191 - bitmask controls EMIFA CE3 space"
+ prop JSName :: "C641XMARCE3"
+ prop Format :: "0x%04x"
+ prop Style :: 0x01 | 0x02
+ prop Visible :: 1
+ prop Writable :: if ((GBL.DSPSUBTYPE == 6400) && GBL.L2CONFIGURE == 1) {1} else {0}
+ prop NoGen :: 0
+ prop TabName :: "641x"
+ }
+ global L2REQPRIORITY :: "urgent" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "641x L2 Requestor Priority Queue - CCFG(P)"
+ prop JSName :: "C641XCCFGP"
+ prop Enum :: "urgent,high,medium,low"
+ prop Visible :: 1
+ prop Writable :: if ((GBL.DSPSUBTYPE == 6400) && GBL.L2CONFIGURE == 1) {1} else {0}
+ prop NoGen :: 1
+ prop Set :: (self.L2REQPRIORITY = $1, if (self.L2REQPRIORITY == "urgent") {self.C641XL2PRIORITY = 0} else {if (self.L2REQPRIORITY == "high") {self.C641XL2PRIORITY = 1} else {if (self.L2REQPRIORITY == "medium") {self.C641XL2PRIORITY = 2} else {self.C641XL2PRIORITY = 3}}}, "ok")
+ prop TabName :: "641x"
+ }
+ global L2CONFIGALLOC :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Configure Priority Queues"
+ prop JSName :: "C641XSETL2ALLOC"
+ prop Visible :: 1
+ prop Writable :: (GBL.DSPSUBTYPE == 6400 && GBL.L2CONFIGURE == 1)
+ prop NoGen :: 0
+ prop TabName :: "641x"
+ }
+ global L2ALLOC0 :: 6 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Max L2 Transfer Requests on URGENT Queue (L2ALLOC0)"
+ prop JSName :: "C641XL2ALLOC0"
+ prop Enum :: "0,1,2,3,4,5,6,7"
+ prop Visible :: 1
+ prop Writable :: if (GBL.DSPSUBTYPE == 6400 && GBL.L2CONFIGURE == 1 && GBL.L2CONFIGALLOC == 1) {1} else {0}
+ prop NoGen :: 1
+ prop TabName :: "641x"
+ }
+ global L2ALLOC1 :: 2 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Max L2 Transfer Requests on HIGH Queue (L2ALLOC1)"
+ prop JSName :: "C641XL2ALLOC1"
+ prop Enum :: "0,1,2,3,4,5,6,7"
+ prop Visible :: 1
+ prop Writable :: if (GBL.DSPSUBTYPE == 6400 && GBL.L2CONFIGURE == 1 && GBL.L2CONFIGALLOC == 1) {1} else {0}
+ prop NoGen :: 1
+ prop TabName :: "641x"
+ }
+ global L2ALLOC2 :: 2 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Max L2 Transfer Requests on MEDIUM Queue (L2ALLOC2)"
+ prop JSName :: "C641XL2ALLOC2"
+ prop Enum :: "0,1,2,3,4,5,6,7"
+ prop Visible :: 1
+ prop Writable :: if (GBL.DSPSUBTYPE == 6400 && GBL.L2CONFIGURE == 1 && GBL.L2CONFIGALLOC == 1) {1} else {0}
+ prop NoGen :: 1
+ prop TabName :: "641x"
+ }
+ global L2ALLOC3 :: 2 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Max L2 Transfer Requests on LOW Queue (L2ALLOC3)"
+ prop JSName :: "C641XL2ALLOC3"
+ prop Enum :: "0,1,2,3,4,5,6,7"
+ prop Visible :: 1
+ prop Writable :: if (GBL.DSPSUBTYPE == 6400 && GBL.L2CONFIGURE == 1 && GBL.L2CONFIGALLOC == 1) {1} else {0}
+ prop NoGen :: 1
+ prop TabName :: "641x"
+ }
+ global L2ALLOC :: = ((self.L2ALLOC0) | (self.L2ALLOC1 << 4) | (self.L2ALLOC2 << 8) | (self.L2ALLOC3 << 12)) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop NoGen :: 0
+ }
+}
+
+type MEM {
+ isa ObjectMgr
+ prop Label :: "MEM - Memory Section Manager"
+ prop name :: "MEM"
+ prop DependsOn :: "SEM"
+ prop IsContainedIn :: SYSTEM
+ prop GlobalIcon :: 115
+ prop InstanceIcon :: 116
+ prop GlobalHelpTopic :: (108)
+ prop InstanceHelpTopic :: (208)
+ prop InstancePropertyPage :: ("{3D658E70-05E7-11d0-BD44-0020AFEE33C8}")
+ prop GlobalPropertyPage :: ("{3D658E71-05E7-11d0-BD44-0020AFEE33C8}")
+ prop heapLabelStr :: (self.iHeapId)
+ prop GenLinkPrologue :: (if (GBL.DSPTYPE == 55) {"-stack 0x%1x\n-sysstack 0x%2x\n\nMEMORY {%4t\0, _cmd55stksz, _cmd55systksz"} else {"-stack 0x%1x\nMEMORY {%4t\0, _stackSize"})
+ prop _stackSize :: MEM.STACKSIZE
+ prop AllocType :: (if (self.REUSE == 0 && self.USERCMD == 0) {"19\0, _argsString, _argsSeg, _midPlace, _sysdataString, _sysdataSeg, _thirdPlace, _trcinitString, _trcinitSeg, _midPlace, _gblinitString, _gblinitSeg, _midPlace, _memObjString, _memObjSeg, _midPlace, _sysinitString, _initSeg, _sysinitPlace, _sysregsString, _regsSeg, _midPlace, _bssString, _bssSeg, _firstPlace, _farString, _farSeg, _secondPlace, _cinitString, _cinitSeg, _midPlace, _pinitString, _pinitSeg, _midPlace, _dataString, _dataSeg, _midPlace, _constString, _constSeg, _midPlace, _switchString, _switchSeg, _midPlace, _cioString, _cioSeg, _midPlace, _textString, _textSeg, _midPlace, _frtString, _frtSeg, _midPlace, _biosString, _biosSeg, _midPlace, _stackString, _stackSeg, _midPlace"} else {if (self.REUSE == 0 && self.USERCMD == 1) {"9\0, _argsString, _argsSeg, _midPlace, _sysdataString, _sysdataSeg, _thirdPlace, _trcinitString, _trcinitSeg, _midPlace, _gblinitString, _gblinitSeg, _midPlace, _memObjString, _memObjSeg, _midPlace, _sysinitString, _initSeg, _sysinitPlace, _sysregsString, _regsSeg, _midPlace, _biosString, _biosSeg, _midPlace, _stackString, _stackSeg, _midPlace"} else {if (self.REUSE == 1 && self.USERCMD == 0) {"18\0, _argsString, _argsSeg, _midPlace, _sysdataString, _sysdataSeg, _thirdPlace, _trcinitString, _trcinitSeg, _midPlace, _gblinitString, _gblinitSeg, _midPlace, _memObjString, _memObjSeg, _midPlace, _sysregsString, _regsSeg, _midPlace, _bssString, _bssSeg, _firstPlace, _farString, _farSeg, _secondPlace, _cinitString, _cinitSeg, _midPlace, _pinitString, _pinitSeg, _midPlace, _dataString, _dataSeg, _midPlace, _constString, _constSeg, _midPlace, _switchString, _switchSeg, _midPlace, _cioString, _cioSeg, _midPlace, _textString, _textSeg, _midPlace, _frtString, _frtSeg, _midPlace, _biosString, _biosSeg, _midPlace, _stackString, _stackSeg, _midPlace"} else {"8\0, _argsString, _argsSeg, _midPlace, _sysdataString, _sysdataSeg, _thirdPlace, _trcinitString, _trcinitSeg, _midPlace, _gblinitString, _gblinitSeg, _midPlace, _memObjString, _memObjSeg, _midPlace, _sysregsString, _regsSeg, _midPlace, _biosString, _biosSeg, _midPlace, _stackString, _stackSeg, _midPlace"}}})
+ prop _firstPlace :: 0
+ prop _secondPlace :: 0 + 1
+ prop _thirdPlace :: 0 + 2
+ prop _midPlace :: (0x7fffffff / 2)
+ prop _sysinitPlace :: (0x7fffffff / 2)
+ prop _argsString :: ("%8t .args: align=4 fill=0 {%12t\n *(.args)\n . += 0x%1x;%8t\n }\0, _argsSize")
+ prop _bssString :: ("%8t .bss: {}")
+ prop _farString :: ("%8t .far: {}")
+ prop _cinitString :: (if (self.ENABLELOADSEG == 1) {if (MEM.CINITSEG == MEM.LOADCINITSEG) {"%8t .cinit: {}"} else {"%8t .cinit: {} load > %1s, run\0, _loadcinitSeg"}} else {"%8t .cinit: {}"})
+ prop _pinitString :: (if (self.ENABLELOADSEG == 1) {if (MEM.PINITSEG == MEM.LOADPINITSEG) {"%8t .pinit: {}"} else {"%8t .pinit: {} load > %1s, run\0, _loadpinitSeg"}} else {"%8t .pinit: {}"})
+ prop _trcinitString :: (if (self.ENABLELOADSEG == 1) {if (MEM.TRCINITSEG == MEM.LOADTRCINITSEG) {"%8t .trcdata: {}"} else {"%8t .trcdata: {} load > %1s, run\0, _loadtrcinitSeg"}} else {"%8t .trcdata: {}"})
+ prop _gblinitString :: (if (self.ENABLELOADSEG == 1) {if (MEM.BIOSINITSEG == MEM.LOADBIOSINITSEG) {"%8t .gblinit: {}"} else {"%8t .gblinit: {} load > %1s, run\0, _loadgblinitSeg"}} else {"%8t .gblinit: {}"})
+ prop _dataString :: ("%8t .data: {}")
+ prop _constString :: (if (self.ENABLELOADSEG == 1) {if (MEM.CONSTSEG == MEM.LOADCONSTSEG) {"%8t GROUP {\n %8t .const: align = 0x8 {} \n %8t .printf (COPY): {} \n%8t }"} else {"%8t .const: align = 0x8 {} load > %1s run\0, _loadconstSeg"}} else {"%8t GROUP {\n %8t .const: align = 0x8 {} \n %8t .printf (COPY): {} \n%8t }"})
+ prop _switchString :: (if (self.ENABLELOADSEG == 1) {if (MEM.SWITCHSEG == MEM.LOADSWITCHSEG) {"%8t .switch: {}"} else {"%8t .switch: {} load > %1s, run\0, _loadswitchSeg"}} else {"%8t .switch: {}"})
+ prop _sysmemString :: ("%8t .sysmem: {}")
+ prop _cioString :: ("%8t .cio: {}")
+ prop _memObjString :: ("%8t .mem: {}")
+ prop _sysdataString :: (if ((GBL.ROM == 0) && (GBL.DSPTYPE == 54)) {"%8t .sysdata: align = 128 {%12t\n GBL_A_SYSPAGE = .;\n GBL_A_SYSDP = GBL_A_SYSPAGE >> 7;\n %8t }"} else {"%8t .sysdata: {}"})
+ prop _sysinitString :: (if (self.ENABLELOADSEG == 1) {if (MEM.INITSEG == MEM.LOADINITSEG) {"%8t .sysinit: {}"} else {"%8t .sysinit: {} load > %1s, run\0, _loadinitSeg"}} else {"%8t .sysinit: {}"})
+ prop _sysregsString :: ("%8t .sysregs: {}")
+ prop _textString :: (if (self.ENABLELOADSEG == 1) {if (MEM.TEXTSEG == MEM.LOADTEXTSEG) {"%8t .text: {}"} else {"%8t .text: {} load > %1s, run\0, _loadtextSeg"}} else {"%8t .text: {}"})
+ prop _frtString :: ("%8t frt: {}")
+ prop _biosString :: (if (self.ENABLELOADSEG == 1) {if (MEM.BIOSSEG == MEM.LOADBIOSSEG) {"%8t .bios: {}"} else {"%8t .bios: {} load > %1s, run\0, _loadbiosSeg"}} else {"%8t .bios: {}"})
+ prop _stackString :: (if (GBL.DSPTYPE == 62) {"%8t .stack: align = 0x8 {%12t\n GBL_stackbeg = .;\n *(.stack)\n GBL_stackend = GBL_stackbeg + 0x%1x - 1;%12t\n _HWI_STKBOTTOM = GBL_stackbeg + 0x%1x - 8;%12t\n _HWI_STKTOP = GBL_stackbeg;%8t\n }\0, _stackSize, _stackSize"} else {if (GBL.DSPTYPE == 54) {"%8t .stack: {%12t\n GBL_stackbeg = .;\n *(.stack)\n GBL_stackend = ((GBL_stackbeg + 0x%1x - 1) & 0xfffe) ;%8t\n _HWI_STKBOTTOM = GBL_stackend;%12t\n _HWI_STKTOP = GBL_stackbeg;%8t\n }\0, _stackSize"} else {if (GBL.DSPTYPE == 55) {"%8t GROUP { \n%16t .sysstack : align = 0x4 {%12t\n %16t GBL_sysstackbeg = .;\n %16t *(.sysstack)\n %16t GBL_sysstackend = GBL_sysstackbeg + 0x%2x -1 ;%12t\n %16t _HWI_SYSSTKTOP = GBL_sysstackbeg; %12t\n %16t_HWI_SYSSTKBOTTOM = (GBL_sysstackend+1);\n%16t} \n%16t .stack: align = 0x4 {%12t\n %16t GBL_stackbeg = .;\n %16t *(.stack)\n GBL_stackend = (GBL_stackbeg + 0x%1x - 1) ;%12t\n %16t _HWI_STKBOTTOM = (GBL_stackend+1);%12t\n %16t _HWI_STKTOP = (GBL_stackbeg);%16t\n }%8t\n } BLOCK(0x20000), run \0, _cmd55stksz, _cmd55systksz"} else {"%8t .stack: {%12t\n GBL_stackbeg = .;\n *(.stack)\n GBL_stackend = GBL_stackbeg + 0x%1x - 1;%8t\n _HWI_STKBOTTOM = GBL_stackbeg;%12t\n _HWI_STKTOP = (GBL_stackend + 1);%8t\n }\0, _stackSize"}}})
+ prop _memHdrSize :: 8
+ prop GenLinkEpilogue :: ("%0t}")
+ prop _stackSeg :: MEM.STACKSEG
+ prop _textSeg :: MEM.TEXTSEG
+ prop _frtSeg :: MEM.TEXTSEG
+ prop _biosSeg :: MEM.BIOSSEG
+ prop _dataSeg :: MEM.DATASEG
+ prop _cioSeg :: MEM.CIOSEG
+ prop _sysmemSeg :: MEM.SYSMEMSEG
+ prop _constSeg :: MEM.CONSTSEG
+ prop _initSeg :: MEM.INITSEG
+ prop _pinitSeg :: MEM.PINITSEG
+ prop _trcinitSeg :: MEM.TRCINITSEG
+ prop _gblinitSeg :: MEM.BIOSINITSEG
+ prop _regsSeg :: MEM.SYSDATASEG
+ prop _sysdataSeg :: MEM.SYSDATASEG
+ prop _argsSeg :: MEM.ARGSSEG
+ prop _argsSize :: MEM.ARGSSIZE
+ prop _bssSeg :: MEM.BSSSEG
+ prop _farSeg :: MEM.FARSEG
+ prop _cinitSeg :: MEM.CINITSEG
+ prop _memObjSeg :: MEM.CFGOBJSEG
+ prop _switchSeg :: MEM.SWITCHSEG
+ prop _loadtextSeg :: MEM.LOADTEXTSEG
+ prop _loadbiosSeg :: MEM.LOADBIOSSEG
+ prop _loadconstSeg :: MEM.LOADCONSTSEG
+ prop _loadinitSeg :: MEM.LOADINITSEG
+ prop _loadpinitSeg :: MEM.LOADPINITSEG
+ prop _loadtrcinitSeg :: MEM.LOADTRCINITSEG
+ prop _loadgblinitSeg :: MEM.LOADBIOSINITSEG
+ prop _loadcinitSeg :: MEM.LOADCINITSEG
+ prop _loadswitchSeg :: MEM.LOADSWITCHSEG
+ prop AllocInst :: (if (self.iAllocHeap == 1) {"1\0, _instAllocDesc, _objMemSeg, _placement"} )
+ prop _instAllocDesc :: (if self.INITSEG.iAllocHeap && self.REUSE && self.INITSEG == self {"%8t GROUP {%12t\n .sysinitgap {. += 0x%2x;}\n .sysinit:\n .%0r$heap: {%16t\n . += 0x%1x;%12t\n }%8t\n } RUN_START(%0r$B), RUN_START(_%0r_base), RUN_SIZE(%0r$L), RUN_SIZE(_%0r_length)\0, _heapsize, _sysinitgap, _heaplen"} else {"%8t .%0r$heap: {%12t\n . += 0x%1x;%8t\n } RUN_START(%0r$B), RUN_START(_%0r_base), RUN_SIZE(%0r$L), RUN_SIZE(_%0r_length)\0, _heapsize, _heaplen"})
+ prop _objMemSeg :: self
+ prop _placement :: 0x7fffffff - 1
+ prop _heapsize :: (self.iHeapSize)
+ prop _heaplen :: (self.iHeapSize)
+ prop _sysinitgap :: 2 * 4
+ prop GenInstLink :: (if GBL.DSPTYPE == 62 {"%0r %16t: origin = 0x%1x, %40tlen = 0x%2x%4t\0, _origin, _len"} else {if GBL.DSPTYPE == 55 {"PAGE %3d: %16t%0r: %26torigin = 0x%1x, %40tlen = 0x%2x%4t\0, _cmd55origin, _cmd55len, _page"} else {"PAGE %3d: %14t%0r: %26torigin = 0x%1x, %50tlen = 0x%2x%4t\0, _origin, _len, _page"}})
+ prop localInit :: ($d = "ok", scan ($i; MEM) {if ($i.space == "code" && $i.iAllocHeap == 1) {$d = self.error("Code memory cannot have a heap")} }, if (self.SEGZERO.iAllocHeap == 1) {self.SEGZERO.iReqHeapCount++} else {$d = self.error("Segment for DSP/BIOS objects must be a memory segment with a heap")}, if (self.MALLOCSEG.iAllocHeap == 1) {self.MALLOCSEG.iReqHeapCount++} else {$d = self.error("Segment for malloc()/free() must be a memory segment with a heap")}, $d)
+ prop _page :: (self.page)
+ prop _origin :: (self.base)
+ prop _len :: (self.len)
+ prop maxObjs :: (32767)
+ prop codeMember :: (if $1.dynamicLoading == 1 {0} else {if GBL.DSPTYPE == 62 {(($1.space == "code") || ($1.space == "code/data"))} else {if GBL.DSPTYPE == 54 {($1.space == "code")} else {if GBL.DSPTYPE == 28 {($1.space == "code" || ($1.space == "code/data"))} else {if GBL.DSPTYPE == 55 {(($1.space == "code") || ($1.space == "code/data"))} else {($1.space == "code/data")}}}}})
+ prop dataMember :: (if $1.dynamicLoading == 1 {0} else {if GBL.DSPTYPE == 62 {($1.space == "data" || $1.space == "code/data") && $1 != MEM_NULL} else {if GBL.DSPTYPE == 54 {(($1.space != "code") && ($1 != MEM_NULL)) && $1.space != "io"} else {if GBL.DSPTYPE == 28 {($1.space == "data" || $1.space == "code/data") && $1 != MEM_NULL} else {if GBL.DSPTYPE == 55 {($1.space == "data" || $1.space == "code/data") && $1 != MEM_NULL} else {(($1.space == "code/data") && ($1 != MEM_NULL))}}}}})
+ prop dataNullMember :: (if $1.dynamicLoading == 1 {0} else {if GBL.DSPTYPE == 62 {$1.space == "data" || $1.space == "code/data"} else {if GBL.DSPTYPE == 54 {$1.space != "code" && $1.space != "io"} else {if GBL.DSPTYPE == 28 {$1.space == "data" || $1.space == "code/data"} else {if GBL.DSPTYPE == 55 {$1.space == "data" || $1.space == "code/data"} else {$1.space == "code/data"}}}}})
+ prop dataCodeMember :: (if $1.dynamicLoading == 1 {0} else {if GBL.DSPTYPE == 62 {($1.space == "data" || $1.space == "code/data") && $1 != MEM_NULL} else {if GBL.DSPTYPE == 54 {$1.space == "code" && $1 != MEM_NULL} else {if GBL.DSPTYPE == 28 {($1.space == "code" || $1.space == "code/data") && $1 != MEM_NULL} else {if GBL.DSPTYPE == 55 {($1.space == "data" || $1.space == "code/data") && $1 != MEM_NULL} else {$1.space == "code/data" && $1 != MEM_NULL}}}}})
+ prop memWritable :: (self.iIsModifiable && self.iDelUser != "MEM")
+ prop validate :: ($e = self.checkMemOverlap($1), if ($e == "ok") {$e = self.checkHeapSize($1)} , if ($e == "ok") {$e = self.checkHeapSeg($1)} , $e)
+ prop checkHeapSeg :: ($e = "ok", if ($1 == MEM_NULL && MEM.NOHEAPS == 0) {if (MEM.MALLOCSEG == MEM_NULL) {$e = ("Heaps are enabled, but the segment for malloc (MEM.MALLOCSEG) is not set correctly. Please create a heap in one of your data segments and set MEM.MALLOCSEG to it.")} , if (MEM.SEGZERO == MEM_NULL) {$e = ("Heaps are enabled, but the segment for DSP/BIOS Objects (MEM.BIOSOBJSEG) is not set correctly. Please create a heap in one of your data segments and set MEM.BIOSOBJSEG to it.")} } , $e)
+ prop checkHeapSize :: ($e = "ok", if (MEM.NOHEAPS == 0) {if ($1.iAllocHeap && $1 != MEM_NULL) {if ($1.iHeapSize > $1.len) {$e = ("MEM segment %s: heap cannot be larger than the length of segment that contains it.")} } } , $e)
+ prop checkMemOverlap :: ($e = "ok", if ($1 != MEM_NULL && $1.iIsUsed == 1) {if ($1.len == 0) {$a = $1.base} else {$a = ($1.base + $1.len - 1)}, scan ($j; MEM) {if ($1 != $j && $j != MEM_NULL && $j.iIsUsed == 1 && (GBL.DSPTYPE == 62 || $1.space == $j.space)) {if (!($j == CACHE_L2 && GBL.L2CONFIGURE == 0)) {$b = $j.base, if ($j.len == 0) {$c = $j.base} else {$c = ($j.base + $j.len - 1)}, if ($a >= $b && $1.base <= $c) {$e = ("MEM segment %s: overlaps with another segment or cache configuration."), break} } } }} , $e)
+ prop _spaceEnum :: (self.ENUMSPACE)
+ prop checkHeapId :: ($e = "ok", scan ($i; MEM) {if ($i.iAllocHeap == 1 && $i.iUserHeapId == 1 && $i.iHeapId == $1 && $i.iHeapId != @segment_name) {$e = self.error("This identifier label is already in use"), break} }, $e)
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 2 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CALLBACKOBJ :: nil {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumHeap :: = ($a = 0, scan ($i; MEM) {if ($i != MEM_NULL) {$a += $i.iAllocHeap} }, $a) {
+ prop NoGen :: 0
+ }
+ global REUSE :: = (if self.INITSEG.space != "code" && self.INITSEG.iAllocHeap == 1 {self.SAVEREUSE} else {0}) {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Reuse Startup Code Space"
+ prop JSName :: "REUSECODESPACE"
+ prop Visible :: 1
+ prop Writable :: self.INITSEG.space != "code" && self.INITSEG.iAllocHeap == 1
+ prop NoGen :: 1
+ prop Set :: (self.SAVEREUSE = $1, "ok")
+ }
+ global SAVEREUSE :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ global doCheckOverlap :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global MAPSELECT :: "Map 1" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Map Mode"
+ prop JSName :: "MAPMODE"
+ prop Enum :: "Map 0,Map 1"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global ARGSSIZE :: 4 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: "0x%04x"
+ prop Style :: 0x01 | 0x02
+ prop Label :: "Argument Buffer Size"
+ prop JSName :: "ARGSSIZE"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: (if ($1 < 4) {self.error("The 'arguments' section must have at least 4 words.")} else {self.ARGSSIZE = $1, "ok"})
+ }
+ global ARGSSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.dataMember($1)
+ prop Label :: "Argument Buffer Section (.args)"
+ prop JSName :: "ARGSSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Data"
+ }
+ global BIOSSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.codeMember($1)
+ prop Label :: "BIOS Code Section (.bios)"
+ prop JSName :: "BIOSSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Code"
+ }
+ global STACKSIZE :: 1024 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: "0x%04x"
+ prop Style :: if GBL.DSPTYPE == 54 {0x01 | 0x02} else {0x02}
+ prop Label :: "Stack Size (MAUs)"
+ prop JSName :: "STACKSIZE"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: (if ((GBL.DSPTYPE == 55) && (GBL.DSPSUBTYPE != 5599)) {self.STACKSIZE = ($1 & -2)} else {if ((GBL.DSPTYPE == 55) && (GBL.DSPSUBTYPE == 5599)) {self.STACKSIZE = ($1 & -4)} else {self.STACKSIZE = $1}}, "ok")
+ prop PropSetOkUserMsg :: if (MEM.STACKSIZE < GlobalStatus.MinStackSize) {"Warning: You are setting the stack size to a value that is less than the Estimated Minimum Stack Size!"} else {"ok"}
+ }
+ global USERCMD :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "User .cmd File For Compiler Sections"
+ prop JSName :: "USERCOMMANDFILE"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ }
+ global STACKSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.dataMember($1)
+ prop Label :: "Stack Section (.stack)"
+ prop JSName :: "STACKSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Data"
+ prop Set :: (if (GBL.DSPTYPE == 55) {(MEM.STACKSEG = $1), (MEM.SYSSTACKSEG = $1)} else {(MEM.STACKSEG = $1)}, "ok")
+ }
+ global ENABLELOADSEG :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Specify Separate Load Addresses"
+ prop JSName :: "ENABLELOADADDR"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global LOADBIOSSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.codeMember($1)
+ prop Label :: "Load Address - BIOS Code Section (.bios)"
+ prop JSName :: "LOADBIOSSEG"
+ prop Visible :: 1
+ prop Writable :: (self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global INITSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.codeMember($1)
+ prop Label :: "Startup Code Section (.sysinit)"
+ prop JSName :: "SYSINITSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Code"
+ }
+ global LOADINITSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.codeMember($1)
+ prop Label :: "Load Address - Startup Code Section (.sysinit)"
+ prop JSName :: "LOADSYSINITSEG"
+ prop Visible :: 1
+ prop Writable :: (self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global BIOSINITSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.dataCodeMember($1)
+ prop Label :: "DSP/BIOS Init Tables (.gblinit)"
+ prop JSName :: "GBLINITSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Data"
+ }
+ global TRCINITSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.dataCodeMember($1)
+ prop Label :: "TRC Initial Value (.trcdata)"
+ prop JSName :: "TRCDATASEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Data"
+ }
+ global LOADBIOSINITSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.dataCodeMember($1)
+ prop Label :: "Load Address - DSP/BIOS Init Tables (.gblinit)"
+ prop JSName :: "LOADGBLINITSEG"
+ prop Visible :: 1
+ prop Writable :: (self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global LOADTRCINITSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.dataCodeMember($1)
+ prop Label :: "Load Address - TRC Initial Value (.trcdata)"
+ prop JSName :: "LOADTRCDATASEG"
+ prop Visible :: 1
+ prop Writable :: (self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global SYSDATASEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.dataMember($1)
+ prop Label :: "DSP/BIOS Kernel State (.sysdata)"
+ prop JSName :: "SYSDATASEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Data"
+ }
+ global CFGOBJSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: self.dataMember($1)
+ prop Label :: "DSP/BIOS Conf Sections (.*obj)"
+ prop JSName :: "OBJSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Data"
+ }
+ global NOHEAPS :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "No Dynamic Memory Heaps"
+ prop JSName :: "NOMEMORYHEAPS"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: (if ($1) {self.SEGZERO.iReqHeapCount--, self.SEGZERO = MEM_NULL, self.MALLOCSEG.iReqHeapCount--, self.MALLOCSEG = MEM_NULL, TSK.STACKSEG.iReqHeapCount--, TSK.STACKSEG = MEM_NULL, scan ($i; MEM) {if ($i.iAllocHeap && $i != MEM_NULL) {$i.iAllocHeap = 0, $i.iHeapSize = 0} }} , self.NOHEAPS = $1, "ok")
+ prop PropSetOkUserMsg :: if (MEM.NOHEAPS == 1) {"Currently specified heaps no longer valid"} else {"Please reconfigure heaps under individual mem segments"}
+ }
+ global SEGZERO :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataNullMember($1) && $1.iAllocHeap)
+ prop Label :: "Segment For DSP/BIOS Objects"
+ prop JSName :: "BIOSOBJSEG"
+ prop Visible :: 1
+ prop Writable :: MEM.NOHEAPS == 0
+ prop NoGen :: 0
+ prop Set :: (if (self.SEGZERO.iReqHeapCount > 0) {self.SEGZERO.iReqHeapCount--} , self.SEGZERO = $1, self.SEGZERO.iReqHeapCount++, "ok")
+ }
+ global MALLOCSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataNullMember($1) && $1.iAllocHeap)
+ prop Label :: "Segment For malloc() / free()"
+ prop JSName :: "MALLOCSEG"
+ prop Visible :: 1
+ prop Writable :: (MEM.NOHEAPS == 0)
+ prop NoGen :: 0
+ prop Set :: (if (self.MALLOCSEG.iReqHeapCount > 0) {self.MALLOCSEG.iReqHeapCount--} , self.MALLOCSEG = $1, self.MALLOCSEG.iReqHeapCount++, "ok")
+ }
+ global USEMPC :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable Memory Protection Controller module"
+ prop JSName :: "USEMPC"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global LNKCMDFILE :: "" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Specify User Linker cmd File"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global TEXTSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.codeMember($1))
+ prop Label :: "Text Section (.text)"
+ prop JSName :: "TEXTSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0)
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ }
+ global LOADTEXTSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.codeMember($1))
+ prop Label :: "Load Address - Text Section (.text)"
+ prop JSName :: "LOADTEXTSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0 && self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global SWITCHSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataCodeMember($1))
+ prop Label :: "Switch Jump Tables (.switch)"
+ prop JSName :: "SWITCHSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0)
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ }
+ global LOADSWITCHSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataCodeMember($1))
+ prop Label :: "Load Address - Switch Jump Tables (.switch)"
+ prop JSName :: "LOADSWITCHSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0 && self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global BSSSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataMember($1))
+ prop Label :: "C Variables Section (.bss)"
+ prop JSName :: "BSSSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0)
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ }
+ global FARSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataMember($1))
+ prop Label :: "C Variables Section (.far)"
+ prop JSName :: "FARSEG"
+ prop Visible :: if GBL.DSPTYPE == 62 {1} else {0}
+ prop Writable :: (self.USERCMD == 0)
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ }
+ global CINITSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataCodeMember($1))
+ prop Label :: "Data Initialization Section (.cinit)"
+ prop JSName :: "CINITSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0)
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ }
+ global LOADCINITSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataCodeMember($1))
+ prop Label :: "Load Address - Data Initialization Section (.cinit)"
+ prop JSName :: "LOADCINITSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0 && self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global PINITSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataCodeMember($1))
+ prop Label :: "C Function Initialization Table (.pinit)"
+ prop JSName :: "PINITSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0)
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ }
+ global LOADPINITSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataCodeMember($1))
+ prop Label :: "Load Address - C Function Initialization Table (.pinit)"
+ prop JSName :: "LOADPINITSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0 && self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global CONSTSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataMember($1))
+ prop Label :: "Constant Sections (.const, .printf)"
+ prop JSName :: "CONSTSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0)
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ }
+ global LOADCONSTSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataMember($1))
+ prop Label :: "Load Address - Constant Sections (.const, .printf)"
+ prop JSName :: "LOADCONSTSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0 && self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global DATASEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataMember($1))
+ prop Label :: "Data Section (.data)"
+ prop JSName :: "DATASEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0)
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ }
+ global CIOSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataMember($1))
+ prop Label :: "Data Section (.cio)"
+ prop JSName :: "CIOSEG"
+ prop Visible :: 1
+ prop Writable :: (self.USERCMD == 0)
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ prop Set :: (self.CIOSEG = $1, self.SYSMEMSEG = $1, "ok")
+ }
+ global SYSMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: (self.dataMember($1))
+ prop Label :: "Data Section (.sysmem)"
+ prop JSName :: "SYSMEMSEG"
+ prop Visible :: 0
+ prop Writable :: (self.USERCMD == 0)
+ prop NoGen :: 1
+ prop TabName :: "Compiler Sections"
+ }
+ global STUBMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.codeMember($1)
+ prop Label :: "Function Stub Memory (.hwi)"
+ prop JSName :: "HWISEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Code"
+ prop Set :: (self.STUBMEMSEG = $1, HWI.STUBMEMSEG = $1, "ok")
+ }
+ global LOADSTUBMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.codeMember($1)
+ prop Label :: "Load Address - Function Stub Memory (.hwi)"
+ prop JSName :: "LOADHWISEG"
+ prop Visible :: 1
+ prop Writable :: (self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global VECMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.codeMember($1)
+ prop Label :: "Interrupt Service Table Memory (.hwi_vec)"
+ prop JSName :: "HWIVECSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Code"
+ prop Set :: (self.VECMEMSEG = $1, HWI.VECMEMSEG = $1, GlobalStatus.gDirty = 1, if ($1.base == 0) {HWI.GENERATE_RESET_VEC = 0} , "ok")
+ }
+ global LOADVECMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.codeMember($1)
+ prop Label :: "Load Address -Interrupt Service Table Memory (.hwi_vec)"
+ prop JSName :: "LOADHWIVECSEG"
+ prop Visible :: 1
+ prop Writable :: (self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global RTDXTEXTMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.codeMember($1)
+ prop Label :: "RTDX Text Segment (.rtdx_text)"
+ prop JSName :: "RTDXTEXTSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop TabName :: "BIOS Code"
+ prop Set :: (self.RTDXTEXTMEMSEG = $1, RTDX.TEXTMEMSEG = $1, "ok")
+ }
+ global LOADRTDXTEXTMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.codeMember($1)
+ prop Label :: "Load Address - RTDX Text Segment (.rtdx_text)"
+ prop JSName :: "LOADRTDXTEXTSEG"
+ prop Visible :: 1
+ prop Writable :: (self.ENABLELOADSEG == 1)
+ prop NoGen :: 1
+ prop TabName :: "Load Address"
+ }
+ global ENUMSPACE :: = if GBL.DSPTYPE == 62 {"code,data,code/data,reserved"} else {if GBL.DSPTYPE == 54 {"code,data,io,other,reserved"} else {if GBL.DSPTYPE == 28 {"code,code/data,data,io,other,reserved"} else {if GBL.DSPTYPE == 55 {"code/data,code,data,io,reserved"} else {"code/data,io,reserved"}}}} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "ENUMSPACE"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst base :: 0 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: if GBL.DSPTYPE == 62 {"0x%08x"} else {"0x%06x"}
+ prop Style :: 0x02
+ prop Label :: "base"
+ prop JSName :: "base"
+ prop Visible :: 1
+ prop Writable :: (self.iIsModifiable)
+ prop NoGen :: 1
+ prop Set :: ($e = "ok", $a = self.base, self.base = $1, if (MEM.CALLBACKOBJ != nil) {$e = MEM.CALLBACKOBJ.call(self), if ($e != "ok") {self.base = $a} } , $e)
+ }
+ inst len :: 0 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: if GBL.DSPTYPE == 62 {"0x%08x"} else {"0x%04x"}
+ prop Style :: 0x08
+ prop Label :: "len"
+ prop JSName :: "len"
+ prop Visible :: 1
+ prop Writable :: (self.memWritable)
+ prop NoGen :: 0
+ prop Set :: ($e = "ok", $a = self.len, self.len = $1, if (MEM.CALLBACKOBJ != nil) {$e = MEM.CALLBACKOBJ.call(self), if ($e != "ok") {self.len = $a} } , "ok")
+ }
+ inst page :: = (if GBL.DSPTYPE == 62 {-1} else {if (GBL.DSPTYPE == 55 || GBL.DSPTYPE == 28) {(if self.space == "code" {0} else {if self.space == "data" {1} else {if self.space == "io" {2} else {0}}})} else {if self.space == "code" {0} else {if self.space == "data" {1} else {if self.space == "io" {2} else {3}}}}}) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst iAllocHeap :: if MEM.NOHEAPS == 1 {0} else {1} {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "create a heap in this memory"
+ prop JSName :: "createHeap"
+ prop Visible :: 1
+ prop Writable :: (self.space == "data" || self.space == "code/data") && (MEM.NOHEAPS == 0) && self.memWritable
+ prop NoGen :: 0
+ prop Set :: ($a = "ok", if ($1 == 0 && self.iReqHeapCount > 0) {self.error("This heap is used by one or more of: segment for DSP/BIOS objects, segment for malloc()/free(), TSK default stack segment")} else {if ($1 == 0) {self.iUserHeapId = 0, self.iHeapId = @segment_name} , self.iAllocHeap = $1, MEM.gDirty = 1, $a})
+ }
+ inst iHeapSize :: 0x8000 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: if GBL.DSPTYPE == 62 {"0x%08x"} else {"0x%04x"}
+ prop Style :: 0x02
+ prop Label :: "heap size"
+ prop JSName :: "heapSize"
+ prop Visible :: 1
+ prop Writable :: (self.iAllocHeap) && (self.iIsModifiable) && (MEM.NOHEAPS == 0)
+ prop Set :: (self.iHeapSize = $1, "ok")
+ prop NoGen :: 1
+ }
+ inst iSegZero :: = MEM.SEGZERO
+ inst iUserHeapId :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "enter a user defined heap identifier label"
+ prop JSName :: "enableHeapLabel"
+ prop Set :: (if ($1 == 0) {self.iHeapId = @segment_name} , self.iUserHeapId = $1, "ok")
+ prop Visible :: 1
+ prop Writable :: (self.iAllocHeap) && (self.iIsModifiable) && (self.NOHEAPS == 0)
+ prop NoGen :: 1
+ }
+ inst iHeapId :: @segment_name {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "heap identifier label"
+ prop JSName :: "heapLabel"
+ prop Set :: ($e = self.checkHeapId($1), if ($e == "ok") {self.iHeapId = $1} , $e)
+ prop Writable :: (self.iAllocHeap) && (self.iIsModifiable) && (self.NOHEAPS == 0) && (self.iUserHeapId)
+ prop Visible :: 1
+ prop NoGen :: 0
+ }
+ inst iReqHeapCount :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst space :: (if GBL.DSPTYPE == 55 {"code/data"} else {"data"}) {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: MEM._spaceEnum()
+ prop JSName :: "space"
+ prop Visible :: 1
+ prop Writable :: (self.memWritable)
+ prop NoGen :: 1
+ prop Set :: ($e = "ok", if ($1 != "data" && $1 != "code/data" && self.iAllocHeap == 1) {$e = self.error("Cannot select this space if a heap will be created")} else {$a = self.space, self.space = $1, if (MEM.CALLBACKOBJ != nil) {$e = MEM.CALLBACKOBJ.call(self), if ($e != "ok") {self.space = $a} } }, $e)
+ }
+ inst dynamicLoading :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Reserved for dynamic loading"
+ prop JSName :: "dynamicLoading"
+ prop Visible :: GBL.ENABLEDLL
+ prop Writable :: GBL.ENABLEDLL
+ prop NoGen :: 1
+ }
+ inst iIsModifiable :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+object MEM_NULL :: MEM {
+ param iComment :: "Place holder segment which allows user to disable heaps"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param base :: 0
+ param len :: 0
+ param iAllocHeap :: 1
+ param iHeapSize :: 32768
+ param iUserHeapId :: 0
+ param iHeapId :: @segment_name
+ param iReqHeapCount :: 0
+ param space :: "data"
+ param dynamicLoading :: 0
+ param iIsModifiable :: 1
+}
+
+type OBJ {
+ isa ObjectMgr
+ prop name :: "OBJ"
+ prop Visible :: 0
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _objMemDesc, _memSeg, _placement"} )
+ prop _objMemDesc :: ("%8t .obj: {}")
+ prop _memSeg :: MEM.CFGOBJSEG
+ prop _placement :: (0x7fffffff / 2)
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+type BUF {
+ isa ObjectMgr
+ prop name :: "BUF"
+ prop Label :: "BUF - Buffer Manager"
+ prop IsContainedIn :: SYSTEM
+ prop GlobalIcon :: 199
+ prop InstanceIcon :: 200
+ prop InstanceHelpTopic :: (421)
+ prop GlobalHelpTopic :: (321)
+ prop InstancePropertyPage :: ("{B7240DE8-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop GlobalPropertyPage :: ("{B7240DE9-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop maxObjs :: (32767)
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _globalAllocDesc, _memSeg, _placement"} )
+ prop _globalAllocDesc :: ("%8t.buf:{}")
+ prop _placement :: (0x7fffffff / 2)
+ prop _memSeg :: self.OBJMEMSEG
+ prop AllocInst :: ("1\0, _instAllocDesc, _instMemSeg, _placement")
+ prop _instAllocDesc :: ("%8t .%0s$data: align = 0x%1x {%12t\n %0s$databeg = .;\n .+= %2d; %8t\n }\0, _objAlign, _buflength")
+ prop _objAlign :: self.align
+ prop _instMemSeg :: self.bufseg
+ prop _buflength :: (self.postalignsize * self.bufcount)
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"buf.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far BUF_Obj %0r;\n\0"} else {"extern BUF_Obj %0r;\n\0"})
+ prop objectSize :: (if (GBL.DSPTYPE == 62) {$a = ((7 + 3) * 4)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 1) {$a = ((7 + 4) * 4)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 0) {$a = ((7 + 3) * 4)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") {$a = (12 + 6)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE") {$a = (12 + 6)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL") {$a = (7 + 4)} , if (GBL.DSPTYPE == 28) {$a = (12 + 6)} , $a)
+ prop dataSize :: ($d = 0, scan ($i; BUF) {if ($i.IsConfObj()) {$d += $i.len} , $d += BUF.objectSize}, $d)
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global ENABLED :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Compile in logging"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst bufseg :: self.OBJMEMSEG {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Memory segment for buffer pool"
+ prop JSName :: "bufSeg"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst bufcount :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Buffer count"
+ prop JSName :: "bufCount"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (self.bufcount = $1, self.postalignsize = (self.size + (self.align - 1)) & ~(self.align - 1), self.len = $1 * self.postalignsize, "ok")
+ }
+ inst size :: 8 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Buffer size (MADUs)"
+ prop JSName :: "size"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (if ($1 < 8) {self.error("Size should be atleast 8 bytes")} else {self.size = $1, self.postalignsize = ($1 + (self.align - 1)) & ~(self.align - 1), self.len = self.postalignsize * self.bufcount, "ok"})
+ }
+ inst align :: 4 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Buffer alignment(Power of 2)"
+ prop JSName :: "align"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (if ($1 < 4) {self.error("Alignment should be atleast 4 ")} else {self.align = $1, self.postalignsize = (self.size + ($1 - 1)) & ~($1 - 1), self.len = self.postalignsize * self.bufcount, "ok"})
+ }
+ inst len :: self.size {
+ prop Label :: "Buffer pool length (MADUs)"
+ prop JSName :: "len"
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst postalignsize :: self.size {
+ prop Label :: "Buffer size after alignment (MADUs)"
+ prop JSName :: "postalignsize"
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+}
+
+type POOL {
+ isa Module
+ prop Visible :: 1
+ prop name :: "POOL"
+ prop Label :: "POOL - Allocator Manager"
+ prop IsConfMod :: self.USEPOOL
+ prop IsContainedIn :: SYSTEM
+ prop GlobalIcon :: 199
+ prop InstanceIcon :: 200
+ prop GlobalHelpTopic :: (324)
+ prop InstanceHelpTopic :: (424)
+ prop InstancePropertyPage :: ("{473C4A62-B1A8-11d0-9885-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{473C4A63-B1A8-11d0-9885-0020AFEE33C6}")
+ prop DependsOn :: "MEM,BUF"
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global USEPOOL :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable Allocator Manager"
+ prop JSName :: "ENABLEPOOL"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+}
+
+type CLK {
+ isa ObjectMgr
+ prop name :: "CLK"
+ prop Label :: "CLK - Clock Manager"
+ prop IsContainedIn :: SCH
+ prop IsConfMod :: 1
+ prop GlobalIcon :: 103
+ prop InstanceIcon :: 104
+ prop InstanceHelpTopic :: (202)
+ prop GlobalHelpTopic :: (102)
+ prop InstancePropertyPage :: ("{EEB2AB41-51E3-11d0-A61D-0000C070F3E9}")
+ prop GlobalPropertyPage :: ("{EEB2AB40-51E3-11d0-A61D-0000C070F3E9}")
+ prop objectSize :: ($a = (1 * 4), $a)
+ prop GenLinkPrologue :: ("SECTIONS {%4t\n.%1L: {\n%8t \n CLK_F_gethtime = %5s;\n %4S \n%4t} > %3s, RUN_START(%1U_A_TABBEG) \0, name, _objSize, _memSeg, _linkString, clkFxn, _clkStartFxn")
+ prop _clkStartFxn :: if (GBL.SUPPORTCSL && self.USETIMER) {@_CLK_start6x} else {@FXN_F_nop}
+ prop GenLinkEpilogue :: ("%0t}\n_CLK_PRD = CLK_PRD;\n_CLK_COUNTSPMS = CLK_COUNTSPMS;\n_CLK_REGS = CLK_REGS;\n_CLK_USETIMER = CLK_USETIMER;\n_CLK_TIMERNUM = CLK_TIMERNUM;\n_CLK_TDDR = CLK_TDDR;\n\0")
+ prop _linkString :: if self.gNumOf > 0 {"*(.%1L)"} else {"/* no CLK objs */"}
+ prop _memSeg :: CLK.OBJMEMSEG
+ prop _objSize :: self.objectSize()
+ prop clkFxn :: if (self.USETIMER == 1) {self.CLKFXN} else {@FXN_F_zero}
+ prop maxObjs :: (32767)
+ prop SortByField :: "iPri"
+ prop SortGroups :: 1
+ prop localInit :: (if (GBL.CALLBACKOBJ != CLK) {CLK.gGBLChain = GBL.CALLBACKOBJ, GBL.CALLBACKOBJ = CLK} )
+ prop dataSize :: (self.objectSize() * (CLK.gNumOf + 1))
+ prop localCanCreate :: (if self.USETIMER {"ok"} else {self.error("The CLK Manager must be enabled before inserting a CLK")})
+ prop localCreate :: (CLK.HOOKFXN = @HWI_F_dispatch, self.seizeHwi(self.WHICHHWI), "ok")
+ prop localDelete :: (if (self.gNumOf == 1) {if (GBL.CALLMODEL == "far") {CLK.HOOKFXN = @CLK_F_frete, self.seizeHwi(self.WHICHHWI)} else {CLK.HOOKFXN = @CLK_F_rete, self.seizeHwi(self.WHICHHWI)}} , "ok")
+ prop adjustPrd :: (if GBL.DSPTYPE == 62 {0} else {1})
+ prop seizeHwi :: (if ($1.client == "USER" && $1 == HWI_UNUSED) {self.error("Interrupt not mapped for selected timer.")} else {if ($1.client == "USER" && $1.function != @HWI_unused) {self.error("Interrupt mapped to selected timer is already in use.")} else {if ($1.client == "CSL") {self.error("Interrupt mapped to selected timer is already in use by CSL.")} else {$1.function = @CLK_F_isr, $1.client = "CLK", $1.iEventId = $1.iSource.iIntrSelectNum, $1.iUseDispatcher = (if CLK.HOOKFXN == @HWI_F_dispatch {1} else {0}), $1.iArg = (if $1.iUseDispatcher == 1 {@CLK_A_TABBEG} else {0}), HWI.gDirty = 1, "ok"}}})
+ prop releaseHwi :: ($1.function = @HWI_unused, $1.client = "USER", $1.iUseDispatcher = 0, $1.iArg = 0, HWI.gDirty = 1, "ok")
+ prop seizeTimer :: (if ($1 == "Timer 0") {self.WHICHTIMER = "Timer 0", self.WHICHHWI = Timer_0.iHwi, self.REGS = 0x01000, self.TIMERNUM = 0, self.TIMERIMR = 0x0, self.TIMERIFR = 0x1, self.INTBIT = 4, self.TIMERIMRMASK = self.WHICHHWI.Ier0Mask, self.IMR0TINTMASK = self.WHICHHWI.Ier0Mask, self.IMR1TINTMASK = 0x0, self.setMicroseconds(self.MICROSECONDS)} else {if ($1 == "Timer 1") {self.WHICHTIMER = "Timer 1", self.WHICHHWI = Timer_1.iHwi, self.REGS = 0x2400, self.TIMERNUM = 1, self.TIMERIMR = 0x45, self.TIMERIFR = 0x46, self.INTBIT = 6, self.TIMERIMRMASK = self.WHICHHWI.Ier1Mask, self.IMR0TINTMASK = 0x0, self.IMR1TINTMASK = self.WHICHHWI.Ier1Mask, self.setMicroseconds(self.MICROSECONDS)} else {if ($1 == "Timer 2") {self.WHICHTIMER = "Timer 2", self.WHICHHWI = Timer_2.iHwi, self.REGS = 0x4000, self.TIMERNUM = 2, self.TIMERIMR = 0x0, self.TIMERIFR = 0x1, self.INTBIT = 11, self.TIMERIMRMASK = self.WHICHHWI.Ier0Mask, self.IMR0TINTMASK = self.WHICHHWI.Ier0Mask, self.IMR1TINTMASK = 0x0, self.setMicroseconds(self.MICROSECONDS)} }}, "ok")
+ prop setMicroseconds :: ($a = if FIXTDDR == 1 {self.TDDR} else {0}, $b = 0xffffffff, $c = (float($a) + 1.0) * ((float($b) + self.adjustPrd) / (GBL.MIPS / 4)), if ($1 < $c && $1 > 0.1) {if (self.FIXTDDR == 0) {self.TDDR = int((1.0 * $1 * GBL.MIPS / 4) / (float($b) + self.adjustPrd))} , self.PRD = int((1.0 * $1 * GBL.MIPS) / (4 * (self.TDDR + 1.0))) - self.adjustPrd, self.MICROSECONDS = ((float((self.PRD)) + CLK.adjustPrd) * ((self.TDDR) + 1.0) * 4 / GBL.MIPS), if (self.CALLBACKOBJ != nil) {self.CALLBACKOBJ.call()} , "ok"} else {self.error("The on-chip timer does not have enough range to support this combination of DSP MIPS and Microseconds/Int")})
+ prop call :: ($a = ((float((CLK.PRD)) + CLK.adjustPrd) * ((CLK.TDDR) + 1.0) * 4 / GBL.MIPS), $b = CLK.MICROSECONDS, $e = "ok", if (($e = self.setMicroseconds(CLK.MICROSECONDS)) == "ok") {if (CLK.gGBLChain != nil) {$e = CLK.gGBLChain.call()} , if ($e != "ok") {self.setMicroseconds($b), self.error($e)} else {"ok"}} else {$e})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gGBLChain :: nil {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: self.USETIMER
+ prop NoGen :: 1
+ }
+ global WHICHHWI :: HWI_INT14 {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: HWI
+ prop Label :: "CPU Interrupt"
+ prop Visible :: 1
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global INTBIT :: = self.WHICHHWI.iIntrEnableMask
+ global WHICHTIMER :: "Timer 0" {
+ prop Label :: "Timer Selection"
+ prop JSName :: "TIMERSELECT"
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "Timer 0,Timer 1"
+ prop Visible :: 1
+ prop Writable :: self.USETIMER
+ prop NoGen :: 1
+ prop Set :: (if (self.WHICHTIMER != $1) {if (self.USETIMER == 0) {$e = "ok"} else {if ($1 == "Timer 0") {$a = Timer_0.iHwi} else {if ($1 == "Timer 1") {$a = Timer_1.iHwi} else {$a = Timer_2.iHwi}}, $e = self.seizeHwi($a)}, if ($e == "ok") {self.releaseHwi(self.WHICHHWI), if ($1 == "Timer 0") {self.TIMERNUM = 0, self.WHICHHWI = Timer_0.iHwi} else {if ($1 == "Timer 1") {self.TIMERNUM = 1, self.WHICHHWI = Timer_1.iHwi} else {self.TIMERNUM = 2, self.WHICHHWI = Timer_2.iHwi}}, self.WHICHTIMER = $1, self.HOOKFXN = if self.gNumOf > 0 {@HWI_F_dispatch} else {(if GBL.CALLMODEL == "far" {@CLK_F_frete} else {@CLK_F_rete})}, self.seizeHwi(self.WHICHHWI)} , $e} )
+ }
+ global REGS :: = if self.WHICHTIMER == "Timer 0" {self.TIMER0BASE} else {if self.WHICHTIMER == "Timer 1" {self.TIMER1BASE} else {self.TIMER2BASE}} {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Visible :: 0
+ prop Writable :: 1
+ }
+ global TIMER0BASE :: 26476544 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Writable :: 1
+ prop Visible :: 0
+ prop JSName :: "TIMER0BASE"
+ prop NoGen :: 1
+ }
+ global TIMER1BASE :: 26738688 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Writable :: 1
+ prop Visible :: 0
+ prop JSName :: "TIMER1BASE"
+ prop NoGen :: 1
+ }
+ global TIMER2BASE :: 28049408 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Writable :: 1
+ prop Visible :: 0
+ prop JSName :: "TIMER2BASE"
+ prop NoGen :: 1
+ }
+ global TIMERNUM :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop NoGen :: 0
+ }
+ global USETIMER :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable CLK Manager"
+ prop JSName :: "ENABLECLK"
+ prop Visible :: 1
+ prop Writable :: if self.gNumOf > 0 {0} else {1}
+ prop NoGen :: 0
+ prop Set :: (if ($1 == 1 && self.USETIMER == 0) {if (($e = self.seizeHwi(self.WHICHHWI)) == "ok") {self.USETIMER = 1, self.TIMEFXN = if CLK.HIRES {CLK.clkFxn()} else {@CLK_F_getltime}, self.HOOKFXN = if GBL.CALLMODEL == "far" {@CLK_F_frete} else {@CLK_F_rete}, self.seizeHwi(self.WHICHHWI), GlobalStatus.gDirty = 1, if (GlobalStatus.MinStackSize >= MEM.STACKSIZE) {self.releaseHwi(self.WHICHHWI), self.TIMEFXN = @FXN_F_zero, self.HOOKFXN = @FXN_F_nop, self.USETIMER = 0, GlobalStatus.gDirty = 1, self.error("Current stack size inadequate to enable CLK")} else {if (GBL.ENABLEINST == 1) {IDL_busyObj.Create("IDL"), IDL.USEIDLBUSYOBJ = 1, IDL_cpuLoad.Create("IDL"), IDL.AUTOCALCULATE = GBL.OLDAUTOCALCULATE} , $e}} else {$e}} else {if ($1 == 0 && self.USETIMER == 1) {self.releaseHwi(self.WHICHHWI), self.TIMEFXN = @FXN_F_zero, self.HOOKFXN = @FXN_F_nop, self.USETIMER = 0, if (GBL.ENABLEINST == 1) {IDL_busyObj.Delete("IDL"), IDL.USEIDLBUSYOBJ = 0, IDL_cpuLoad.Delete("IDL"), GBL.OLDAUTOCALCULATE = IDL.AUTOCALCULATE, IDL.AUTOCALCULATE = 0} , "ok"} else {"ok"}})
+ }
+ global HIRES :: = 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Use high resolution time for internal timings"
+ prop JSName :: "HIRESTIME"
+ prop Visible :: 1
+ prop Writable :: self.USETIMER
+ prop NoGen :: 1
+ prop Set :: (if (CLK.USETIMER) {CLK.HIRES = $1, if (CLK.USETIMER) {CLK.TIMEFXN = if CLK.HIRES {CLK.clkFxn()} else {@CLK_F_getltime}} , "ok"} else {self.error("CLK Manager must be enabled in order to get high resolution timings.")})
+ }
+ global INSTRPERCLK :: 4 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global MICROSECONDS :: 1000.000000 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: 0x04
+ prop Format :: "%.4f"
+ prop Label :: "Microseconds/Int"
+ prop JSName :: "MICROSECONDS"
+ prop Set :: (self.setMicroseconds($1))
+ prop Visible :: 1
+ prop Writable :: if ((CLK.PROGTIMREGS != 0) | (self.USETIMER == 0)) {0} else {1}
+ prop NoGen :: 1
+ }
+ global MICROSECS :: = int(round(self.MICROSECONDS)) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global PROGTIMREGS :: = 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Directly configure on-chip timer registers"
+ prop JSName :: "CONFIGURETIMER"
+ prop Visible :: 1
+ prop Writable :: self.USETIMER
+ prop NoGen :: 1
+ }
+ global TCR :: = 0x20 | CLK.TDDR {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01 | 0x02
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global FIXTDDR :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Fix TDDR"
+ prop JSName :: "FIXTDDR"
+ prop Visible :: (GBL.DSPTYPE != 62)
+ prop Writable :: CLK.PROGTIMREGS && (GBL.DSPTYPE != 62)
+ prop NoGen :: 1
+ }
+ global TDDR :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Label :: "TDDR Register"
+ prop JSName :: "TCRTDDR"
+ prop Set :: (if ((GBL.DSPTYPE != 62) && ($1 > 0)) {self.error("The on-chip timer does not have enough range to support this value, maximum is 15.")} else {CLK.TDDR = $1, CLK.MICROSECONDS = ((float((CLK.PRD)) + CLK.adjustPrd) * ((CLK.TDDR) + 1.0) * 4 / GBL.MIPS), if (CLK.CALLBACKOBJ != nil) {CLK.CALLBACKOBJ.call()} , "ok"})
+ prop Visible :: GBL.DSPTYPE != 62
+ prop Writable :: CLK.PROGTIMREGS && GBL.DSPTYPE != 62
+ prop NoGen :: 0
+ }
+ global TDDRHIGH :: = ((self.TDDR & 0xffff0000) >> 16) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ }
+ global PRD :: 56250 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Label :: if (GBL.CLKTYPE == 700) {"Compare0 Register"} else {"PRD Register"}
+ prop JSName :: "PRD"
+ prop Set :: (CLK.PRD = $1, CLK.MICROSECONDS = ((float((CLK.PRD)) + CLK.adjustPrd) * ((CLK.TDDR) + 1.0) * 4 / GBL.MIPS), if (CLK.CALLBACKOBJ != nil) {CLK.CALLBACKOBJ.call()} , "ok")
+ prop Visible :: 1
+ prop Writable :: if ((self.PROGTIMREGS) && (self.USETIMER)) {1} else {0}
+ prop NoGen :: 0
+ }
+ global PRDHIGH :: = ((self.PRD & 0xffff0000) >> 16) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ }
+ global COUNTSPMS :: = int(round(GBL.MIPS * 1000.0 / (CLK.TDDR + 1) / 4)) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ }
+ global COUNTSPMSHIGH :: = ((self.COUNTSPMS & 0xffff0000) >> 16) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ }
+ global INSTRUCTIONS :: = (1.0 * (float(CLK.PRD) + CLK.adjustPrd) * (CLK.TDDR + 1.0) * 4) {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: 0x04
+ prop Format :: "%.0f"
+ prop Label :: "Instructions/Int"
+ prop Visible :: 1
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global TIMEFXN :: = CLK.clkFxn() {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global HOOKFXN :: @HWI_F_dispatch {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global CLKFXN :: = if (CLK.PRD == 0xffffffff) {@CLK_F_getfhtime} else {@CLK_F_getshtime} {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CALLBACKOBJ :: PRD {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CALDIV :: = 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global CALMULT :: = 4 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global HTIMEDIV :: = 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global HTIMEMULT :: = if GBL.DSPSUBTYPE == 6499 {1} else {((self.TDDR + 1) * 4)} {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global LTIMEDIV :: = 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global LTIMEMULT :: = ((self.TDDR + 1) * (self.PRD + self.adjustPrd) * (4)) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global HTIMEPERLTIME :: = if GBL.DSPSUBTYPE == 6499 {int(round(GBL.MIPS * self.MICROSECONDS))} else {(self.PRD + CLK.adjustPrd)} {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x20
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst function :: @FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "function"
+ prop JSName :: "fxn"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ }
+ inst Order :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "order"
+ prop NoGen :: 1
+ prop Writable :: 1
+ }
+ inst iPri :: 0 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop NoGen :: 1
+ }
+}
+
+type PRD {
+ isa ObjectMgr
+ prop name :: "PRD"
+ prop Label :: "PRD - Periodic Function Manager"
+ prop IsContainedIn :: SCH
+ prop IsConfMod :: 1
+ prop GlobalIcon :: 119
+ prop InstanceIcon :: 120
+ prop InstanceHelpTopic :: (210)
+ prop GlobalHelpTopic :: (110)
+ prop InstancePropertyPage :: ("{B7240DE0-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop GlobalPropertyPage :: ("{B7240DE1-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop STSGetMaxFmt :: ("%g ticks")
+ prop STSGetSumFmt :: (PRD.STSGetMaxFmt())
+ prop STSGetAvgFmt :: ("%.2f ticks")
+ prop GetPeriod :: self.period
+ prop IsOneShot :: if self.mode == "one-shot" {1} else {0}
+ prop objectSize :: (if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL") {$a = (10 * 4)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 0) {$a = (9 * 4)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 1) {$a = (12 * 4)} , if (GBL.DSPTYPE == 28 || (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") || (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE")) {$a = (12 * 4)} , if (GBL.DSPTYPE == 62) {$a = (8 * 4)} , $a)
+ prop GenLinkPrologue :: ("SECTIONS {%4t\n.prd: RUN_START(PRD_A_TABBEG), RUN_END(PRD_A_TABEND) {%4t\n} > %1s%2s\0, memSeg, pageString")
+ prop GenLinkEpilogue :: ("%0t}\nPRD_A_TABLEN = %1d;\n\0, numInst")
+ prop linkString :: if self.gNumOf > 0 {"*(.%1L)"} else {"/* no %1U objects */"}
+ prop pageString :: if GBL.DSPTYPE == 62 {""} else {if (GBL.DSPTYPE == 55 || GBL.DSPTYPE == 28) {(if PRD.OBJMEMSEG.space() == "code" {" PAGE 0"} else {if PRD.OBJMEMSEG.space() == "data" {" PAGE 1"} else {if PRD.OBJMEMSEG.space() == "io" {" PAGE 2"} else {" PAGE 0"}}})} else {" PAGE 1"}}
+ prop memSeg :: PRD.OBJMEMSEG
+ prop objSize :: if GBL.DSPTYPE == 55 {self.objectSize() * 2} else {self.objectSize()}
+ prop numInst :: (PRD.gNumOf)
+ prop dataSize :: (self.objectSize() * PRD.gNumOf)
+ prop localInit :: (if (CLK.CALLBACKOBJ != nil) {self.error("PRD initialization failure")} , CLK.CALLBACKOBJ = PRD, if (PRD.USECLK && PRD_clock.iIsUsed == 0) {PRD_clock.Create("PRD")} , if (PRD_clock.iIsUsed == 1) {if (self.gNumOf == 0) {if (TSK.USETSK == 1 && TSK.TSKTICK == "PRD") {PRD_clock.function = @PRD_F_tick} else {PRD_clock.function = @FXN_F_nop}} else {PRD_clock.function = @PRD_F_tick}} )
+ prop localCanCreate :: (if (GlobalStatus.MinStackSize >= MEM.STACKSIZE) {self.error(" System Stack Size too small")} else {self.myCreate("can")})
+ prop localCreate :: (STS.gNumEmbed += 1, if (($a = self.myCreate("do")) == "ok") {if (PRD_clock.iIsUsed == 1) {if (self.gNumOf == 0) {PRD_clock.function = @PRD_F_tick} } } , $a)
+ prop localCanDelete :: (self.myDelete("can"))
+ prop localDelete :: (STS.gNumEmbed -= 1, if (($a = self.myDelete("do")) == "ok") {if (self.gNumOf == 1) {if (PRD_clock.iIsUsed == 1) {if (TSK.USETSK == 1 && TSK.TSKTICK == "PRD") {PRD_clock.function = @PRD_F_tick} else {PRD_clock.function = @FXN_F_nop}} } } , $a)
+ prop maxObjs :: (32767)
+ prop myCreate :: (if (PRD_swi.function != @PRD_F_swi) {PRD_swi.function = @PRD_F_swi} , if (PRD_swi.iIsUsed) {"ok"} else {if (SWI.CanCreate() == "ok") {if ($1 == "do") {if (KNL_swi.iIsUsed == 1 && PRD_swi.pri == 0) {PRD_swi.pri = 1} , PRD_swi.Create("PRD")} else {"ok"}} else {self.error("Can't create an SWI for PRD (try deleting a SWI)")}})
+ prop myDelete :: (if (PRD_swi.function != @PRD_F_swi) {PRD_swi.function = @PRD_F_swi} , if (self.gNumOf == 1) {if ($1 == "do") {PRD_swi.Delete("PRD")} else {"ok"}} else {"ok"})
+ prop call :: (if (CLK.USETIMER != 0) {PRD.MICROSECONDS = CLK.MICROSECONDS} , PRD.CALLBACKOBJ.call())
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"prd.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far PRD_Obj %0r;\n\0"} else {"extern PRD_Obj %0r;\n\0"})
+ prop SortByField :: "iPri"
+ prop SortGroups :: 1
+ prop DEFAULT_THOOKFXN :: @_KNL_tick
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global USECLK :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Use CLK Manager to drive PRD"
+ prop JSName :: "USECLK"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop Set :: (if ($1 == 1 && self.USECLK == 0) {if (CLK.USETIMER == 0) {self.error("In order to drive periodic functions, the CLK Manager must be enabled")} else {self.USECLK = 1, self.MICROSECONDS = CLK.MICROSECONDS, CLK.CALLBACKOBJ = PRD, PRD_clock.Create("PRD"), GlobalStatus.gDirty = 1, if (GlobalStatus.MinStackSize >= MEM.STACKSIZE) {self.USECLK = 0, self.MICROSECONDS = 0.0, CLK.CALLBACKOBJ = nil, PRD_clock.Delete("PRD"), self.error("Current Stack size inadequate to enable this option")} else {"ok"}}} else {if ($1 == 0 && self.USECLK == 1) {self.USECLK = 0, self.MICROSECONDS = 0.0, CLK.CALLBACKOBJ = nil, PRD_clock.Delete("PRD")} , "ok"})
+ prop NoGen :: 1
+ }
+ global MICROSECONDS :: 1000.000000 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: 0x04
+ prop Format :: "%.1f"
+ prop Label :: "Microseconds/Tick"
+ prop JSName :: "MICROSECONDS"
+ prop Visible :: 1
+ prop Writable :: self.USECLK == 0
+ prop NoGen :: 1
+ }
+ global SCALAR :: = ($d = 2, $f = 0, while ($d <= 0x4000 && $f == 0) {scan ($i; PRD) {if ((($i.period / $d) * $d != $i.period)) || ($i.mode == "one-shot") {$f = 1} }, if ($f == 0) {$d = 2 * $d} }, $d / 2) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global THOOKFXN :: @_KNL_tick {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "System Tick Hook Function"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global CALLBACKOBJ :: STS {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst period :: 0x7fff {
+ prop Label :: "period (ticks)"
+ prop JSName :: "period"
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01 | 0x02
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (if (($1 > 0) && ($1 < 0x8000)) {self.period = $1, self.gDirty = 1, "ok"} else {self.error("Periodic function periods must be greater than 0 and less than 0x8000")})
+ }
+ inst mode :: "continuous" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "continuous,one-shot"
+ prop JSName :: "mode"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst function :: @FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "fxn"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst arg0 :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "arg0"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst arg1 :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "arg1"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst milliseconds :: = ((self.period * PRD.MICROSECONDS) / 1000.0) {
+ prop Label :: "period (ms)"
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: 0x04
+ prop Format :: "%.1f"
+ prop Visible :: 1
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst Order :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "order"
+ prop NoGen :: 0
+ prop Writable :: 1
+ }
+ inst iPri :: 0 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop NoGen :: 1
+ }
+ inst filter :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "filter"
+ prop NoGen :: 0
+ }
+ inst maxformat :: "%g ticks" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "maxformat"
+ prop NoGen :: 0
+ }
+ inst sumformat :: "%g ticks" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "sumformat"
+ prop NoGen :: 0
+ }
+ inst avgformat :: "%.2f ticks" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "avgformat"
+ prop NoGen :: 0
+ }
+ inst unittype :: 2 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "unittype"
+ prop NoGen :: 0
+ }
+}
+
+object PRD_swi :: SWI {
+ param iComment :: "This Software ISR executes all configured PRD functions"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "PRD"
+ param iDelMsg :: "This object is automatically deleted when all PRD objects are deleted"
+ param function :: @PRD_F_swi
+ param pri :: 1
+ param mailbox :: 0
+ param arg0 :: 0
+ param arg1 :: 0
+ param dorta :: 1
+ param Order :: 0
+ param filter :: 2
+ param maxformat :: "%g inst"
+ param sumformat :: "%g inst"
+ param avgformat :: "%.2f inst"
+ param filtmaxmult :: 1
+ param filtsummult :: 1
+ param unittype :: 0
+}
+
+object PRD_clock :: CLK {
+ param iComment :: "This clock function calls PRD_tick from within the on-chip timer ISR"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "PRD"
+ param iDelMsg :: "This object is automatically deleted by disabling the 'Use CLK Manager to drive PRD' option of PRD"
+ param function :: @PRD_F_tick
+ param Order :: 0
+ param iPri :: 0
+}
+
+type RTDX {
+ isa ObjectMgr
+ prop Label :: "RTDX - Real-Time Data Exchange Settings"
+ prop name :: "RTDX"
+ prop IsConfMod :: self.USERTDX
+ prop IsContainedIn :: IOF
+ prop GlobalIcon :: 145
+ prop InstanceIcon :: 146
+ prop GlobalHelpTopic :: (113)
+ prop InstanceHelpTopic :: (213)
+ prop InstancePropertyPage :: ("{f80273c0-3838-11d2-a32c-006097656921}")
+ prop GlobalPropertyPage :: ("{050a0600-3839-11d2-a32c-006097656921}")
+ prop AllocType :: (if self.USERTDX {"2\0, _rtdxDataAllocDesc, _rtdxDataSeg, _placement,
+ _rtdxTextAllocDesc, _rtdxTextSeg, _placement"} else {""})
+ prop _rtdxDataAllocDesc :: (" .%1L_data: {} \0, name")
+ prop _rtdxTextAllocDesc :: (if (MEM.ENABLELOADSEG == 1) {if (MEM.RTDXTEXTMEMSEG == MEM.LOADRTDXTEXTMEMSEG) {" .%1L_text: {} \0, name"} else {" .%1L_text: {} load > %2s, run \0, name, _loadRtdxTextMemSeg"}} else {" .%1L_text: {} \0, name"})
+ prop _rtdxDataSeg :: RTDX.DATAMEMSEG
+ prop _rtdxTextSeg :: MEM.RTDXTEXTMEMSEG
+ prop _loadRtdxTextMemSeg :: MEM.LOADRTDXTEXTMEMSEG
+ prop _placement :: (0x7fffffff / 2)
+ prop _objSize :: RTDX.BUFMEMSIZE
+ prop GenLinkPrologue :: (if self.USERTDX {"_RTDX_interrupt_mask = 0x%1x;\n\0, _interruptMask"} else {""})
+ prop _interruptMask :: RTDX.MASK
+ prop cGen :: 1
+ prop noObjectAlias :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"rtdx.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {if (self.iChannelMode == "output") {"extern far RTDX_outputChannel %0r;\n\0"} else {"extern far RTDX_inputChannel %0r;\n\0"}} else {if (self.iChannelMode == "output") {"extern RTDX_outputChannel %0r;\n\0"} else {"extern RTDX_inputChannel %0r;\n\0"}})
+ prop cGenCInst :: (if (self.iChannelMode == "output") {"RTDX_CreateOutputChannel(%0r);\n\0"} else {"RTDX_CreateInputChannel(%0r);\n\0"})
+ prop dataSize :: ($d = 0, if (self.USERTDX) {$d = RTDX.BUFMEMSIZE} else {$d = 0}, scan ($a; RTDX) {if ($a.iChannelMode == "output") {$d += 1} else {$d += 3}}, $d)
+ prop localCanCreate :: ($e = "ok", if (RTDX.USERTDX != 1) {$e = self.error("RTDX manager not enabled")} , $e)
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global USERTDX :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable Real-Time Data Exchange (RTDX)"
+ prop JSName :: "ENABLERTDX"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (if ($1 == 0) {if (HST.LNKTYPE == "RTDX") {self.error("RTDX is being used by HST; select a different host link type before attempting to disable RTDX")} else {if (self.gNumOf > 0) {self.error("Cannot disable RTDX until all RTDX objects are deleted.")} else {GlobalStatus.gDirty = 1, self.USERTDX = $1, if (RTDX.CALLBACKOBJ != nil) {RTDX.CALLBACKOBJ.call()} , "ok"}}} else {GlobalStatus.gDirty = 1, self.USERTDX = $1, if (RTDX.CALLBACKOBJ != nil) {RTDX.CALLBACKOBJ.call()} , "ok"})
+ }
+ global USERTEXECUTION :: = 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable Real-Time Execution Control"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global RTDXTYPE :: "JTAG" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "JTAG,HSRTDX,Simulator"
+ prop Label :: "RTDX Mode"
+ prop JSName :: "MODE"
+ prop Visible :: 1
+ prop Writable :: self.USERTDX
+ prop NoGen :: 0
+ prop Set :: (self.RTDXTYPE = $1, if (RTDX.CALLBACKOBJ != nil) {RTDX.CALLBACKOBJ.call()} , "ok")
+ }
+ global DATAMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "RTDX Data Segment (.rtdx_data)"
+ prop JSName :: "RTDXDATASEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global BUFMEMSIZE :: = (256 + 2) * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Label :: "RTDX Buffer Size (MAUs)"
+ prop JSName :: "BUFSIZE"
+ prop Visible :: 1
+ prop Writable :: self.USERTDX
+ prop NoGen :: 0
+ prop Set :: (if (HST.RTDX == 0) {self.BUFMEMSIZE = $1, GlobalStatus.gDirty = 1, "ok"} else {if ($1 < (HST.MAXFRAMESET + 3) * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE)) {self.error("size (in MAUs) must be at least: (largest configured HST channel framesize in words + 3) * (MAUs per word)")} else {self.BUFMEMSIZE = $1, GlobalStatus.gDirty = 1, if (HST.LNKTYPE == "RTDX") {HST.MAXFRAMEALLOWED = (self.BUFMEMSIZE / (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE)) - 3, "ok"} else {"ok"}}})
+ }
+ global TEXTMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.codeMember($1)
+ prop Label :: "RTDX Text Segment (.rtdx_text)"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global MASK :: 0 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: "0x%08x"
+ prop Style :: 0x02
+ prop Label :: "RTDX Interrupt Mask"
+ prop JSName :: "INTERRUPTMASK"
+ prop Visible :: 1
+ prop Writable :: self.USERTDX
+ prop NoGen :: 1
+ prop Set :: (self.MASK = $1, "ok")
+ }
+ global CALLBACKOBJ :: HWI {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iChannelMode :: "output" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Channel Mode"
+ prop JSName :: "channelMode"
+ prop Enum :: "input,output"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (GlobalStatus.gDirty = 1, self.iChannelMode = $1, "ok")
+ }
+}
+
+type HST {
+ isa ObjectMgr
+ prop name :: "HST"
+ prop Label :: "HST - Host Channel Manager"
+ prop IsContainedIn :: IOF
+ prop DependsOn :: "HWI"
+ prop FileStream :: 1
+ prop GlobalIcon :: 107
+ prop InstanceIcon :: 108
+ prop GlobalHelpTopic :: (104)
+ prop InstanceHelpTopic :: (204)
+ prop maxObjs :: (GBL.DSPWORDSIZE)
+ prop dataSize :: ($b = 0, scan ($i; HST) {if ($i.IsConfObj()) {$b += (12 + $i.framesize) * $i.numframes + PIP.OBJSIZE + self.objectSize()} }, $b)
+ prop InstancePropertyPage :: ("{B7240DEA-AA51-11cf-9BFE-0000C0AC14C8}")
+ prop GlobalPropertyPage :: ("{B7240DEB-AA51-11cf-9BFE-0000C0AC14C8}")
+ prop localCreate :: (PIP.gNumEmbed += 1, if (self.gNumOf == 0) {(LNK_dataPump.Create("HST"))} , "ok")
+ prop localDelete :: (PIP.gNumEmbed -= 1, $b = 0, scan ($i; HST) {if ($i != self) {if ($i.IsConfObj()) {if ($i.framesize > $b) {$b = $i.framesize} } } }, self.MAXFRAMESET = $b, if (self.gNumOf == 1) {(LNK_dataPump.Delete("HST"))} , "ok")
+ prop GenLinkPrologue :: (if (self.LNKTYPE == "RTDX") {"_LNK_dspFrameReadyMask = LNK_dspFrameReadyMask; \n_LNK_dspFrameRequestMask = LNK_dspFrameRequestMask; \n_LNK_readDone = LNK_readDone; \n_LNK_readFail = LNK_readFail; \n_LNK_readPend = LNK_readPend; \n_LNK_writeFail = LNK_writeFail;"} )
+ prop AllocType :: ("2\0, _globalAllocDesc, _memSeg, _placement, _dsmAllocDesc, _dsmMemSeg, _placement")
+ prop _globalAllocDesc :: ("%8t .%1L: RUN_START(%1U_A_TABBEG), RUN_START(_%1U_A_TABBEG), RUN_END(%1U_A_TABEND), RUN_END(_%1U_A_TABEND) {%8t\n }\0, name")
+ prop objectSize :: (if (GBL.DSPTYPE == 28) {$a = (14 * 4)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") {$a = (12 * 4)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE") {$a = (12 * 4)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL") {$a = (10 * 4)} , if (GBL.DSPTYPE == 54 || GBL.DSPTYPE == 62) {$a = (7 * 4)} , $a)
+ prop _dsmAllocDesc :: ("%8t .dsm: {}")
+ prop _placement :: (0x7fffffff / 2)
+ prop AllocInst :: ("1\0, _instAllocDesc, _objMemSeg, _placement")
+ prop _instAllocDesc :: ("/* %0s buffer */\n.hst%2d: %3S\0, name, _objId, _alignString, _objAlign")
+ prop _alignString :: if self.bufalign > 1 {"align = 0x%4x {}"} else {""}
+ prop _objId :: self.iId
+ prop _objAlign :: self.bufalign
+ prop _objMemSeg :: self.bufseg
+ prop _linkString :: if (self.gNumOf + self.gNumEmbed) > 0 {"*(.%1L)"} else {"/* no %1U objects */"}
+ prop _memSeg :: HST.OBJMEMSEG
+ prop _dsmMemSeg :: HST.DSMBUFSEG
+ prop _objSize :: if GBL.DSPTYPE == 55 {(2 * self.objectSize())} else {self.objectSize()}
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"hst.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far HST_Obj %0r;\n\0"} else {"extern HST_Obj %0r;\n\0"})
+ prop modifiable :: ((if self.iDelUser == "USER" {1} else {0}))
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 3 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 2 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumEmbed :: 0 {
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global LNKTYPE :: "RTDX" {
+ prop Label :: "Host Link Type"
+ prop JSName :: "HOSTLINKTYPE"
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "RTDX,NONE"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: (if ($1 == "RTDX") {if (RTDX.USERTDX == 0) {self.error("RTDX module must be enabled before it can be used by HST")} else {if ((RTDX.BUFMEMSIZE / (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE)) - 2 < self.MAXFRAMESET) {self.error("RTDX buffer size too small for largest configured HST channel")} else {if (self.LNKTYPE == "NONE") {GlobalStatus.gDirty = 1, self.LNKTYPE = $1, $b = 0, scan ($i; HST) {if ($i.IsConfObj()) {if ($i.framesize > $b) {$b = $i.framesize} } }, self.MAXFRAMESET = $b, self.MAXFRAMEALLOWED = (RTDX.BUFMEMSIZE / (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE)) - 3, "ok"} else {self.LNKTYPE = $1, self.MAXFRAMEALLOWED = (RTDX.BUFMEMSIZE / (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE)) - 3, "ok"}}}} else {if ($1 == "Shared Memory") {if ((self.DSMMEMSIZE / 4) < self.MAXFRAMESET) {self.error("Shared memory buffer too small for largest configured HST channel")} else {if (self.LNKTYPE == "NONE") {GlobalStatus.gDirty = 1, self.LNKTYPE = $1, $b = 0, scan ($i; HST) {if ($i.IsConfObj()) {if ($i.framesize > $b) {$b = $i.framesize} } }, self.MAXFRAMESET = $b, self.MAXFRAMEALLOWED = self.DSMMEMSIZE / 4, "ok"} else {self.LNKTYPE = $1, self.MAXFRAMEALLOWED = self.DSMMEMSIZE / 4, "ok"}}} else {GlobalStatus.gDirty = 1, self.LNKTYPE = $1, "ok"}})
+ }
+ global RTDX :: = if self.LNKTYPE == "RTDX" {1} else {0} {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Use RTDX for host link"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global DSM :: = if self.LNKTYPE == "Shared Memory" {1} else {0} {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Use Shared Memory for host link"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global EVM54 :: = if self.LNKTYPE == "EVM54" {1} else {0} {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Use EVM54's I/O ports for host link"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global NONE :: = if self.LNKTYPE == "NONE" {1} else {0} {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "No host link"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global MAXFRAMESET :: 64 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Label :: "MAXFRAMESET"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global MAXFRAMEALLOWED :: 255 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Label :: "MAXFRAMEALLOWED"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global DSMBUFSEG :: = self.OBJMEMSEG {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Shared Memory Segment"
+ prop Visible :: 0
+ prop Writable :: self.DSM
+ prop NoGen :: 0
+ }
+ global DSMMEMSIZE :: = 1024 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01 | 0x02
+ prop Label :: "Shared Memory Frame Size (MAUs)"
+ prop Visible :: 0
+ prop Writable :: self.DSM
+ prop NoGen :: 0
+ prop Set :: (if ($1 < HST.MAXFRAMESET * 4) {self.error("size (in MAUs) must be at least: 4 * largest configured HST channel framesize (in words)")} else {self.DSMMEMSIZE = $1, GlobalStatus.gDirty = 1, if (self.LNKTYPE == "Shared Memory") {self.MAXFRAMEALLOWED = self.DSMMEMSIZE / 4, "ok"} else {"ok"}})
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst mode :: "output" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "mode"
+ prop Enum :: "input,output"
+ prop Visible :: 1
+ prop Writable :: self.modifiable()
+ prop NoGen :: 0
+ }
+ inst bufseg :: = self.OBJMEMSEG {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "bufseg"
+ prop JSName :: "bufSeg"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataNullMember($1)
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst bufalign :: 4 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01 | 0x02
+ prop JSName :: "bufAlign"
+ prop Visible :: 1
+ prop Writable :: self.modifiable()
+ prop NoGen :: 1
+ prop Set :: (if ($1 < 4) {self.error("Alignment must be greater than or equal to 4")} else {if (($1 % 2) != 0) {self.error("Alignment must be a power of 2")} else {$i = $1, while ((($i % 2) == 0) && ($i != 2)) {$i = $i / 2}, if (($i % 2) != 0) {self.error("Alignment must be a power of 2")} else {self.bufalign = $1, "ok"}}})
+ }
+ inst buf :: "<NULL>" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst framesize :: 0x80 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "framesize (words)"
+ prop JSName :: "frameSize"
+ prop Style :: 0x01 | 0x02
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (if ($1 < 1) {self.error("framesize must be >= 1.")} else {if (($1 > self.MAXFRAMEALLOWED) && ((self.RTDX == 1) || (self.DSM == 1))) {if (self.RTDX == 1) {self.error("size (in words) is limited to: (RTDX buffer size in MAUs) / (MAUs per word) - 3")} else {self.error("size (in words) is limited to: shared memory frame size (in MAUs)/4")}} else {self.framesize = $1, $b = 0, scan ($i; HST) {if ($i.IsConfObj()) {if ($i.framesize > $b) {$b = $i.framesize} } }, self.MAXFRAMESET = $b, GlobalStatus.gDirty = 1, "ok"}})
+ }
+ inst numframes :: 2 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop JSName :: "numFrames"
+ prop Visible :: 1
+ prop Writable :: self.modifiable()
+ prop NoGen :: 0
+ prop Set :: (if ($1 < 1) {self.error("Channels must contain at least 1 frame.")} else {GlobalStatus.gDirty = 1, self.numframes = $1, "ok"})
+ }
+ inst stsflg :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "statistics"
+ prop JSName :: "statistics"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst notify :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "notifyFxn"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "DHL" || self.iDelUser != "USER" {0} else {1})
+ prop NoGen :: 0
+ prop TabName :: "Notify Function"
+ }
+ inst arg0 :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "arg0"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "DHL" || self.iDelUser != "USER" {0} else {1})
+ prop NoGen :: 0
+ prop TabName :: "Notify Function"
+ }
+ inst arg1 :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "arg1"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "DHL" || self.iDelUser != "USER" {0} else {1})
+ prop NoGen :: 0
+ prop TabName :: "Notify Function"
+ }
+ inst lnk :: = if self.RTDX {"RTDX"} else {"NOTRTDX"} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "link type"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst iDHLAvailable :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Make this channel available for a new DHL device"
+ prop JSName :: "availableForDHL"
+ prop Set :: (if (($1 == 0) && (self.iDHLAvailable == 1)) {DHL.gChannelsAvailable--} else {if (($1 == 1) && (self.iDHLAvailable == 0)) {DHL.gChannelsAvailable++} }, self.iDHLAvailable = $1, "ok")
+ prop Writable :: self.modifiable()
+ prop Visible :: 1
+ prop NoGen :: 1
+ }
+ inst bufFrameAlign :: = self.bufalign {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+}
+
+object LNK_dataPump :: IDL {
+ param iComment :: "This object cannot be deleted"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "HST"
+ param iDelMsg :: "This object cannot be deleted"
+ param function :: @LNK_F_dataPump
+ param cycles :: 0
+ param calibration :: 1
+ param Order :: 0
+ param iPri :: 0
+}
+
+object RTA_dispatcher :: IDL {
+ param iComment :: "This object cannot be deleted"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "HST"
+ param iDelMsg :: "This object cannot be deleted"
+ param function :: @RTA_F_dispatch
+ param cycles :: 0
+ param calibration :: 1
+ param Order :: 0
+ param iPri :: 0
+}
+
+object RTA_fromHost :: HST {
+ param iComment :: "Used to access LOG and STS data"
+ param iIsUsed :: 1
+ param iId :: 1
+ param iDelUser :: "HST"
+ param iDelMsg :: "This object cannot be deleted"
+ param mode :: "input"
+ param bufseg :: IRAM
+ param bufalign :: 4
+ param buf :: "<NULL>"
+ param framesize :: 4
+ param numframes :: 1
+ param stsflg :: 0
+ param notify :: @_FXN_F_nop
+ param arg0 :: 0
+ param arg1 :: 0
+ param iDHLAvailable :: 0
+}
+
+object RTA_toHost :: HST {
+ param iComment :: "Used to access LOG and STS data"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "HST"
+ param iDelMsg :: "This object cannot be deleted"
+ param mode :: "output"
+ param bufseg :: IRAM
+ param bufalign :: 4
+ param buf :: "<NULL>"
+ param framesize :: 64
+ param numframes :: 1
+ param stsflg :: 0
+ param notify :: @_FXN_F_nop
+ param arg0 :: 0
+ param arg1 :: 0
+ param iDHLAvailable :: 0
+}
+
+type HWI {
+ isa ObjectMgr
+ prop name :: "HWI"
+ prop Label :: "HWI - Hardware Interrupt Service Routine Manager"
+ prop IsContainedIn :: SCH
+ prop SortChildHierView :: 0
+ prop GlobalIcon :: 109
+ prop InstanceIcon :: 110
+ prop InstanceHelpTopic :: (205)
+ prop GlobalHelpTopic :: (105)
+ prop dataSize :: (0 * HWI.gNumOf)
+ prop localCanCreate :: (self.error("New hardware interrupt objects cannot be created"))
+ prop InstancePropertyPage :: ("{B7240DE6-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop GlobalPropertyPage :: ("{B7240DE7-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop DependsOn :: "GBL,OBJ,BUF,CLK,IDL,LCK,LOG,MBX,MEM,PIP,POOL,PRD,QUE,RTDX,SEM,STS,SYS"
+ prop AllocType :: (if self.ZEROTAB {"1\0, _stubsAllocDesc, _memSeg, _placement"} else {if ((MEM.ENABLELOADSEG) && (MEM.VECMEMSEG != MEM.LOADVECMEMSEG)) {"2\0, _stubsAllocDesc, _memSeg, _placement,
+ _vectAllocDesc, _loadvecSeg, _minplace"} else {"2\0, _stubsAllocDesc, _memSeg, _placement,
+ _vectAllocDesc, _vecSeg, _minplace"}})
+ prop _stubsAllocDesc :: (if ((MEM.ENABLELOADSEG) && (MEM.STUBMEMSEG != MEM.LOADSTUBMEMSEG)) {"%8t .%1L: {} load > %2s, run\0, name, _loadstubSeg"} else {"%8t .%1L: {} \0, name"})
+ prop _vectAllocDesc :: (if ((MEM.ENABLELOADSEG) && (MEM.VECMEMSEG != MEM.LOADVECMEMSEG)) {"%8t .%1L_vec: {%12t\n *(.hwi_vec)%8t\n } run > %2s align = 0x400, RUN_START(%1U_A_VECS), load \0, name, _vecSeg"} else {"%8t .%1L_vec: {%12t\n *(.hwi_vec)%8t\n } align = 0x400, RUN_START(%1U_A_VECS)\0, name"})
+ prop _placement :: (0x7fffffff / 2)
+ prop _minplace :: 0
+ prop GenLinkPrologue :: (if self.ZEROTAB {if ((MEM.ENABLELOADSEG) && (MEM.VECMEMSEG != MEM.LOADVECMEMSEG)) {"SECTIONS {%4t\n .%1L_vec: {%8t\n %1U_A_VECS = .;\n *(.hwi_vec)%4t\n } load > %2s, run = 0x0 %0t\n}\n\0 , name, _loadvecSeg"} else {"SECTIONS {%4t\n .%1L_vec: 0x0 {%8t\n %1U_A_VECS = .;\n *(.hwi_vec)%4t\n }%0t\n}\n\0, name"}} else {if self.GENERATE_RESET_VEC {"SECTIONS {%4t\n .%1L_reset: 0x%2x {}%0t\n}\n\0, name, resetvector"} else {""}})
+ prop resetvector :: (self.RESETVECTORADDR)
+ prop GenLinkEpilogue :: ("%0t_HWI_CFGDISPATCHED = HWI_CFGDISPATCHED;\n\0")
+ prop localInit :: (if (RTDX.CALLBACKOBJ != nil) {self.error("HWI initialization failure.")} , RTDX.CALLBACKOBJ = HWI)
+ prop call :: (if (RTDX.USERTDX == 0) {HWI_RESERVED1.function = @HWI_unused, HWI_RESERVED1.iUseDispatcher = 0, if (HWI_INT11.iSource == HSRTDX11 && HWI_INT11.function == @_HSRTDX_xmt) {HWI_INT11.iSource = MCSP_0_Receive, HWI_INT11.iReMappable = 1, HWI_INT11.function = @HWI_unused, HWI_INT11.iUseDispatcher = 0, HWI_INT11.iIntrMask = "self", HWI_INT11.IntrMask = 0x800, HWI_INT11.client = "USER"} , if (HWI_INT12.iSource == HSRTDX12 && HWI_INT12.function == @_HSRTDX_rec) {HWI_INT12.iSource = MCSP_1_Transmit, HWI_INT12.iReMappable = 1, HWI_INT12.function = @HWI_unused, HWI_INT12.iUseDispatcher = 0, HWI_INT12.iIntrMask = "self", HWI_INT12.IntrMask = 0x1000, HWI_INT12.client = "USER"} } else {HWI_RESERVED1.function = @_RTDX_Poll, HWI_RESERVED1.iUseDispatcher = 1, if (RTDX.RTDXTYPE == "HSRTDX") {HWI_INT11.iSource = HSRTDX11, HWI_INT11.iReMappable = 0, HWI_INT11.function = @_HSRTDX_xmt, HWI_INT11.iUseDispatcher = 1, HWI_INT11.iIntrMask = "bitmask", HWI_INT11.IntrMask = 0x1808, HWI_INT11.client = "RTDX", HWI_INT12.iSource = HSRTDX12, HWI_INT12.iReMappable = 0, HWI_INT12.function = @_HSRTDX_rec, HWI_INT12.iUseDispatcher = 1, HWI_INT12.iIntrMask = "bitmask", HWI_INT12.IntrMask = 0x1808, HWI_INT12.client = "RTDX"} else {if (HWI_INT11.iSource == HSRTDX11 && HWI_INT11.function == @_HSRTDX_xmt) {HWI_INT11.iSource = MCSP_0_Receive, HWI_INT11.iReMappable = 1, HWI_INT11.function = @HWI_unused, HWI_INT11.iUseDispatcher = 0, HWI_INT11.iIntrMask = "self", HWI_INT11.IntrMask = 0x800, HWI_INT11.client = "USER"} , if (HWI_INT12.iSource == HSRTDX12 && HWI_INT12.function == @_HSRTDX_rec) {HWI_INT12.iSource = MCSP_1_Transmit, HWI_INT12.iReMappable = 1, HWI_INT12.function = @HWI_unused, HWI_INT12.iUseDispatcher = 0, HWI_INT12.iIntrMask = "self", HWI_INT12.IntrMask = 0x1000, HWI_INT12.client = "USER"} }})
+ prop _memSeg :: MEM.STUBMEMSEG
+ prop _loadstubSeg :: MEM.LOADSTUBMEMSEG
+ prop _linkString :: ($b = 0, scan ($a; HWI) {if ($a.monitor != "Nothing") {$b = 1} }, if ($b == 1) {"*(.hwi)"} else {"/* no HWI stubs are necessary */"})
+ prop name2addr :: ($i = 0, $b = nil, scan ($a; {"Nothing", "Data Value", "Stack Pointer", "Top of SW Stack", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10", "A11", "A12", "A13", "A14", "A15", "B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "B10", "B11", "B12", "B13", "B14", "B15"}) {if ($b == nil) {if ($a == $1) {$b = {0, 0, 0, @GBL_stackbeg, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}[$i]} , $i++} }, if ($b == nil) {$b = 0} , $b)
+ prop name2type :: ($i = 0, $b = nil, scan ($a; {"Nothing", "Data Value", "Stack Pointer", "Top of SW Stack", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10", "A11", "A12", "A13", "A14", "A15", "B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "B10", "B11", "B12", "B13", "B14", "B15"}) {if ($b == nil) {if ($a == $1) {if ($i < 5) {$b = {"unsigned", "signed", "unsigned", "unsigned", "unsigned"}[$i]} } , $i++} }, if ($b == nil) {$b = "unsigned"} , $b)
+ prop _vecSeg :: MEM.VECMEMSEG
+ prop _loadvecSeg :: MEM.LOADVECMEMSEG
+ prop HWIR0_DISP :: (if (HWI_RESERVED0.iUseDispatcher == 1) {0x4} else {0})
+ prop HWIR1_DISP :: (if (HWI_RESERVED1.iUseDispatcher == 1) {0x8} else {0})
+ prop HWI4_DISP :: (if (HWI_INT4.iUseDispatcher == 1) {0x10} else {0})
+ prop HWI5_DISP :: (if (HWI_INT5.iUseDispatcher == 1) {0x20} else {0})
+ prop HWI6_DISP :: (if (HWI_INT6.iUseDispatcher == 1) {0x40} else {0})
+ prop HWI7_DISP :: (if (HWI_INT7.iUseDispatcher == 1) {0x80} else {0})
+ prop HWI8_DISP :: (if (HWI_INT8.iUseDispatcher == 1) {0x100} else {0})
+ prop HWI9_DISP :: (if (HWI_INT9.iUseDispatcher == 1) {0x200} else {0})
+ prop HWI10_DISP :: (if (HWI_INT10.iUseDispatcher == 1) {0x400} else {0})
+ prop HWI11_DISP :: (if (HWI_INT11.iUseDispatcher == 1) {0x800} else {0})
+ prop HWI12_DISP :: (if (HWI_INT12.iUseDispatcher == 1) {0x1000} else {0})
+ prop HWI13_DISP :: (if (HWI_INT13.iUseDispatcher == 1) {0x2000} else {0})
+ prop HWI14_DISP :: (if (HWI_INT14.iUseDispatcher == 1) {0x4000} else {0})
+ prop HWI15_DISP :: (if (HWI_INT15.iUseDispatcher == 1) {0x8000} else {0})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 65535 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 16 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global STUBMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.codeMember($1)
+ prop Label :: "Function Stub Memory"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global ZEROTAB :: = if (6211 == 6499 || 6211 == 6747 || 6211 == 6748) {0} else {self.VECMEMSEG.base == self.RESETVECTORADDR} {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Writable :: 0
+ prop Visible :: 0
+ }
+ global VECMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop Label :: "Interrupt Service Table Memory"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop MemberTest :: MEM.codeMember($1)
+ prop Set :: (self.VECMEMSEG = $1, if ($1.base == 0) {self.GENERATE_RESET_VEC = 0} , "ok")
+ }
+ global GENERATE_RESET_VEC :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Generate RESET vector"
+ prop JSName :: "RESETVECTOR"
+ prop Writable :: self.ZEROTAB == 0
+ prop Visible :: 1
+ prop NoGen :: 0
+ }
+ global RESETVECTORADDR :: 0 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Label :: "RESET vector address"
+ prop JSName :: "RESETVECTORADDR"
+ prop Format :: "0x%08x"
+ prop Style :: 0x02
+ prop Writable :: self.GENERATE_RESET_VEC
+ prop Visible :: 1
+ prop NoGen :: 1
+ }
+ global EXT4_POLARITY :: "low-to-high" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "low-to-high,high-to-low"
+ prop Label :: "External Interrupt Pin 4 Polarity"
+ prop JSName :: "EXTPIN4POLARITY"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global EXT5_POLARITY :: "low-to-high" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "low-to-high,high-to-low"
+ prop Label :: "External Interrupt Pin 5 Polarity"
+ prop JSName :: "EXTPIN5POLARITY"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global EXT6_POLARITY :: "low-to-high" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "low-to-high,high-to-low"
+ prop Label :: "External Interrupt Pin 6 Polarity"
+ prop JSName :: "EXTPIN6POLARITY"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global EXT7_POLARITY :: "low-to-high" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "low-to-high,high-to-low"
+ prop Label :: "External Interrupt Pin 7 Polarity"
+ prop JSName :: "EXTPIN7POLARITY"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global POLARITYMASK :: = (if self.EXT4_POLARITY == "high-to-low" {1} else {0}) | (if self.EXT5_POLARITY == "high-to-low" {1} else {0}) << 1 | (if self.EXT6_POLARITY == "high-to-low" {1} else {0}) << 2 | (if self.EXT7_POLARITY == "high-to-low" {1} else {0}) << 3 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global INTRMULTLOW :: = (HWI_INT4.iEventId) | (HWI_INT5.iEventId << 5) | (HWI_INT6.iEventId << 10) | (HWI_INT7.iEventId << 16) | (HWI_INT8.iEventId << 21) | (HWI_INT9.iEventId << 26) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Writable :: 0
+ prop Visible :: 0
+ prop NoGen :: 0
+ }
+ global INTRMULTHIGH :: = (HWI_INT10.iEventId) | (HWI_INT11.iEventId << 5) | (HWI_INT12.iEventId << 10) | (HWI_INT13.iEventId << 16) | (HWI_INT14.iEventId << 21) | (HWI_INT15.iEventId << 26) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Writable :: 0
+ prop Visible :: 0
+ prop NoGen :: 0
+ }
+ global CFGDISPATCHED :: = (self.HWIR0_DISP | self.HWIR1_DISP | self.HWI4_DISP | self.HWI5_DISP | self.HWI6_DISP | self.HWI7_DISP | self.HWI8_DISP | self.HWI9_DISP | self.HWI10_DISP | self.HWI11_DISP | self.HWI12_DISP | self.HWI13_DISP | self.HWI14_DISP | self.HWI15_DISP) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "dispatched mask"
+ prop Style :: 0x02
+ prop Writable :: 1
+ prop Visible :: 0
+ prop NoGen :: 0
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iSource :: Reset {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: ISRC
+ prop MemberTest :: 1
+ prop Label :: "interrupt source"
+ prop JSName :: "interruptSource"
+ prop Visible :: if (GBL.CLKTYPE == 700) {0} else {if (GBL.DSPSUBTYPE == 6499 || GBL.DSPSUBTYPE == 6747 || GBL.DSPSUBTYPE == 6748) {0} else {1}}
+ prop Writable :: if (GBL.CLKTYPE == 700) {0} else {self.iReMappable}
+ prop NoGen :: 1
+ prop Set :: ($a = $1, if ($a == Reset) {self.error("The Reset interrupt source cannot be remapped")} else {if ($a == Non_Maskable) {self.error("The Non-Maskable interrupt source cannot be remapped")} else {if ($a == Reserved) {self.error("The Reserved interrupt source cannot be remapped")} else {if (CLK.WHICHHWI == self && $a != self.iSource && CLK.USETIMER) {self.error("This interrupt is in use by CLK, settings may be changed in the CLK Manager")} else {if ($a == CLK.WHICHHWI.iSource && CLK.USETIMER == 1) {self.error("Interrupt source is in use by CLK, settings may be changed in the CLK Manager.")} else {$a.iHwi = self, self.iSource.iHwi = HWI_UNUSED, self.iSource = $1, self.iEventId = self.iSource.iIntrSelectNum, "ok"}}}}})
+ }
+ inst iEventId :: = self.iSource.iIntrSelectNum {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "interrupt selection number"
+ prop JSName :: "interruptSelectNumber"
+ prop Style :: 0x02
+ prop Visible :: if (GBL.CLKTYPE == 700) {0} else {1}
+ prop Writable :: if (GBL.CLKTYPE == 700) {0} else {self.iReMappable}
+ prop NoGen :: 1
+ }
+ inst iReMappable :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iIntrEnableMask :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst function :: @HWI_unused {
+ prop JSName :: "fxn"
+ prop Visible :: 1
+ prop Writable :: if ((self.function == @RESERVED) || (self.client != "USER")) {0} else {1}
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop NoGen :: 0
+ prop Set :: (self.function = $1, GlobalStatus.gDirty = 1, "ok")
+ }
+ inst iSTSObj :: HWI_RESETSTS {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst monitor :: "Nothing" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "Nothing,Data Value,Stack Pointer,Top of SW Stack,A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,B13,B14,B15"
+ prop JSName :: "monitor"
+ prop Visible :: 1
+ prop Writable :: ((self.function != @HWI_unused && self.function != @RESERVED) && (self.iId != 0))
+ prop NoGen :: 0
+ prop Set :: (if ($1 != self.monitor) {$e = "ok", if ($1 == "Nothing") {if (($e = self.iSTSObj.Delete("HWI")) == "ok") {self.monitor = "Nothing", self.addr = self.name2addr(self.monitor), self.dataType = self.name2type(self.monitor)} } else {if (self.iSTSObj.iIsUsed || ($e = self.iSTSObj.Create("HWI")) == "ok") {self.monitor = $1, if (self.monitor == "Data Value") {self.addr = self.saveAddr, self.dataType = self.saveType} else {self.addr = self.name2addr(self.monitor), self.dataType = self.name2type(self.monitor)}} else {self.monitor = "Nothing"}}, $e} else {"ok"})
+ }
+ inst saveAddr :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst saveType :: "signed" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst addr :: 0 {
+ prop JSName :: "addr"
+ prop Visible :: 1
+ prop Writable :: (if self.monitor == "Data Value" {1} else {0})
+ prop NoGen :: 0
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Format :: if GBL.DSPTYPE == 62 {"0x%08x"} else {"0x%04x"}
+ prop Set :: (self.addr = $1, self.saveAddr = $1, "ok")
+ }
+ inst dataType :: "signed" {
+ prop Visible :: 1
+ prop Writable :: (if self.monitor == "Nothing" {0} else {1})
+ prop NoGen :: 0
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "signed,unsigned"
+ prop Label :: "type"
+ prop JSName :: "dataType"
+ prop Set :: (if (self.monitor != "Nothing") {self.dataType = $1, self.saveType = $1, "ok"} else {self.error("The monitor field must set to modify this field")})
+ }
+ inst operation :: "STS_add(*addr)" {
+ prop Visible :: 1
+ prop Writable :: (if self.monitor == "Nothing" {0} else {1})
+ prop NoGen :: 0
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "operation"
+ prop Enum :: "STS_add(*addr),STS_delta(*addr),STS_add(-*addr),STS_delta(-*addr),STS_add(|*addr|),STS_delta(|*addr|)"
+ prop Set :: (if (self.monitor != "Nothing") {self.operation = $1, "ok"} else {self.error("The monitor field must set to modify this field")})
+ }
+ inst client :: "USER" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst iUseDispatcher :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Use Dispatcher"
+ prop JSName :: "useDispatcher"
+ prop Visible :: 1
+ prop Writable :: if (self.client == "USER") {1} else {0}
+ prop NoGen :: 0
+ prop TabName :: "Dispatcher"
+ prop Set :: (if (($1 == 1) && (self == HWI_NMI)) {self.error("HWI dispatcher can't be used for NMI")} else {self.iUseDispatcher = $1, "ok"})
+ }
+ inst iArg :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Arg"
+ prop JSName :: "arg"
+ prop Visible :: 1
+ prop Writable :: if ((self.iUseDispatcher == 1) && (self.client == "USER")) {1} else {0}
+ prop NoGen :: 0
+ prop TabName :: "Dispatcher"
+ prop Set :: (self.iArg = $1, "ok")
+ }
+ inst iIntrMask :: "self" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Interrupt Mask"
+ prop JSName :: "interruptMask"
+ prop Enum :: "all,none,self,bitmask"
+ prop Visible :: 1
+ prop Writable :: if (self.iUseDispatcher == 1) {1} else {0}
+ prop NoGen :: 1
+ prop TabName :: "Dispatcher"
+ prop Set :: (if ($1 == "all") {self.IntrMask = 0xffff} else {if ($1 == "self") {self.IntrMask = 1 << self.iId} else {if ($1 == "none") {self.IntrMask = 0} }}, self.iIntrMask = $1, "ok")
+ }
+ inst IntrMask :: (1 << self.iId) {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: "0x%04x"
+ prop Style :: 0x02
+ prop Label :: "Interrupt Bit Mask"
+ prop JSName :: "interruptBitMask"
+ prop Visible :: 1
+ prop Writable :: if ((self.iUseDispatcher == 1) && (self.iIntrMask == "bitmask")) {1} else {0}
+ prop NoGen :: 0
+ prop TabName :: "Dispatcher"
+ prop Set :: (if ($1 > 0xffff) {self.error("Invalid Number")} else {self.IntrMask = $1, "ok"})
+ }
+ inst iCacheControl :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Don't modify cache control"
+ prop JSName :: "cacheControl"
+ prop Visible :: 1
+ prop Writable :: 0
+ prop NoGen :: 1
+ prop TabName :: "Dispatcher"
+ prop Set :: (if ($1 == 1) {self.iCCBitMask = 0x1} else {self.iCCBitMask = (self.iPCCBitMask | self.iDCCBitMask)}, self.iCacheControl = $1, "ok")
+ }
+ inst iPCCMask :: (if (GBL.DSPSUBTYPE == 6200 || GBL.DSPSUBTYPE == 6700) {"mapped"} else {"cache enable"}) {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "mapped,cache enable,cache freeze,cache bypass"
+ prop Label :: "Program Cache Control Mask"
+ prop JSName :: "progCacheMask"
+ prop Visible :: 1
+ prop Writable :: if ((self.iUseDispatcher == 1) && (self.iCacheControl == 0)) {1} else {0}
+ prop NoGen :: 1
+ prop TabName :: "Dispatcher"
+ prop Set :: (if ((GBL.DSPSUBTYPE == 6211 || GBL.DSPSUBTYPE == 6711 || GBL.DSPSUBTYPE == 6400) && $1 != "cache enable") {self.error("unsupported cache mode for 6x1x/64x device (cache enable must be selected)")} else {if ($1 == "mapped") {self.iPCCBitMask = 0x0000} else {if ($1 == "cache enable") {self.iPCCBitMask = 0x0040} else {if ($1 == "cache freeze") {self.iPCCBitMask = 0x0060} else {self.iPCCBitMask = 0x0080}}}, self.iPCCMask = $1, self.iCCBitMask = self.iPCCBitMask | self.iDCCBitMask, "ok"})
+ }
+ inst iPCCBitMask :: 0x0000 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDCCMask :: (if (GBL.DSPSUBTYPE == 6200 || GBL.DSPSUBTYPE == 6700) {"mapped"} else {"cache enable"}) {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "mapped,cache enable,cache freeze,cache bypass"
+ prop Label :: "Data Cache Control Mask"
+ prop JSName :: "dataCacheMask"
+ prop Visible :: 1
+ prop Writable :: if ((self.iUseDispatcher == 1) && (self.iCacheControl == 0)) {1} else {0}
+ prop NoGen :: 1
+ prop TabName :: "Dispatcher"
+ prop Set :: (if ((GBL.DSPSUBTYPE == 6211 || GBL.DSPSUBTYPE == 6711 || GBL.DSPSUBTYPE == 6400) && $1 != "cache enable") {self.error("unsupported cache mode for 6x1x/64x device (cache enable must be selected)")} else {if ($1 == "mapped") {self.iDCCBitMask = 0x0000} else {if ($1 == "cache enable") {self.iDCCBitMask = 0x0008} else {if ($1 == "cache freeze") {self.iDCCBitMask = 0x000C} else {self.iDCCBitMask = 0x0010}}}, self.iDCCMask = $1, self.iCCBitMask = self.iPCCBitMask | self.iDCCBitMask, "ok"})
+ }
+ inst iDCCBitMask :: 0x0000 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iCCBitMask :: 1 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst iLoadTrack :: 0 {
+ prop Label :: "Support CPU load tracking"
+ prop JSName :: "loadTrack"
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+}
+
+object HWI_RESET_STS :: STS {
+ param iComment :: "provides statistics for the RESET ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_RESET :: HWI {
+ param iComment :: "defines function for the RESET ISR"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: Reset
+ param iReMappable :: 0
+ param iIntrEnableMask :: 1
+ param function :: @_c_int00
+ param iSTSObj :: HWI_RESET_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 1
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_NMI_STS :: STS {
+ param iComment :: "provides statistics for the NMI ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_NMI :: HWI {
+ param iComment :: "defines function for the NMI ISR"
+ param iIsUsed :: 1
+ param iId :: 1
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: Non_Maskable
+ param iReMappable :: 0
+ param iIntrEnableMask :: 2
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_NMI_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 2
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_RESERVED0_STS :: STS {
+ param iComment :: "This STS object is being used by a HWI object and cannot be deleted"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_RESERVED0 :: HWI {
+ param iComment :: "RESERVED for RTDX"
+ param iIsUsed :: 1
+ param iId :: 2
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: Reserved
+ param iReMappable :: 0
+ param iIntrEnableMask :: 4
+ param function :: @RESERVED
+ param iSTSObj :: HWI_RESERVED0_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "RTDX"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 4
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_RESERVED1_STS :: STS {
+ param iComment :: "This STS object is being used by a HWI object and cannot be deleted"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_RESERVED1 :: HWI {
+ param iComment :: "RESERVED for RTDX"
+ param iIsUsed :: 1
+ param iId :: 3
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: Reserved
+ param iReMappable :: 0
+ param iIntrEnableMask :: 8
+ param function :: @_RTDX_Poll
+ param iSTSObj :: HWI_RESERVED1_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "RTDX"
+ param iUseDispatcher :: 1
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 8
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT4_STS :: STS {
+ param iComment :: "provides statistics for the INT4 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT4 :: HWI {
+ param iComment :: "defines the INT4 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 4
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: MCSP_1_Receive
+ param iEventId :: 15
+ param iReMappable :: 1
+ param iIntrEnableMask :: 16
+ param function :: @_ISR_AIC
+ param iSTSObj :: HWI_INT4_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 1
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 16
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT5_STS :: STS {
+ param iComment :: "provides statistics for the INT5 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT5 :: HWI {
+ param iComment :: "defines the INT5 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 5
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: External_Pin_5
+ param iReMappable :: 1
+ param iIntrEnableMask :: 32
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT5_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 32
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT6_STS :: STS {
+ param iComment :: "provides statistics for the INT6 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT6 :: HWI {
+ param iComment :: "defines the INT6 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 6
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: External_Pin_6
+ param iReMappable :: 1
+ param iIntrEnableMask :: 64
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT6_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 64
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT7_STS :: STS {
+ param iComment :: "provides statistics for the INT7 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT7 :: HWI {
+ param iComment :: "defines the INT7 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 7
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: External_Pin_7
+ param iReMappable :: 1
+ param iIntrEnableMask :: 128
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT7_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 128
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT8_STS :: STS {
+ param iComment :: "provides statistics for the INT8 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT8 :: HWI {
+ param iComment :: "defines the INT8 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 8
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: EDMA_Controller
+ param iReMappable :: 1
+ param iIntrEnableMask :: 256
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT8_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 256
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT9_STS :: STS {
+ param iComment :: "provides statistics for the INT9 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT9 :: HWI {
+ param iComment :: "defines the INT9 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 9
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: MCSP_0_Transmit
+ param iReMappable :: 1
+ param iIntrEnableMask :: 512
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT9_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 512
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT10_STS :: STS {
+ param iComment :: "provides statistics for the INT10 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT10 :: HWI {
+ param iComment :: "defines the INT10 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 10
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: EMIF_SDRAM_Timer
+ param iReMappable :: 1
+ param iIntrEnableMask :: 1024
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT10_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 1024
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT11_STS :: STS {
+ param iComment :: "provides statistics for the INT11 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT11 :: HWI {
+ param iComment :: "defines the INT11 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 11
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: MCSP_0_Receive
+ param iReMappable :: 1
+ param iIntrEnableMask :: 2048
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT11_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 2048
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT12_STS :: STS {
+ param iComment :: "provides statistics for the INT12 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT12 :: HWI {
+ param iComment :: "defines the INT12 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 12
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: MCSP_1_Transmit
+ param iReMappable :: 1
+ param iIntrEnableMask :: 4096
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT12_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 4096
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT13_STS :: STS {
+ param iComment :: "provides statistics for the INT13 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT13 :: HWI {
+ param iComment :: "defines the INT13 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 13
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: Host_Port_Host_to_DSP
+ param iReMappable :: 1
+ param iIntrEnableMask :: 8192
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT13_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 8192
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT14_STS :: STS {
+ param iComment :: "provides statistics for the INT14 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT14 :: HWI {
+ param iComment :: "defines the INT14 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 14
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: Timer_0
+ param iEventId :: 1
+ param iReMappable :: 1
+ param iIntrEnableMask :: 16384
+ param function :: @CLK_F_isr
+ param iSTSObj :: HWI_INT14_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "CLK"
+ param iUseDispatcher :: 1
+ param iArg :: @CLK_A_TABBEG
+ param iIntrMask :: "self"
+ param IntrMask :: 16384
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_INT15_STS :: STS {
+ param iComment :: "provides statistics for the INT15 ISR"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HWI"
+ param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+object HWI_INT15 :: HWI {
+ param iComment :: "defines the INT15 Interrupt"
+ param iIsUsed :: 1
+ param iId :: 15
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: Timer_1
+ param iReMappable :: 1
+ param iIntrEnableMask :: 32768
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT15_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 32768
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+object HWI_UNUSED :: HWI {
+ param iComment :: "a dummy DSP interrupt for unused sources"
+ param iIsUsed :: 0
+ param iId :: 16
+ param iDelUser :: "HWI"
+ param iDelMsg :: "Hardware interrupt objects cannot be deleted"
+ param iSource :: Reset
+ param iReMappable :: 1
+ param iIntrEnableMask :: 0
+ param function :: @HWI_unused
+ param iSTSObj :: HWI_INT15_STS
+ param monitor :: "Nothing"
+ param saveAddr :: 0
+ param saveType :: "signed"
+ param addr :: 0
+ param dataType :: "signed"
+ param operation :: "STS_add(*addr)"
+ param client :: "USER"
+ param iUseDispatcher :: 0
+ param iArg :: 0
+ param iIntrMask :: "self"
+ param IntrMask :: 65536
+ param iCacheControl :: 1
+ param iPCCMask :: "cache enable"
+ param iPCCBitMask :: 0
+ param iDCCMask :: "cache enable"
+ param iDCCBitMask :: 0
+ param iCCBitMask :: 1
+ param iLoadTrack :: 0
+}
+
+type SWI {
+ isa ObjectMgr
+ prop name :: "SWI"
+ prop Label :: "SWI - Software Interrupt Manager"
+ prop IsContainedIn :: SCH
+ prop DependsOn :: "HWI,SIO,HST,MSGQ"
+ prop GlobalIcon :: 123
+ prop InstanceIcon :: 124
+ prop InstanceHelpTopic :: (211)
+ prop GlobalHelpTopic :: (111)
+ prop HighTimeBased :: (if CLK.HIRES == 1 {1} else {0})
+ prop LowTimeBased :: (if CLK.HIRES == 1 {0} else {1})
+ prop uType :: (if (self.HighTimeBased()) {$a = 0} else {if (self.LowTimeBased()) {$a = 1} else {$a = 2}}, $a)
+ prop STSGetMaxFmt :: (if (SWI.STSUNITS == "raw") {if CLK.HIRES {"%g inst"} else {"%g ints"}} else {if SWI.STSUNITS == "microseconds" {"%.1f us"} else {"%.2f ms"}})
+ prop STSGetSumFmt :: (SWI.STSGetMaxFmt())
+ prop STSGetAvgFmt :: (if (SWI.STSUNITS == "raw") {if CLK.HIRES {"%.2f inst"} else {"%.2f ints"}} else {if SWI.STSUNITS == "microseconds" {"%.1f us"} else {"%.2f ms"}})
+ prop STSFilterMaxMult :: ($a = 1)
+ prop STSFilterSumMult :: (SWI.STSFilterMaxMult($1))
+ prop GetPriority :: (self.pri)
+ prop objectSize :: (if ((GBL.DSPTYPE == 54 && GBL.FARMODE == 0) || (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL")) {$a = (12 * 4)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 1) {$a = (14 * 4)} , if (GBL.DSPTYPE == 28 || (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") || (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE")) {$a = (20 * 4)} , if (GBL.DSPTYPE == 62) {$a = (11 * 4)} , $a)
+ prop GenLinkPrologue :: ("SECTIONS {%4t\n.swi: RUN_START(SWI_A_TABBEG), RUN_END(SWI_A_TABEND) {%4t\n} > %1s%2s\0, memSeg, pageString")
+ prop GenLinkEpilogue :: ("%0t}\nSWI_A_TABLEN = %1d;\n\0, numInst")
+ prop linkString :: if self.gNumOf > 0 {"*(.%1L)"} else {"/* no %1U objects */"}
+ prop pageString :: if GBL.DSPTYPE == 62 {""} else {if (GBL.DSPTYPE == 55 || GBL.DSPTYPE == 28) {(if SWI.OBJMEMSEG.space() == "code" {" PAGE 0"} else {if SWI.OBJMEMSEG.space() == "data" {" PAGE 1"} else {if SWI.OBJMEMSEG.space() == "io" {" PAGE 2"} else {" PAGE 0"}}})} else {" PAGE 1"}}
+ prop memSeg :: SWI.OBJMEMSEG
+ prop objSize :: if GBL.DSPTYPE == 55 {(2 * self.objectSize())} else {self.objectSize()}
+ prop maxObjs :: (32767)
+ prop numInst :: (SWI.gNumOf)
+ prop dataSize :: (self.objectSize() * SWI.gNumOf)
+ prop localCanCreate :: (if (GlobalStatus.MinStackSize >= MEM.STACKSIZE) {self.error("System stack size (see MEM) is too small to support a new SWI priority level.")} else {"ok"})
+ prop localCreate :: (STS.gNumEmbed += 1, SWI.EXECFXN = @SWI_F_exec, SWI.RUNFXN = @SWI_F_run, "ok")
+ prop localDelete :: (STS.gNumEmbed -= 1, if (self.gNumOf == 1) {SWI.EXECFXN = @FXN_F_nop, SWI.RUNFXN = @FXN_F_nop} , "ok")
+ prop SortByField :: "pri"
+ prop SortGroups :: 15
+ prop InstancePropertyPage :: ("{B7240DEC-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop GlobalPropertyPage :: ("{B7240DED-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"swi.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far SWI_Obj %0r;\n\0"} else {"extern SWI_Obj %0r;\n\0"})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global EHOOKFXN :: @GBL_NULL {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable Scheduler and Return to Idle Function"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global IHOOKFXN :: @GBL_NULL {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Exit Scheduler and Return to Idle Function"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global EXECFXN :: @SWI_F_exec {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Configured SWI executive"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global RUNFXN :: @SWI_F_run {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Configured SWI executive body"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global STSUNITS :: "raw" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "raw,milliseconds,microseconds"
+ prop Label :: "Statistics Units"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst priority :: = (self.pri + 1) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "priority"
+ prop JSName :: ""
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst function :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "fxn"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ }
+ inst pri :: 1 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "0,1,2,3,4,5,6,7,8,9,10,11,12,13,14"
+ prop Label :: "priority"
+ prop JSName :: "priority"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: ($a = self.pri, self.pri = $1, if (self == KNL_swi) {if ($1 != 0) {self.pri = $a, self.error("KNL_swi must remain at Priority 0.")} else {"ok"}} else {if ($1 == 0 && KNL_swi.iIsUsed == 1) {self.pri = $a, self.error("Priority 0 reserved for KNL_swi only.")} else {GlobalStatus.gDirty = 1, if (GlobalStatus.MinStackSize >= MEM.STACKSIZE) {self.pri = $a, self.error("System stack size (see MEM) is too small to support a new SWI priority level.")} else {if ($1 > 14) {self.pri = $a, self.error("SWI can only support 15 priority levels.")} else {"ok"}}}})
+ }
+ inst mailbox :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01 | 0x02
+ prop JSName :: "mailbox"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ }
+ inst arg0 :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "arg0"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ }
+ inst arg1 :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "arg1"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ }
+ inst dorta :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst Order :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "order"
+ prop NoGen :: 0
+ prop Writable :: 1
+ }
+ inst filter :: 2 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "filter"
+ prop NoGen :: 0
+ }
+ inst maxformat :: self.STSGetMaxFmt() {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "maxformat"
+ prop NoGen :: 0
+ }
+ inst sumformat :: self.STSGetSumFmt() {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "sumformat"
+ prop NoGen :: 0
+ }
+ inst avgformat :: self.STSGetAvgFmt() {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "avgformat"
+ prop NoGen :: 0
+ }
+ inst filtmaxmult :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "filtmaxmult"
+ prop NoGen :: 0
+ }
+ inst filtsummult :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "filtsummult"
+ prop NoGen :: 0
+ }
+ inst unittype :: self.uType() {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "unittype"
+ prop NoGen :: 0
+ }
+}
+
+type TSK {
+ isa ObjectMgr
+ prop name :: "TSK"
+ prop Label :: "TSK - Task Manager"
+ prop IsConfMod :: self.USETSK
+ prop IsContainedIn :: SCH
+ prop DependsOn :: "SWI,HOOK"
+ prop GlobalIcon :: 143
+ prop InstanceIcon :: 144
+ prop GlobalHelpTopic :: (314)
+ prop InstanceHelpTopic :: (414)
+ prop InstancePropertyPage :: ("{473C4A64-B1A8-11d0-9885-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{473C4A65-B1A8-11d0-9885-0020AFEE33C6}")
+ prop SortByField :: "iPRI"
+ prop SortGroups :: 17
+ prop objectSize :: (if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL") {$a = (27 * 4)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") {$a = (44 * 4)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE") {$a = (44 * 4)} , if (GBL.DSPTYPE == 28) {$a = (40 * 4)} , if (GBL.DSPTYPE == 62 || (GBL.DSPTYPE == 54 && GBL.FARMODE == 0)) {$a = (24 * 4)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 1) {$a = (25 * 4)} , $a)
+ prop GenLinkPrologue :: (if (self.USETSK != 0) {"SECTIONS {%4t\n.%1L: {%8t\n %4S %4t\n} > %3s%5s\0, name, objSize, _bssmemSeg, linkString, pageString"} else {"_KNL_swi = 0;"})
+ prop linkString :: if self.gNumOf > 0 {"*(.%1L)"} else {"/* no %1U objects */"}
+ prop pageString :: if GBL.DSPTYPE == 62 {""} else {if (GBL.DSPTYPE == 55 || GBL.DSPTYPE == 28) {(if TSK.OBJMEMSEG.space() == "code" {" PAGE 0"} else {if TSK.OBJMEMSEG.space() == "data" {" PAGE 1"} else {if TSK.OBJMEMSEG.space() == "io" {" PAGE 2"} else {" PAGE 0"}}})} else {" PAGE 1"}}
+ prop GenLinkEpilogue :: (if (self.USETSK != 0) {"%0t}\n\0"} else {""})
+ prop _objAllocDesc :: ("%8t .TSK$obj: {}")
+ prop _bssmemSeg :: self.OBJMEMSEG
+ prop _objmemSeg :: MEM.CFGOBJSEG
+ prop AllocInst :: (if self.iAUTOSTK {"1\0, _instStackDesc, _instStackSeg, _placement"} else {"0\0"})
+ prop _instStackDesc :: ("%8t .%0s$stk: {%12t\n *(.%0s$stk)%8t\n }\0")
+ prop _self :: self
+ prop _instStackSize :: self.iSTKSZ * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE)
+ prop _instStackSeg :: self.iSTKSEG
+ prop _placement :: (0x7fffffff / 2)
+ prop localInit :: (KNL_swi.Create("SWI"), if (self.STACKSEG.iAllocHeap == 1) {self.STACKSEG.iReqHeapCount++, "ok"} else {self.error("TSK default stack segment must be a memory segment with a heap")})
+ prop HighTimeBased :: (if CLK.HIRES == 1 {1} else {0})
+ prop LowTimeBased :: (if CLK.HIRES == 1 {0} else {1})
+ prop uType :: (if (self.HighTimeBased()) {$a = 0} else {if (self.LowTimeBased()) {$a = 1} else {$a = 2}}, $a)
+ prop STSGetMaxFmt :: (if (TSK.STSUNITS == "raw") {if CLK.HIRES {"%g inst"} else {"%g ints"}} else {if TSK.STSUNITS == "microseconds" {"%.1f us"} else {"%.2f ms"}})
+ prop STSGetSumFmt :: (TSK.STSGetMaxFmt())
+ prop STSGetAvgFmt :: (if (TSK.STSUNITS == "raw") {if CLK.HIRES {"%.2f inst"} else {"%.2f ints"}} else {if TSK.STSUNITS == "microseconds" {"%.1f us"} else {"%.2f ms"}})
+ prop STSFilterMaxMult :: ($a = 1)
+ prop STSFilterSumMult :: (TSK.STSFilterMaxMult($1))
+ prop localCreate :: (STS.gNumEmbed += 1, "ok")
+ prop localCanCreate :: ($e = "ok", if (TSK.USETSK != 1) {$e = self.error("TSK manager not enabled")} , $e)
+ prop localDelete :: (STS.gNumEmbed -= 1, "ok")
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"tsk.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far TSK_Obj %0r;\n\0"} else {"extern TSK_Obj %0r;\n\0"})
+ prop NOPFXN :: @FXN_F_nop
+ prop _objId :: self.iId
+ prop objSize :: if GBL.DSPTYPE == 55 {(2 * self.objectSize())} else {self.objectSize()}
+ prop dataSize :: ($d = 0, scan ($i; TSK) {$d += ($i.iSTKSZ + self.objectSize() * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE))}, $d)
+ prop minStackSize :: ($a = self.STACKSIZE, scan ($i; TSK) {if ($i.STACKSIZE < $a) {$a = $i.STACKSIZE} }, $a)
+ prop maxObjs :: (32767)
+ prop GetPriority :: (self.iPRI)
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global USETSK :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable TSK Manager"
+ prop JSName :: "ENABLETSK"
+ prop Visible :: 1
+ prop Writable :: if GBL.DSPSUBTYPE == 0x55DA200 {0} else {1}
+ prop NoGen :: 1
+ prop Set :: (if ($1 == 0) {if (self.gNumOf > 1) {self.error("Cannot disable TSK until all TSK objects are deleted.")} else {self.STACKSEG.iReqHeapCount--, TSK.STACKSEG = MEM_NULL, TSK.OBJMEMSEG = MEM_NULL, TSK_idle.iSTKSEG = MEM_NULL, TSK_idle.Delete("TSK"), KNL_swi.Delete("TSK"), PRD.THOOKFXN = self.NOPFXN, if (PRD.gNumOf == 0) {if (PRD_clock.iIsUsed == 1) {PRD_clock.function = @FXN_F_nop} } , self.USETSK = $1, "ok"}} else {$e = "ok", GlobalStatus.gDirty = 1, if (GlobalStatus.MinStackSize >= MEM.STACKSIZE) {$e = self.error("Current stack size inadequate to enable TSK"), break} , scan ($a; SWI) {if ($a != KNL_swi && $a.pri == 0 && $a.iIsUsed == 1) {$e = self.error("Cannot enable TSK when there are SWI objects at Priority 0."), break} }, if ($e == "ok") {TSK.STACKSEG = MEM_NULL, scan ($b; MEM) {if ($b.iAllocHeap && $b != MEM_NULL) {TSK.STACKSEG = $b, break} }, self.STACKSEG.iReqHeapCount++, self.USETSK = $1, TSK.OBJMEMSEG = SWI.OBJMEMSEG, TSK_idle.iSTKSEG = self.OBJMEMSEG, TSK_idle.Create("TSK"), KNL_swi.Create("TSK"), PRD.THOOKFXN = PRD.DEFAULT_THOOKFXN, if (TSK.TSKTICK == "PRD") {if (PRD_clock.iIsUsed == 1) {PRD_clock.function = @PRD_F_tick} } , if (MEM.NOHEAPS) {self.STACKSEG.iReqHeapCount++} , $e} else {$e}})
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "OBJMEMSEG"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataNullMember($1)
+ prop Label :: "Object Memory"
+ prop Visible :: 1
+ prop Writable :: self.USETSK
+ prop NoGen :: 1
+ }
+ global CALLBACKOBJ :: nil {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global STACKSIZE :: 1024 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: if GBL.DSPTYPE == 54 {0x01} else {0x02}
+ prop Label :: "Default stack size (MAUs)"
+ prop JSName :: "STACKSIZE"
+ prop Visible :: 1
+ prop Writable :: self.USETSK
+ }
+ global STACKSEG :: MEM_NULL {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataNullMember($1) && $1.iAllocHeap
+ prop Label :: "Stack segment for dynamic tasks"
+ prop JSName :: "STACKSEG"
+ prop Visible :: 1
+ prop Writable :: self.USETSK && (MEM.NOHEAPS == 0)
+ prop Set :: (if (self.STACKSEG.iReqHeapCount > 0) {self.STACKSEG.iReqHeapCount--} , self.STACKSEG = $1, self.STACKSEG.iReqHeapCount++, "ok")
+ }
+ global PRIORITY :: 1 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "PRIORITY"
+ prop Enum :: "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15"
+ prop Label :: "Default task priority"
+ prop Visible :: 1
+ prop Writable :: self.USETSK
+ }
+ global CREATEFXN :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Create function"
+ prop JSName :: "CREATEFXN"
+ prop Visible :: 1
+ prop Writable :: self.USETSK
+ prop TabName :: "Function Hooks"
+ prop Set :: (self.CREATEFXN = $1, HOOK_KNL.createFxn = self.CREATEFXN, "ok")
+ prop NoGen :: 1
+ }
+ global VCREATEFXN :: = if HOOK_KNL.iIsUsed == 1 {@__HOOK_doCreate} else {self.CREATEFXN} {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ }
+ global DELETEFXN :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Delete function"
+ prop JSName :: "DELETEFXN"
+ prop Visible :: 1
+ prop Writable :: self.USETSK
+ prop TabName :: "Function Hooks"
+ prop Set :: (self.DELETEFXN = $1, HOOK_KNL.deleteFxn = self.DELETEFXN, "ok")
+ prop NoGen :: 1
+ }
+ global VDELETEFXN :: = if HOOK_KNL.iIsUsed == 1 {@__HOOK_doDelete} else {self.DELETEFXN} {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ }
+ global EXITFXN :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Exit function"
+ prop JSName :: "EXITFXN"
+ prop Visible :: 1
+ prop Writable :: self.USETSK
+ prop TabName :: "Function Hooks"
+ prop Set :: (self.EXITFXN = $1, HOOK_KNL.exitFxn = self.EXITFXN, "ok")
+ prop NoGen :: 1
+ }
+ global VEXITFXN :: = if HOOK_KNL.iIsUsed == 1 {@__HOOK_doExit} else {self.EXITFXN} {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ }
+ global DOSWITCH :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Call switch function"
+ prop JSName :: "CALLSWITCHFXN"
+ prop Writable :: self.USETSK
+ prop Visible :: 1
+ prop NoGen :: 1
+ prop Set :: (self.DOSWITCH = $1, HOOK_KNL.callSwitchFxn = self.DOSWITCH, "ok")
+ prop TabName :: "Function Hooks"
+ }
+ global VSWFXN :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Switch function"
+ prop JSName :: "SWITCHFXN"
+ prop Visible :: 1
+ prop NoGen :: 1
+ prop Writable :: self.DOSWITCH && self.USETSK
+ prop Set :: (self.VSWFXN = $1, HOOK_KNL.switchFxn = self.VSWFXN, "ok")
+ prop TabName :: "Function Hooks"
+ }
+ global SWITCHFXN :: = (if (HOOK_KNL.iIsUsed) {$i = 0, scan ($a; HOOK) {if ($a.callSwitchFxn) {$i = 1} }, if ($i) {@__HOOK_doSwitch} else {0}} else {if (self.DOSWITCH) {self.VSWFXN} else {0}}) {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: ""
+ prop TabName :: "Function Hooks"
+ }
+ global DOREADY :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Call ready function"
+ prop JSName :: "CALLREADYFXN"
+ prop Writable :: self.USETSK
+ prop Visible :: 1
+ prop NoGen :: 1
+ prop Set :: (self.DOREADY = $1, HOOK_KNL.callReadyFxn = self.DOREADY, "ok")
+ prop TabName :: "Function Hooks"
+ }
+ global VRDYFXN :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Ready function"
+ prop JSName :: "READYFXN"
+ prop Visible :: 1
+ prop Writable :: self.DOREADY && self.USETSK
+ prop NoGen :: 1
+ prop Set :: (self.VRDYFXN = $1, HOOK_KNL.readyFxn = self.VRDYFXN, "ok")
+ prop TabName :: "Function Hooks"
+ }
+ global READYFXN :: = (if (HOOK_KNL.iIsUsed) {$i = 0, scan ($a; HOOK) {if ($a.callReadyFxn) {$i = 1} }, if ($i) {@__HOOK_doReady} else {0}} else {if (self.DOREADY) {self.VRDYFXN} else {0}}) {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: ""
+ prop TabName :: "Function Hooks"
+ }
+ global NUM_HOOKS :: = HOOK.gNumOf {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ }
+ global STSUNITS :: "raw" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "raw,milliseconds,microseconds"
+ prop Label :: "Statistics Units"
+ prop Visible :: 0
+ prop Writable :: self.USETSK
+ prop NoGen :: 1
+ }
+ global TSKTICK :: "PRD" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "PRD,User"
+ prop Label :: "TSK tick driven by"
+ prop JSName :: "DRIVETSKTICK"
+ prop Visible :: 1
+ prop Writable :: self.USETSK
+ prop NoGen :: 1
+ prop Set :: (if ($1 != self.TSKTICK) {if ($1 == "PRD") {PRD.THOOKFXN = PRD.DEFAULT_THOOKFXN, if (TSK.USETSK == 1) {if (PRD_clock.iIsUsed == 1) {PRD_clock.function = @PRD_F_tick} } } , if ($1 == "User") {PRD.THOOKFXN = self.NOPFXN, if (PRD.gNumOf == 0) {if (PRD_clock.iIsUsed == 1) {PRD_clock.function = @FXN_F_nop} } } , if ($1 != "PRD" && $1 != "User") {self.error("Invalid TSK tick driver selection")} } , self.TSKTICK = $1, "ok")
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iFXN :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Task function"
+ prop JSName :: "fxn"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "TSK" {0} else {1}
+ prop TabName :: "Function"
+ }
+ inst iARG0 :: 0 {
+ prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
+ prop Label :: "Task function argument 0"
+ prop JSName :: "arg0"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "TSK" {0} else {1}
+ prop TabName :: "Function"
+ }
+ inst iARG1 :: 0 {
+ prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
+ prop Label :: "Task function argument 1"
+ prop JSName :: "arg1"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "TSK" {0} else {1}
+ prop TabName :: "Function"
+ }
+ inst iARG2 :: 0 {
+ prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
+ prop Label :: "Task function argument 2"
+ prop JSName :: "arg2"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "TSK" {0} else {1}
+ prop TabName :: "Function"
+ }
+ inst iARG3 :: 0 {
+ prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
+ prop Label :: "Task function argument 3"
+ prop JSName :: "arg3"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "TSK" {0} else {1}
+ prop TabName :: "Function"
+ }
+ inst iARG4 :: 0 {
+ prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
+ prop Label :: "Task function argument 4"
+ prop JSName :: "arg4"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "TSK" {0} else {1}
+ prop TabName :: "Function"
+ }
+ inst iARG5 :: 0 {
+ prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
+ prop Label :: "Task function argument 5"
+ prop JSName :: "arg5"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "TSK" {0} else {1}
+ prop TabName :: "Function"
+ }
+ inst iARG6 :: 0 {
+ prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
+ prop Label :: "Task function argument 6"
+ prop JSName :: "arg6"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "TSK" {0} else {1}
+ prop TabName :: "Function"
+ }
+ inst iARG7 :: 0 {
+ prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
+ prop Label :: "Task function argument 7"
+ prop JSName :: "arg7"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "TSK" {0} else {1}
+ prop TabName :: "Function"
+ }
+ inst iAUTOSTK :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Automatically allocate stack"
+ prop JSName :: "autoAllocateStack"
+ prop Set :: (if (($1 == 1) && (self.iAUTOSTK == 0)) {self.iSTKSZ = TSK.STACKSIZE} , self.iAUTOSTK = $1, "ok")
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "TSK" {0} else {1}
+ }
+ inst iMANSTK :: @null {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Manually allocated stack"
+ prop JSName :: "manualStack"
+ prop Visible :: 1
+ prop Writable :: self.iAUTOSTK == 0
+ }
+ inst iSTKSZ :: TSK.STACKSIZE {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: if GBL.DSPTYPE == 54 {0x01} else {0x02}
+ prop Label :: "Stack size (MAUs)"
+ prop JSName :: "stackSize"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop Set :: ($a = $1, if ($a < 32) {if (GBL.DSPSUBTYPE == 62) {self.error("Task stack size is too small.")} else {if ($a < 32) {self.error("Task stack size is too small.")} else {self.iSTKSZ = ($1 - ($1 - 1) % 8 + 7), GlobalStatus.gDirty = 1, "ok"}}} else {self.iSTKSZ = ($1 - ($1 - 1) % 8 + 7), GlobalStatus.gDirty = 1, "ok"})
+ }
+ inst iSTKSEG :: = self.OBJMEMSEG {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: $1 == MEM_NULL || MEM.dataMember($1)
+ prop Label :: "Stack Memory Segment"
+ prop JSName :: "stackMemSeg"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ inst iPRI :: TSK.PRIORITY {
+ prop Label :: "Priority"
+ prop JSName :: "priority"
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop Set :: (if (self == TSK_idle) {if ($1 == 0) {"ok"} else {self.error("Cannot change the priority of the idle task.")}} else {if ($1 == 0) {self.error("Priority 0 is reserved for the system idle task")} else {self.iPRI = $1, "ok"}})
+ }
+ inst iENV :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Environment pointer"
+ prop JSName :: "envPointer"
+ prop Visible :: 1
+ prop Writable :: self.iDelUser != "TSK"
+ prop TabName :: "Advanced"
+ }
+ inst iEXITFLAG :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Don't shut down system while this task is still running"
+ prop JSName :: "exitFlag"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop TabName :: "Advanced"
+ }
+ inst iUSETSKNAME :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Allocate Task Name on Target"
+ prop JSName :: "allocateTaskName"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop TabName :: "Advanced"
+ }
+ inst iSTATREG :: = GBL.CACHE {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: "0x%08x"
+ prop Label :: "Initial Status Register value"
+ prop Visible :: 0
+ prop Writable :: 1
+ }
+ inst Order :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "order"
+ prop NoGen :: 0
+ prop Writable :: 1
+ }
+ inst filter :: 2 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "filter"
+ prop NoGen :: 0
+ }
+ inst maxformat :: self.STSGetMaxFmt() {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "maxformat"
+ prop NoGen :: 0
+ }
+ inst sumformat :: self.STSGetSumFmt() {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "sumformat"
+ prop NoGen :: 0
+ }
+ inst avgformat :: self.STSGetAvgFmt() {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "avgformat"
+ prop NoGen :: 0
+ }
+ inst filtmaxmult :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "filtmaxmult"
+ prop NoGen :: 0
+ }
+ inst filtsummult :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "filtsummult"
+ prop NoGen :: 0
+ }
+ inst unittype :: self.uType() {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "unittype"
+ prop NoGen :: 0
+ }
+}
+
+object TSK_idle :: TSK {
+ param iComment :: "This is the idle task; it only runs when no other task is ready"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "TSK"
+ param iDelMsg :: "This task executes all IDL functions and cannot be deleted"
+ param iFXN :: @IDL_F_loop
+ param iARG0 :: 0
+ param iARG1 :: 0
+ param iARG2 :: 0
+ param iARG3 :: 0
+ param iARG4 :: 0
+ param iARG5 :: 0
+ param iARG6 :: 0
+ param iARG7 :: 0
+ param iAUTOSTK :: 1
+ param iMANSTK :: @null
+ param iSTKSZ :: 1024
+ param iSTKSEG :: IRAM
+ param iPRI :: 0
+ param iENV :: 0
+ param iEXITFLAG :: 1
+ param iUSETSKNAME :: 0
+ param Order :: 0
+ param filter :: 2
+ param maxformat :: "%g inst"
+ param sumformat :: "%g inst"
+ param avgformat :: "%.2f inst"
+ param filtmaxmult :: 1
+ param filtsummult :: 1
+ param unittype :: 0
+}
+
+object KNL_swi :: SWI {
+ param iComment :: "This Software Interrupt calls the TSK scheduler"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "TSK"
+ param iDelMsg :: "This object cannot be deleted in DSP/BIOS."
+ param function :: @_KNL_run
+ param pri :: 0
+ param mailbox :: 0
+ param arg0 :: 0
+ param arg1 :: 0
+ param dorta :: 1
+ param Order :: 0
+ param filter :: 2
+ param maxformat :: "%g inst"
+ param sumformat :: "%g inst"
+ param avgformat :: "%.2f inst"
+ param filtmaxmult :: 1
+ param filtsummult :: 1
+ param unittype :: 0
+}
+
+type IDL {
+ isa ObjectMgr
+ prop Label :: "IDL - Idle Function Manager"
+ prop name :: "IDL"
+ prop IsContainedIn :: SCH
+ prop GlobalIcon :: 111
+ prop InstanceIcon :: 112
+ prop GlobalHelpTopic :: (106)
+ prop InstanceHelpTopic :: (206)
+ prop InstancePropertyPage :: ("{586735F1-770B-11d0-A61F-0000C070F3E9}")
+ prop GlobalPropertyPage :: ("{586735F0-770B-11d0-A61F-0000C070F3E9}")
+ prop objectSize :: (if (GBL.DSPTYPE == 55 || GBL.DSPTYPE == 28) {$a = (2 * 4)} else {$a = (1 * 4)}, $a)
+ prop GenLinkPrologue :: ("SECTIONS {%4t\n.%1L: {%8t\n %4S %4t\n} > %3s%5s, RUN_START(%1U_A_TABBEG)\0, name, _objSize, _memSeg, _linkString, _pageString")
+ prop GenLinkEpilogue :: ("%4t\n.%1Lcal: {%8t\n %4S %4t\n} > %3s%5s, RUN_START(%1U_A_CALBEG) %0t\n}\n%6S\n\0, name, _objSize, _memSeg, _linkCalString, _pageString, _nilBusyObj")
+ prop _linkString :: "*(.%1L)"
+ prop _linkCalString :: "*(.%1Lcal)"
+ prop _pageString :: if GBL.DSPTYPE == 62 {""} else {if (GBL.DSPTYPE == 55 || GBL.DSPTYPE == 28) {(if IDL.OBJMEMSEG.space() == "code" {" PAGE 0"} else {if IDL.OBJMEMSEG.space() == "data" {" PAGE 1"} else {if IDL.OBJMEMSEG.space() == "io" {" PAGE 2"} else {" PAGE 0"}}})} else {" PAGE 1"}}
+ prop _nilBusyObj :: (if ((IDL.USEIDLBUSYOBJ == 0) && (GBL.ROM == 1)) {"IDL_busyObj = 0;\n"} else {""})
+ prop _memSeg :: IDL.OBJMEMSEG
+ prop _objSize :: if GBL.DSPTYPE == 55 {(2 * self.objectSize())} else {self.objectSize()}
+ prop dataSize :: (self.objectSize() * (IDL.gNumOf + 1))
+ prop maxObjs :: (32767)
+ prop SortByField :: "iPri"
+ prop SortGroups :: 1
+ prop idlFxnSum :: ($a = 0, scan ($i; IDL) {$a += $i.cycles}, $a)
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 3 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global AUTOCALCULATE :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Auto calculate idle loop instruction count"
+ prop JSName :: "AUTOCALCULATE"
+ prop Visible :: 1
+ prop Writable :: CLK.USETIMER
+ prop Set :: (if ($1 == 1 && CLK.USETIMER == 0) {self.error("CLK must be enabled to do idle loop intruction count")} else {if ($1 == 1 && GBL.ENABLEINST == 0) {self.error("Real Time Analysis must be enabled to do idle loop instruction count")} else {self.AUTOCALCULATE = $1, "ok"}})
+ prop NoGen :: 1
+ }
+ global USECLKIDLTIME :: = IDL.AUTOCALCULATE {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global USEIDLBUSYOBJ :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CALIBRFXN :: = (if (IDL.AUTOCALCULATE == 1) {if TSK.USETSK {@IDL_F_stub} else {@IDL_F_calibrate}} else {@GBL_NULL}) {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Idle Loop Auto-Calibrate Function"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global CALIBRERROR :: = (if (GBL.DSPTYPE == 62 && IDL.CALIBRFXN == @IDL_F_stub) {6} else {0}) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Idle Loop Auto-Calibrate Error"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global LOOPOVERHEAD :: 0 {
+ prop Label :: "Idle Loop Instruction Count"
+ prop JSName :: "LOOPINSTCOUNT"
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: self.AUTOCALCULATE == 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst function :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "fxn"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ }
+ inst cycles :: 0 {
+ prop Label :: "CPU cycles"
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: if (self.iDelUser == "USER") {1} else {0}
+ prop NoGen :: 1
+ }
+ inst calibration :: 1 {
+ prop Label :: "Include in CPU load calibration"
+ prop JSName :: "calibration"
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: if (self.iDelUser == "USER") {1} else {0}
+ prop NoGen :: 0
+ }
+ inst Order :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "order"
+ prop NoGen :: 1
+ prop Writable :: 1
+ }
+ inst iPri :: 0 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop NoGen :: 1
+ }
+}
+
+object IDL_cpuLoad :: IDL {
+ param iComment :: "This object is required by the system to acquire CPU load data"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "IDL"
+ param iDelMsg :: "This object is required to compute CPU load and can't be deleted"
+ param function :: @IDL_F_busy
+ param cycles :: 0
+ param calibration :: 1
+ param Order :: 0
+ param iPri :: 0
+}
+
+object IDL_busyObj :: STS {
+ param iComment :: "This object is required by the system to accumulate CPU load statistics"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "IDL"
+ param iDelMsg :: "This object is required to accumulate CPU load data and can't be deleted"
+ param prev :: 0
+ param format :: "%g"
+ param filter :: 1
+ param maxformat :: "%g"
+ param sumformat :: "%g"
+ param avgformat :: "%.2f"
+ param unittype :: "Not time based"
+ param operation :: "Nothing"
+ param iA :: 1
+ param iB :: 0
+ param iC :: 1
+ param prevhigh :: 0
+ param prevlow :: 0
+}
+
+type ISRC {
+ isa ObjectMgr
+ prop name :: "ISRC"
+ prop Label :: "ISRC - Interrupt Sources"
+ prop IsConfMod :: 1
+ prop Visible :: 0
+ prop InstancePropertyPage :: ("{91BA37C0-98C3-11d1-988B-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{91BA37C1-98C3-11d1-988B-0020AFEE33C6}")
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iHwi :: HWI_UNUSED {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: HWI
+ prop MemberTest :: 1
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iIntrSelectNum :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+}
+
+object Reset :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_RESET
+ param iIntrSelectNum :: -1
+}
+
+object Non_Maskable :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_NMI
+ param iIntrSelectNum :: -1
+}
+
+object Reserved :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_RESERVED0
+ param iIntrSelectNum :: -1
+}
+
+object Host_Port_Host_to_DSP :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT13
+ param iIntrSelectNum :: 0
+}
+
+object DSPINT :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 0
+}
+
+object Timer_0 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT14
+ param iIntrSelectNum :: 1
+}
+
+object Timer_1 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT15
+ param iIntrSelectNum :: 2
+}
+
+object EMIF_SDRAM_Timer :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT10
+ param iIntrSelectNum :: 3
+}
+
+object External_Pin_4 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 4
+}
+
+object External_Pin_5 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT5
+ param iIntrSelectNum :: 5
+}
+
+object External_Pin_6 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT6
+ param iIntrSelectNum :: 6
+}
+
+object External_Pin_7 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT7
+ param iIntrSelectNum :: 7
+}
+
+object EDMA_Controller :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT8
+ param iIntrSelectNum :: 8
+}
+
+object HSRTDX11 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT11
+ param iIntrSelectNum :: 10
+}
+
+object HSRTDX12 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT12
+ param iIntrSelectNum :: 11
+}
+
+object MCSP_0_Transmit :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 12
+}
+
+object MCSP_0_Receive :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 13
+}
+
+object MCSP_1_Transmit :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 14
+}
+
+object MCSP_1_Receive :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_INT4
+ param iIntrSelectNum :: 15
+}
+
+object GPIO_Interrupt_0 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 16
+}
+
+object I2C_Interrupt_0 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 22
+}
+
+object I2C_Interrupt_1 :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 23
+}
+
+object MCASP_0_Transmit :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 28
+}
+
+object MCASP_0_Receive :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 29
+}
+
+object MCASP_1_Transmit :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 30
+}
+
+object MCASP_1_Receive :: ISRC {
+ param iComment :: "<add comments here>"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param iHwi :: HWI_UNUSED
+ param iIntrSelectNum :: 31
+}
+
+type LOG {
+ isa ObjectMgr
+ prop name :: "LOG"
+ prop Label :: "LOG - Event Log Manager"
+ prop IsContainedIn :: INS
+ prop GlobalIcon :: 113
+ prop InstanceIcon :: 114
+ prop InstanceHelpTopic :: (207)
+ prop GlobalHelpTopic :: (107)
+ prop InstancePropertyPage :: ("{B7240DE8-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop GlobalPropertyPage :: ("{B7240DE9-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop maxObjs :: (32767)
+ prop AllocType :: ("1\0, _globalAllocDesc, _memSeg, _placement")
+ prop _globalAllocDesc :: ("%8t .%1L: RUN_START(%1U_A_TABBEG), RUN_START(_%1U_A_TABBEG), RUN_END(%1U_A_TABEND), RUN_END(_%1U_A_TABEND) {%8t\n }\0, name")
+ prop objectSize :: (if (GBL.DSPTYPE == 28 || (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") || (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE")) {$a = (10 * 4)} , if (GBL.DSPTYPE == 62 || GBL.DSPTYPE == 54 || (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL")) {$a = (6 * 4)} , $a)
+ prop _placement :: (0x7fffffff / 2)
+ prop AllocInst :: ("1\0, _instAllocDesc, _objMemSeg, _placement")
+ prop GenLinkEpilogue :: ("%0tLOG_A_TABLEN = %1d; _LOG_A_TABLEN = %1d;\n\0, numInst")
+ prop _instAllocDesc :: ("%8t /* %0s buffer */\n .%0s$buf: align = 0x%1x {}\0, _objAlign")
+ prop _objSize :: if GBL.DSPTYPE == 55 {(2 * self.objectSize())} else {self.objectSize()}
+ prop _memSeg :: LOG.OBJMEMSEG
+ prop _linkString :: if self.gNumOf > 0 {"*(.%1L)"} else {"/* no %1U objects */"}
+ prop _objAlign :: if GBL.DSPTYPE == 55 {self.buflen * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE) * 2} else {self.buflen * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE)}
+ prop _objMemSeg :: self.bufseg
+ prop LogType :: self.iType
+ prop LogFormat :: self.iFormat
+ prop pageString :: (if GBL.DSPTYPE == 62 {""} else {if (GBL.DSPTYPE == 55 || GBL.DSPTYPE == 28) {(if LOG.OBJMEMSEG.space() == "code" {" PAGE 0"} else {if LOG.OBJMEMSEG.space() == "data" {" PAGE 1"} else {if LOG.OBJMEMSEG.space() == "io" {" PAGE 2"} else {" PAGE 0"}}})} else {" PAGE 1"}})
+ prop numInst :: (LOG.gNumOf)
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"log.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far LOG_Obj %0r;\n\0"} else {"extern LOG_Obj %0r;\n\0"})
+ prop dataSize :: ($d = 0, scan ($i; LOG) {if ($i.IsConfObj()) {$d += $i.buflen} , $d += self.objectSize()}, $d)
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global ENABLED :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Compile in logging"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global TS :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "timestamped LOGs"
+ prop JSName :: "TS"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst bufseg :: = self.OBJMEMSEG {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "bufseg"
+ prop JSName :: "bufSeg"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst buflen :: 64 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "0,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,524288,1048576,2097152,4194304,8388608,16777216,33554432"
+ prop Label :: "buflen (words)"
+ prop JSName :: "bufLen"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (GlobalStatus.gDirty = 1, self.buflen = $1, "ok")
+ }
+ inst logtype :: "circular" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "circular,fixed"
+ prop Label :: "logtype"
+ prop JSName :: "logType"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst iType :: "printf" {
+ prop Label :: "datatype"
+ prop JSName :: "dataType"
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "printf,raw data"
+ prop Visible :: 1
+ prop Writable :: if self.iType == "system" {0} else {1}
+ prop NoGen :: 0
+ }
+ inst iFormat :: "0x%x, 0x%x, 0x%x" {
+ prop Label :: "format"
+ prop JSName :: "format"
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: if self.iType == "raw data" {1} else {0}
+ prop NoGen :: 0
+ }
+}
+
+object LOG_system :: LOG {
+ param iComment :: "This object is required by the system to accumulate execution trace information"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "LOG"
+ param iDelMsg :: "LOG_system is a system log and cannot be deleted."
+ param bufseg :: IRAM
+ param buflen :: 64
+ param logtype :: "circular"
+ param iType :: "system"
+ param iFormat :: "0x%x, 0x%x, 0x%x"
+}
+
+type PIP {
+ isa ObjectMgr
+ prop Label :: "PIP - Buffered Pipe Manager"
+ prop IsContainedIn :: IOF
+ prop GlobalIcon :: 117
+ prop InstanceIcon :: 118
+ prop GlobalHelpTopic :: (109)
+ prop InstanceHelpTopic :: (209)
+ prop name :: "PIP"
+ prop maxObjs :: (32767)
+ prop objectSize :: (if (GBL.DSPTYPE == 54 && GBL.FARMODE == 0) {$a = (27 * 4)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 1) {$a = (34 * 4)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL") {$a = (30 * 4)} , if (GBL.DSPTYPE == 28 || (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") || (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE")) {$a = (50 * 4)} , if (GBL.DSPTYPE == 62) {$a = (25 * 4)} , $a)
+ prop dataSize :: ($b = 0, scan ($i; PIP) {if ($i.IsConfObj()) {$b += (12 + $i.framesize) * $i.numframes + self.objectSize()} }, $b)
+ prop InstancePropertyPage :: ("{B7240DF0-AA51-11cf-9BFE-0000C0AC14C8}")
+ prop GlobalPropertyPage :: ("{B7240DF1-AA51-11cf-9BFE-0000C0AC14C8}")
+ prop localCreate :: ("ok")
+ prop AllocType :: ("1\0, _globalAllocDesc, _memSeg, _placement")
+ prop _globalAllocDesc :: ("%8t .%1L: RUN_START(%1U_A_TABBEG), RUN_START(_%1U_A_TABBEG), RUN_END(%1U_A_TABEND), RUN_END(_%1U_A_TABEND) {%8t\n }\0, name")
+ prop AllocInst :: ("1\0, _instAllocDesc, _objMemSeg, _placement")
+ prop GenLinkEpilogue :: ("%0tPIP_A_TABLEN = %1d;\n\0, numInst")
+ prop _instAllocDesc :: (if self.bufalign > 0 {"%8t /* %0s buffer */\n .pip%1d: align = 0x%2x {}\0, _objId, _objAlign"} else {"%8t /* %0s buffer */\n .pip%1d: {}\0, _objId"})
+ prop _placement :: (0x7fffffff / 2)
+ prop _objId :: self.iId
+ prop _objAlign :: self.bufalign * 4
+ prop _objMemSeg :: self.bufseg
+ prop _linkString :: if (self.gNumOf + self.gNumEmbed) > 0 {"*(.%1L)"} else {"/* no %1U objects */"}
+ prop _memSeg :: PIP.OBJMEMSEG
+ prop _objSize :: if GBL.DSPTYPE == 55 {(2 * self.objectSize())} else {self.objectSize()}
+ prop numInst :: (HST.gNumOf + PIP.gNumOf)
+ prop mkId :: (self.iId = self.gNextId++, self.gNumOf++, self.iId)
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"pip.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far PIP_Obj %0r;\n\0"} else {"extern PIP_Obj %0r;\n\0"})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global gNumEmbed :: 2 {
+ prop NoGen :: 0
+ }
+ global gNextId :: 0
+ global OBJSIZE :: = self._objSize
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst bufseg :: = self.OBJMEMSEG {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "bufSeg"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 1
+ }
+ inst bufalign :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "bufAlign"
+ prop Style :: 0x01 | 0x02
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 1
+ prop Set :: ($e = "ok", if ($1 == 0) {$e = self.error("Cannot set align value to 0")} else {self.bufalign = $1}, $e)
+ }
+ inst buf :: "<NULL>" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst framesize :: 8 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "framesize (words)"
+ prop JSName :: "frameSize"
+ prop Style :: if GBL.DSPTYPE == 62 {0x02} else {0x01 | 0x02}
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ prop Set :: (if ($1 < 1) {self.error("framesize must be >= 1.")} else {GlobalStatus.gDirty = 1, self.framesize = $1, "ok"})
+ }
+ inst numframes :: 2 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop JSName :: "numFrames"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ prop Set :: (if ($1 < 1) {self.error("Pipes must contain at least 1 frame.")} else {GlobalStatus.gDirty = 1, self.numframes = $1, "ok"})
+ }
+ inst monitor :: "reader" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "monitor"
+ prop Enum :: "reader,writer,none"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst notifyWriter :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "notifyWriterFxn"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ prop TabName :: "Notify Functions"
+ }
+ inst nwarg0 :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "notifyWriterArg0"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ prop TabName :: "Notify Functions"
+ }
+ inst nwarg1 :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "notifyWriterArg1"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ prop TabName :: "Notify Functions"
+ }
+ inst notifyReader :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "notifyReaderFxn"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ prop TabName :: "Notify Functions"
+ }
+ inst nrarg0 :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "notifyReaderArg0"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ prop TabName :: "Notify Functions"
+ }
+ inst nrarg1 :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: "notifyReaderArg1"
+ prop Visible :: 1
+ prop Writable :: (if self.iDelUser == "USER" {1} else {0})
+ prop NoGen :: 0
+ prop TabName :: "Notify Functions"
+ }
+ inst bufFrameAlign :: = self._objAlign {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+}
+
+type SEM {
+ isa ObjectMgr
+ prop name :: "SEM"
+ prop Label :: "SEM - Semaphore Manager"
+ prop IsContainedIn :: SYN
+ prop GlobalIcon :: 137
+ prop InstanceIcon :: 138
+ prop GlobalHelpTopic :: (310)
+ prop InstanceHelpTopic :: (410)
+ prop InstancePropertyPage :: ("{D01ACC04-38DD-11d1-988B-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{D01ACC05-38DD-11d1-988B-0020AFEE33C6}")
+ prop maxObjs :: (32767)
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _globalAllocDesc, _memSeg, _placement"} )
+ prop _globalAllocDesc :: ("%8t .sem: {}")
+ prop _placement :: (0x7fffffff / 2)
+ prop _memSeg :: self.OBJMEMSEG
+ prop objectSize :: (if (GBL.DSPTYPE == 62) {$a = (8 + 3)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 1) {$a = (10 + 4)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 0) {$a = (8 + 3)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") {$a = (16 + 6)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE") {$a = (16 + 6)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL") {$a = (10 + 4)} , if (GBL.DSPTYPE == 28) {$a = (16 + 6)} , $a)
+ prop dataSize :: (SEM.objectSize * SEM.gNumOf * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE))
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"sem.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far SEM_Obj %0r;\n\0"} else {"extern SEM_Obj %0r;\n\0"})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CALLBACKOBJ :: nil {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iCount :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Label :: "Initial semaphore count"
+ prop JSName :: "count"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+}
+
+type MBX {
+ isa ObjectMgr
+ prop name :: "MBX"
+ prop Label :: "MBX - Mailbox Manager"
+ prop IsContainedIn :: SYN
+ prop GlobalIcon :: 131
+ prop InstanceIcon :: 132
+ prop GlobalHelpTopic :: (307)
+ prop InstanceHelpTopic :: (407)
+ prop InstancePropertyPage :: ("{0EB45D44-38C1-11d1-988B-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{0EB45D45-38C1-11d1-988B-0020AFEE33C6}")
+ prop maxObjs :: (32767)
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _bssAllocDesc, _memSeg, _placement"} )
+ prop _bssAllocDesc :: ("%8t .mbx: {}")
+ prop _placement :: (0x7fffffff / 2)
+ prop _memSeg :: self.OBJMEMSEG
+ prop AllocInst :: ("1\0 _instAllocDesc, _instMemSeg, _placement")
+ prop _instAllocDesc :: ("%8t .%0s$que: align = 0x4 {%12t\n %0s$queElems = .;\n . += %1d;%8t\n }\0, _qElemSize")
+ prop _instMemSeg :: self.iMbxSeg
+ prop _qElemSize :: (if ((GBL.DSPTYPE == 55) && (GBL.DSPSUBTYPE != 5599)) {$a = self.iMsgSize, if ($a & 0x1) {$a += 1} , (8 + $a) * self.iMbxLength * 2} else {if (GBL.DSPTYPE == 28) {$a = self.iMsgSize, if ($a & 0x1) {$a += 1} , (8 + $a) * self.iMbxLength} else {$a = self.iMsgSize, $b = GBL.DSPWORDSIZE / GBL.DSPCHARSIZE, $c = $a & ($b - 1), if ($c != 0) {$a = $a + ($b - $c)} , (8 + $a) * self.iMbxLength}})
+ prop objectSize :: (if (GBL.DSPTYPE == 62) {$a = (29)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 1) {$a = (28)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 0) {$a = (24)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") {$a = (46)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE") {$a = (46)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL") {$a = (28)} , if (GBL.DSPTYPE == 28) {$a = (46)} , $a)
+ prop dataSize :: ($d = 0, scan ($i; MBX) {$d += (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE) * (($i.iMsgSize + 2) * $i.iMbxLength + self.objectSize())}, $d)
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"mbx.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far MBX_Obj %0r;\n\0"} else {"extern MBX_Obj %0r;\n\0"})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CALLBACKOBJ :: nil {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iMsgSize :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Label :: "Message Size"
+ prop JSName :: "messageSize"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop Set :: (if ($1 == 0) {self.error("Message size cannot be zero")} else {GlobalStatus.gDirty = 1, self.iMsgSize = $1, "ok"})
+ }
+ inst iMbxLength :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Label :: "Mailbox Length"
+ prop JSName :: "length"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop Set :: (if ($1 == 0) {self.error("Mailbox length cannot be zero")} else {GlobalStatus.gDirty = 1, self.iMbxLength = $1, "ok"})
+ }
+ inst iMbxSeg :: MBX.OBJMEMSEG {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Element memory segment"
+ prop JSName :: "elementSeg"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+}
+
+type QUE {
+ isa ObjectMgr
+ prop name :: "QUE"
+ prop Label :: "QUE - Atomic Queue Manager"
+ prop IsContainedIn :: SYN
+ prop GlobalIcon :: 133
+ prop InstanceIcon :: 134
+ prop IsConfMod :: 1
+ prop GlobalHelpTopic :: (309)
+ prop InstanceHelpTopic :: (409)
+ prop InstancePropertyPage :: ("{D01ACC01-38DD-11d1-988B-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{D01ACC02-38DD-11d1-988B-0020AFEE33C6}")
+ prop maxObjs :: (32767)
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _globalAllocDesc, _memSeg, _placement"} )
+ prop _globalAllocDesc :: ("%8t .que: {}")
+ prop _placement :: (0x7fffffff / 2)
+ prop _memSeg :: self.OBJMEMSEG
+ prop objectSize :: (if (GBL.DSPTYPE == 62) {$a = (2)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 1) {$a = (2)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 0) {$a = (2)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") {$a = (4)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE") {$a = (4)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL") {$a = (2)} , if (GBL.DSPTYPE == 28) {$a = (4)} , $a)
+ prop dataSize :: (QUE.objectSize * QUE.gNumOf * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE))
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"que.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far QUE_Obj %0r;\n\0"} else {"extern QUE_Obj %0r;\n\0"})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CALLBACKOBJ :: nil {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+type LCK {
+ isa ObjectMgr
+ prop name :: "LCK"
+ prop Label :: "LCK - Resource Lock Manager"
+ prop IsContainedIn :: SYN
+ prop GlobalIcon :: 129
+ prop InstanceIcon :: 130
+ prop IsConfMod :: 1
+ prop GlobalHelpTopic :: (306)
+ prop InstanceHelpTopic :: (406)
+ prop InstancePropertyPage :: ("{0EB45D40-38C1-11d1-988B-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{0EB45D41-38C1-11d1-988B-0020AFEE33C6}")
+ prop maxObjs :: (32767)
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _bssAllocDesc, _memSeg, _placement"} )
+ prop _bssAllocDesc :: ("%8t .lck: {}")
+ prop _objAllocDesc :: ("%8t .LCK$obj: {}")
+ prop _placement :: (0x7fffffff / 2)
+ prop _memSeg :: self.OBJMEMSEG
+ prop objectSize :: (if (GBL.DSPTYPE == 62) {$a = (10)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 1) {$a = (12)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 0) {$a = (10)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") {$a = (20)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE") {$a = (20)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL") {$a = (12)} , if (GBL.DSPTYPE == 28) {$a = (20)} , $a)
+ prop dataSize :: (LCK.objectSize * LCK.gNumOf * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE))
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"lck.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far LCK_Obj %0r;\n\0"} else {"extern LCK_Obj %0r;\n\0"})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CALLBACKOBJ :: nil {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+type STS {
+ isa ObjectMgr
+ prop name :: "STS"
+ prop Label :: "STS - Statistics Object Manager"
+ prop IsContainedIn :: INS
+ prop GlobalIcon :: 125
+ prop InstanceIcon :: 126
+ prop InstanceHelpTopic :: (212)
+ prop GlobalHelpTopic :: (112)
+ prop AllocType :: ("1\0, _globalAllocDesc, _memSeg, _placement")
+ prop _globalAllocDesc :: ("%8t .%1L: RUN_START(%1U_A_TABBEG), RUN_START(_%1U_A_TABBEG), RUN_END(%1U_A_TABEND), RUN_END(_%1U_A_TABEND) {%8t\n }\0, name")
+ prop localInit :: (if (PRD.CALLBACKOBJ != nil) {self.error("STS initialization failure")} , PRD.CALLBACKOBJ = STS)
+ prop objectSize :: ((4 * 4))
+ prop _placement :: (0x7fffffff / 2)
+ prop _linkString :: if self.gNumOf > 0 {"*(.%1L)"} else {"/* no %1U objects */"}
+ prop _memSeg :: STS.OBJMEMSEG
+ prop _objSize :: if GBL.DSPTYPE == 55 {(2 * self.objectSize())} else {self.objectSize()}
+ prop dataSize :: (self.objectSize() * (STS.gNumOf + STS.gNumEmbed))
+ prop maxObjs :: (32767)
+ prop InstancePropertyPage :: ("{B7240DEE-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop GlobalPropertyPage :: ("{B7240DEF-AA51-11cf-9BFE-0000C0AC14C7}")
+ prop STSGetMaxFmt :: (self.format)
+ prop STSGetSumFmt :: (self.format)
+ prop STSGetAvgFmt :: ("%.2f")
+ prop STSFilterSum :: ((self.iA * $1 + self.iB * $2) / (1.0 * self.iC))
+ prop STSFilterMax :: ((self.iA * $1 + self.iB) / (1.0 * self.iC))
+ prop HighTimeBased :: (if self.unittype == "High resolution time based" {1} else {0})
+ prop LowTimeBased :: (if self.unittype == "Low resolution time based" {1} else {0})
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"sts.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far STS_Obj %0r;\n\0"} else {"extern STS_Obj %0r;\n\0"})
+ prop modifiable :: ((if (self.iDelUser == "USER" || self.iDelUser == "HWI") {1} else {0}))
+ prop untype :: (if (self.unittype == "Not time based") {$a = 2} , if (self.unittype == "High resolution time based") {$a = 0} , if (self.unittype == "Low resolution time based") {$a = 1} , $a)
+ prop optype :: (if (self.operation == "Nothing") {$a = 0} , if (self.operation == "A * x") {$a = 1} , if (self.operation == "A * x + B") {$a = 2} , if (self.operation == "(A * x + B) / C") {$a = 3} , $a)
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global gNumEmbed :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst prev :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: self.modifiable()
+ prop JSName :: "previousVal"
+ prop NoGen :: GBL.DSPTYPE != 40 && GBL.DSPTYPE != 62
+ prop Set :: (self.prev = $1, self.prevlow = $1 & 0xffff, self.prevhigh = ($1 >> 16) & 0xffff, "ok")
+ }
+ inst format :: "%g" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "format"
+ prop NoGen :: 1
+ }
+ inst filter :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "filter"
+ prop NoGen :: 0
+ }
+ inst maxformat :: "%g" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "maxformat"
+ prop NoGen :: 0
+ }
+ inst sumformat :: "%g" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "sumformat"
+ prop NoGen :: 0
+ }
+ inst avgformat :: "%.2f" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop Label :: "avgformat"
+ prop NoGen :: 0
+ }
+ inst unittype :: "Not time based" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "Not time based,High resolution time based,Low resolution time based"
+ prop Label :: "unit type"
+ prop JSName :: "unitType"
+ prop Visible :: 1
+ prop Writable :: self.modifiable()
+ prop NoGen :: 1
+ prop Set :: (self.unittype = $1, if ($1 == "High resolution time based") {self.iA = 1, self.iB = 0, self.iC = 1, self.operation = "A * x"} else {if ($1 == "Low resolution time based") {self.iA = 1, self.iB = 0, self.iC = 1, self.operation = "A * x"} else {self.iA = 1, self.iB = 0, self.iC = 1, self.operation = "Nothing"}}, "ok")
+ }
+ inst operation :: "Nothing" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "Nothing,A * x,A * x + B,(A * x + B) / C"
+ prop Label :: "host operation"
+ prop JSName :: "operation"
+ prop Visible :: 1
+ prop Writable :: ((self.unittype != "Low resolution time based") && self.modifiable())
+ prop NoGen :: 1
+ prop Set :: (self.operation = $1, if ($1 == "Nothing" && self.unittype != "High resolution time based") {self.iA = 1, self.iB = 0, self.iC = 1} else {if ($1 == "A * x") {self.iB = 0, self.iC = 1} else {if ($1 == "A * x + B") {self.iC = 1} }}, "ok")
+ }
+ inst op :: = self.optype() {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst uType :: = self.untype() {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst iA :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: (self.modifiable() && !(self.unittype != "Not time based" || self.operation == "Nothing"))
+ prop Label :: "A"
+ prop JSName :: "numA"
+ prop NoGen :: 0
+ }
+ inst iB :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: (self.modifiable() && !(self.unittype == "Low resolution time based" || self.operation == "Nothing" || self.operation == "A * x"))
+ prop Label :: "B"
+ prop JSName :: "numB"
+ prop NoGen :: 0
+ }
+ inst iC :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: (self.modifiable() && (self.unittype == "Not time based" && self.operation == "(A * x + B) / C"))
+ prop Label :: "C"
+ prop JSName :: "numC"
+ prop NoGen :: 0
+ }
+ inst prevhigh :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: GBL.DSPTYPE == 40 || GBL.DSPTYPE == 62
+ }
+ inst prevlow :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+}
+
+type SYS {
+ isa Module
+ prop name :: "SYS"
+ prop Label :: "SYS - System Settings"
+ prop IsContainedIn :: SYSTEM
+ prop GlobalIcon :: 141
+ prop InstanceIcon :: 142
+ prop IsConfMod :: 1
+ prop GlobalHelpTopic :: (313)
+ prop InstanceHelpTopic :: (413)
+ prop InstancePropertyPage :: ("{473C4A62-B1A8-11d0-9885-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{473C4A63-B1A8-11d0-9885-0020AFEE33C6}")
+ prop AllocType :: (if self.PUTCFXN == @_UTL_doPutc {"2\0, _globalAllocDesc, _memSeg, _midPlace, _traceString, _traceSeg, _midPlace"} else {"1\0, _globalAllocDesc, _memSeg, _midPlace"})
+ prop _globalAllocDesc :: ("%8t .sys: {}")
+ prop _traceString :: ("%8t .trace: fill = 0x0 align = 0x4 {%12t\n_SYS_PUTCBEG = .;\n. += 0x%1x;\n_SYS_PUTCEND = . - 1;%8t\n }\0, _traceSize")
+ prop _midPlace :: (0x7fffffff / 2)
+ prop _memSeg :: MEM.CFGOBJSEG
+ prop _traceSeg :: SYS.TRACESEG
+ prop _traceSize :: SYS.TRACESIZE
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CALLBACKOBJ :: nil {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global TRACESIZE :: 512 {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Format :: "%d"
+ prop Style :: 0x01 | 0x02
+ prop Label :: "Trace Buffer Size"
+ prop JSName :: "TRACESIZE"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global TRACESEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Trace Buffer Memory"
+ prop JSName :: "TRACESEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global ABORTFXN :: @_UTL_doAbort {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Abort Function"
+ prop JSName :: "ABORTFXN"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global ERRORFXN :: @_UTL_doError {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Error Function"
+ prop JSName :: "ERRORFXN"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global EXITFXN :: @_UTL_halt {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Exit Function"
+ prop JSName :: "EXITFXN"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global PUTCFXN :: @_UTL_doPutc {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Putc Function"
+ prop JSName :: "PUTCFXN"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+}
+
+type SIO {
+ isa ObjectMgr
+ prop name :: "SIO"
+ prop Label :: "SIO - Stream Input and Output Manager"
+ prop IsContainedIn :: IOF
+ prop DependsOn :: "DIO,DGN,DHL,DPI"
+ prop GlobalIcon :: 139
+ prop InstanceIcon :: 140
+ prop GlobalHelpTopic :: (311)
+ prop InstanceHelpTopic :: (411)
+ prop InstancePropertyPage :: ("{7C4C9A60-763E-11d1-988B-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{7C4C9A61-763E-11d1-988B-0020AFEE33C6}")
+ prop maxObjs :: (32767)
+ prop AllocType :: (if (self.gNumOf > 0) {"2\0, _bssAllocDesc, _memSeg, _placement,
+ _objAllocDesc, _memSeg, _placement"} )
+ prop _bssAllocDesc :: ("%8t .SIO$bss: {%12t\n *(.SIO$bss)%8t\n }")
+ prop _objAllocDesc :: ("%8t .SIO$obj: {%12t\n *(.SIO$obj)%8t\n }")
+ prop _placement :: (0x7fffffff / 2)
+ prop _memSeg :: self.OBJMEMSEG
+ prop AllocInst :: ("1\0, _instBufDesc, _instBufSeg, _placement")
+ prop _instBufDesc :: (if self.iAlign > 1 {"%8t .%0s$bufs: align = 0x%1x {}\0, _objAlign"} else {"%8t .%0s$bufs: {}"})
+ prop _objAlign :: self.iAlign
+ prop _instBufSeg :: self.iBufSegid
+ prop defDev :: ($h = nil, $i = nil, $j = nil, scan ($h; nil) {if ($h.isDriver == 1) {scan ($i; $h) {if ($j == nil && $i.iIsTerminal != 0 && $i.iIsVirtual == 0) {$j = $i, break} }} }, $j)
+ prop devList :: ($h = nil, $i = nil, $j = nil, scan ($h; nil) {if ($h.isDriver == 1) {scan ($i; $h) {if ($j == nil && $i.iIsTerminal != 0 && $i.iIsVirtual == 0) {$j = $i, scan ($a; DIO) {if ($a == $i) {$i.numTimeUse++} }, break} }} }, $j)
+ prop setDev :: ($h = nil, $i = nil, $j = nil, scan ($h; nil) {if ($h.isDriver == 1) {scan ($i; $h) {if ($i == $1) {$j = $i} }} }, $j)
+ prop localCanCreate :: (if (self.defDev == nil) {self.error("A driver device must be created before creating a stream.")} else {"ok"})
+ prop localDelete :: (scan ($a; DIO) {if ($a == self.iDevice) {self.iDevice.numTimeUse--} }, "ok")
+ prop cGen :: 1
+ prop cHeaderName :: if self.gNumOf > 0 {"sio.h"} else {""}
+ prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far SIO_Obj %0r;\n\0"} else {"extern SIO_Obj %0r;\n\0"})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumEmbed :: 0 {
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global USEISSUERECLAIM :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Use Only Issue/Reclaim Model"
+ prop JSName :: "USEISSUERECLAIM"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: (self.USEISSUERECLAIM = $1, if ($1 == 1) {scan ($i; SIO) {$i.iModelName = "Issue/Reclaim"}} , "ok")
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDevice :: SIO.devList {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop TypeTest :: $1.isDriver == 1
+ prop MemberTest :: $1.driverType != "DEV_IOMTYPE"
+ prop Label :: "Device"
+ prop JSName :: "deviceName"
+ prop Set :: (if (($1.iIsTerminal == 0) && (self.iDevCtrlParam == "")) {self.error("To select a stacking device, enter first a terminal device in Device Control String")} else {if ($1.iIsVirtual == 1) {self.error("The device you have selected is a virtual instance, you must select a non-virtual device")} else {scan ($a; DIO) {if ($a == self.iDevice) {self.iDevice.numTimeUse--} }, scan ($b; DIO) {if ($b == $1) {$1.numTimeUse++} }, self.iDevice = self.setDev($1), "ok"}})
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ inst iDevCtrlParam :: "" {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Device Control String"
+ prop JSName :: "controlParameter"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ inst iDevId :: = self.iDevice.iDevId
+ inst iFxns :: = self.iDevice.iFxns
+ inst iMode :: "input" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "input,output"
+ prop Label :: "Mode"
+ prop JSName :: "mode"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ inst iBufsize :: 0x80 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x02
+ prop Label :: "Buffer size"
+ prop JSName :: "bufSize"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ inst iNbufs :: 2 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Label :: "Number of buffers"
+ prop JSName :: "numBufs"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ inst iBufSegid :: = self.OBJMEMSEG {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Place buffers in memory segment"
+ prop JSName :: "bufSegId"
+ prop Visible :: 1
+ prop Writable :: self.iAllocBuf == 1
+ }
+ inst iAlign :: 1 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768"
+ prop Label :: "Buffer alignment"
+ prop JSName :: "bufAlign"
+ prop Visible :: 1
+ prop Writable :: self.iAllocBuf == 1
+ }
+ inst iFlush :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Flush"
+ prop JSName :: "flush"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ inst iModelName :: "Standard" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "Standard,Issue/Reclaim"
+ prop Label :: "Model"
+ prop JSName :: "modelName"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: ($e = "ok", if (self.USEISSUERECLAIM == 1) {if ($1 == "Standard") {$e = self.error("SIO Issue/Reclaim model support selected")} else {self.iModel = if $1 == "Standard" {"SIO_STANDARD"} else {"SIO_ISSUERECLAIM"}, self.iModelName = $1}} else {self.iModel = if $1 == "Standard" {"SIO_STANDARD"} else {"SIO_ISSUERECLAIM"}, self.iModelName = $1}, $e)
+ }
+ inst iAllocBuf :: = self.iSaveAllocBuf {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Allocate Static Buffer(s)"
+ prop JSName :: "allocStaticBuf"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop Set :: (self.iSaveAllocBuf = $1, "ok")
+ }
+ inst iSaveAllocBuf :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst iModel :: "SIO_STANDARD" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "SIO_STANDARD,SIO_ISSUERECLAIM"
+ prop Visible :: 0
+ prop Writable :: 0
+ }
+ inst iTimeout :: = if self.iModel == "SIO_ISSUERECLAIM" {self.iSaveTimeout} else {-1} {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Timeout for I/O operation"
+ prop JSName :: "timeout"
+ prop Visible :: 1
+ prop Writable :: self.iModel == "SIO_ISSUERECLAIM"
+ prop Set :: (self.iSaveTimeout = $1, "ok")
+ }
+ inst iSaveTimeout :: -1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst useCallBackFxn :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "use callback function"
+ prop JSName :: "useCallBackFxn"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop TabName :: "Callback"
+ }
+ inst callBackFxn :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "callback function"
+ prop JSName :: "callBackFxn"
+ prop Visible :: 1
+ prop Writable :: self.useCallBackFxn
+ prop NoGen :: 0
+ prop TabName :: "Callback"
+ }
+ inst arg0 :: 0 {
+ prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
+ prop Label :: "argument 0"
+ prop JSName :: "arg0"
+ prop Visible :: 1
+ prop Writable :: self.useCallBackFxn
+ prop NoGen :: 0
+ prop TabName :: "Callback"
+ }
+ inst arg1 :: 0 {
+ prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
+ prop Label :: "argument 1"
+ prop JSName :: "arg1"
+ prop Visible :: 1
+ prop Writable :: self.useCallBackFxn
+ prop NoGen :: 0
+ prop TabName :: "Callback"
+ }
+}
+
+type GIO {
+ isa Module
+ prop Visible :: 1
+ prop name :: "GIO"
+ prop Label :: "GIO - General Input/Output Manager"
+ prop IsConfMod :: self.USEGIO
+ prop IsContainedIn :: IOF
+ prop DependsOn :: "UDEV"
+ prop GlobalIcon :: 141
+ prop InstanceIcon :: 142
+ prop GlobalHelpTopic :: (320)
+ prop InstanceHelpTopic :: (420)
+ prop InstancePropertyPage :: ("{473C4A62-B1A8-11d0-9885-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{473C4A63-B1A8-11d0-9885-0020AFEE33C6}")
+ prop AllocType :: ("1\0, _globalAllocDesc, _memSeg, _midPlace")
+ prop _globalAllocDesc :: ("%8t .gio: {}")
+ prop _midPlace :: (0x7fffffff / 2)
+ prop _memSeg :: MEM.CFGOBJSEG
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global CALLBACKOBJ :: nil {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global USEGIO :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable General Input/Output Manager"
+ prop JSName :: "ENABLEGIO"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global CREATEFXN :: = if self.USEGIO == 1 {@_SEM_create} else {@_FXN_F_nop} {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Create Function"
+ prop JSName :: "CREATEFXN"
+ prop Visible :: 1
+ prop Writable :: self.USEGIO
+ prop NoGen :: 0
+ }
+ global DELETEFXN :: = if self.USEGIO == 1 {@_SEM_delete} else {@_FXN_F_nop} {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Delete Function"
+ prop JSName :: "DELETEFXN"
+ prop Visible :: 1
+ prop Writable :: self.USEGIO
+ prop NoGen :: 0
+ }
+ global PENDFXN :: = if self.USEGIO == 1 {@_SEM_pend} else {@_FXN_F_nop} {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Pend Function"
+ prop JSName :: "PENDFXN"
+ prop Visible :: 1
+ prop Writable :: self.USEGIO
+ prop NoGen :: 0
+ }
+ global POSTFXN :: = if self.USEGIO == 1 {@_SEM_post} else {@_FXN_F_nop} {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Post Function"
+ prop JSName :: "POSTFXN"
+ prop Visible :: 1
+ prop Writable :: self.USEGIO
+ prop NoGen :: 0
+ }
+}
+
+type DEV {
+ isa ObjectMgr
+ prop name :: "DEV"
+ prop Visible :: 0
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _bssAllocDesc, _memSeg, _placement"} , if (self.devCount() > 0) {"1\0, _devtableDesc, _memSeg, _placement"} )
+ prop _bssAllocDesc :: ("%8t .dev: {}")
+ prop _devtableDesc :: ("%8t .devtable: {}")
+ prop _memSeg :: MEM.CFGOBJSEG
+ prop _placement :: (0x7fffffff / 2)
+ prop DependsOn :: "HWI"
+ prop devCount :: ($i = nil, $a = 0, scan ($i; nil) {if ($i.isDriver == 1) {$a = $a + $i.gNumOf} }, $a)
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+}
+
+type UDEV {
+ isa ObjectMgr
+ prop name :: "UDEV"
+ prop Label :: "User-Defined Devices"
+ prop IsContainedIn :: SIODRIVER
+ prop DependsOn :: "DEV"
+ prop GlobalIcon :: 127
+ prop InstanceIcon :: 128
+ prop GlobalHelpTopic :: (315)
+ prop InstanceHelpTopic :: (415)
+ prop InstancePropertyPage :: ("{7AE86AA0-35C0-11d1-988B-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{7AE86AA1-35C0-11d1-988B-0020AFEE33C6}")
+ prop maxObjs :: (32767)
+ prop isDriver :: (1)
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _globalAllocDesc, _memSeg, _placement"} )
+ prop _globalAllocDesc :: ("%8t .udev: {}")
+ prop _placement :: (0x7fffffff / 2)
+ prop _memSeg :: MEM.CFGOBJSEG
+ prop _driverType :: (if self.fxnTableType == "DEV_Fxns" {"DEV_SIOTYPE"} else {"DEV_IOMTYPE"})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iInit :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "init function"
+ prop JSName :: "initFxn"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: (self.iInit = $1, self.initFxn = self.iInit, "ok")
+ }
+ inst iFxns :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "function table ptr"
+ prop JSName :: "fxnTable"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ inst fxnTableType :: "DEV_Fxns" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "DEV_Fxns,IOM_Fxns"
+ prop Label :: "function table type"
+ prop JSName :: "fxnTableType"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst driverType :: = self._driverType {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: "DEV_SIOTYPE,DEV_IOMTYPE"
+ prop Visible :: 0
+ }
+ inst iDevId :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "device id"
+ prop JSName :: "deviceId"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: (self.iDevId = $1, self.deviceId = self.iDevId, "ok")
+ }
+ inst iParams :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "device params ptr"
+ prop JSName :: "params"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ inst deviceId :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: ""
+ prop Visible :: 0
+ }
+ inst initFxn :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop JSName :: ""
+ prop Visible :: 0
+ }
+ inst iIsStacking :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Stacking Device"
+ prop JSName :: "stackingDevice"
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst deviceGlobalDataPtr :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "device global data ptr"
+ prop JSName :: "deviceGlobalDataPtr"
+ prop Visible :: 1
+ prop Writable :: self.fxnTableType == "IOM_Fxns"
+ }
+ inst iIsTerminal :: = if self.fxnTableType == "DEV_Fxns" {1} else {0} {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst iIsVirtual :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+}
+
+type DIO {
+ isa ObjectMgr
+ prop Visible :: 1
+ prop Label :: "DIO - Class Driver"
+ prop name :: "DIO"
+ prop IsContainedIn :: SIODRIVER
+ prop DependsOn :: "UDEV"
+ prop GlobalIcon :: 127
+ prop InstanceIcon :: 127
+ prop GlobalHelpTopic :: (319)
+ prop InstanceHelpTopic :: (419)
+ prop InstancePropertyPage :: ("{f80273c0-3838-11d2-a32c-006097656921}")
+ prop GlobalPropertyPage :: ("{050a0600-3839-11d2-a32c-006097656921}")
+ prop maxObjs :: (32767)
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _globalAllocDesc, _memSeg, _placement"} )
+ prop _globalAllocDesc :: ("%8t .dio: {}")
+ prop _placement :: (0x7fffffff / 2)
+ prop _memSeg :: self.OBJMEMSEG
+ prop isDriver :: (1)
+ prop mdObject :: ($h = nil, $j = nil, scan ($h; UDEV) {if ($h.driverType == "DEV_IOMTYPE") {$j = $h, break} }, $j)
+ prop localCanCreate :: (if (self.mdObject == nil) {self.error("An IOM type device must be created first.")} else {"ok"})
+ prop numTsk :: ($a = 0, $h = nil, scan ($h; DIO) {if ($h.useCallBackFxn == 0) {$a = $a + $h.numTimeUse} }, $a)
+ prop numSwi :: ($a = 0, $h = nil, scan ($h; DIO) {if ($h.useCallBackFxn == 1) {$a = $a + $h.numTimeUse} }, $a)
+ prop functionTablePtr :: (if (self.STATIC) {if (self.useCallBackFxn) {@_DIO_cbStaticFxns} else {@_DIO_tskStaticFxns}} else {if (self.useCallBackFxn) {@_DIO_cbDynamicFxns} else {@_DIO_tskDynamicFxns}})
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ global STATIC :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Create all DIO Objects Statically"
+ prop JSName :: "STATICCREATE"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ global NUMTSKBASE :: = self.numTsk {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "TSK based"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ global NUMSWIBASE :: = self.numSwi {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "SWI based"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst useCallBackFxn :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "use callback version of DIO function table (for SWI)"
+ prop JSName :: "useCallBackFxn"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst fxnsTable :: = self.functionTablePtr {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst initFxn :: @_DIO_init {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst deviceName :: self.mdObject {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: UDEV
+ prop MemberTest :: $1.driverType == "DEV_IOMTYPE"
+ prop Label :: "device name"
+ prop JSName :: "deviceName"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst chanParams :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "channel parameters"
+ prop JSName :: "chanParams"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst numTimeUse :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDevId :: 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iFxns :: = self.functionTablePtr {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iIsTerminal :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst iIsVirtual :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+}
+
+type DGN {
+ isa ObjectMgr
+ prop name :: "DGN"
+ prop Label :: "DGN - Software Generator Driver"
+ prop IsContainedIn :: SIODRIVER
+ prop GlobalIcon :: 127
+ prop InstanceIcon :: 128
+ prop GlobalHelpTopic :: (302)
+ prop InstanceHelpTopic :: (402)
+ prop InstancePropertyPage :: ("{054FE166-B014-11d0-9885-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{054FE167-B014-11d0-9885-0020AFEE33C6}")
+ prop DependsOn :: "DEV"
+ prop maxObjs :: (32767)
+ prop isDriver :: (1)
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _globalAllocDesc, _memSeg, _placement"} )
+ prop _globalAllocDesc :: ("%8t .dgn: {}")
+ prop _placement :: (0x7fffffff / 2)
+ prop _memSeg :: MEM.CFGOBJSEG
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDevice :: "user" {
+ prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Enum :: if GBL.DSPARITHMETIC == "FLOAT" {"user,sine,random,constant,printFloat,printHex,printInt"} else {"user,sine,random,constant,printHex,printInt"}
+ prop Label :: "Device category"
+ prop JSName :: "device"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ prop Set :: ($a = $1, if ($a != self.iDevice) {self.iDevice = $a, self.iUserFxn = @_FXN_F_nop} , if ($a == "user") {self.iUserFxn = self.iSaveUserFxn} , if ($a == "printFloat") {self.iUserFxn = @_DGN_printFloat} , if ($a == "printHex") {self.iUserFxn = @_DGN_printHex} , if ($a == "printInt") {self.iUserFxn = @_DGN_printInt} , "ok")
+ }
+ inst iUseDefaults :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Use default parameters"
+ prop Visible :: 1
+ prop JSName :: "useDefaultParam"
+ prop Writable :: self.iDevice == "sine" || self.iDevice == "constant" || self.iDevice == "random" || self.iDevice == "user"
+ }
+ inst iDevId :: = if self.iDevice == "constant" {@DGN_CONST} else {if self.iDevice == "random" {@DGN_RAND} else {if self.iDevice == "sine" {@DGN_SINE} else {@DGN_USER}}} {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Device ID"
+ prop JSName :: "deviceId"
+ prop Visible :: 1
+ prop Writable :: 0
+ }
+ inst iIsTerminal :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst iIsVirtual :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst iConstant :: if GBL.DSPARITHMETIC == "FIXED" {1} else {1.0} {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: if GBL.DSPARITHMETIC == "FIXED" {0} else {0x04}
+ prop Format :: if GBL.DSPARITHMETIC == "FIXED" {"%d"} else {"%f"}
+ prop Label :: "Constant value"
+ prop JSName :: "constant"
+ prop Visible :: 1
+ prop Writable :: self.iUseDefaults == 0 && (self.iDevice == "constant" || self.iDevice == "user")
+ }
+ inst iRandSeed :: 1 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Seed value"
+ prop JSName :: "seedValue"
+ prop Visible :: 1
+ prop Writable :: self.iUseDefaults == 0 && (self.iDevice == "random" || self.iDevice == "user")
+ }
+ inst iRandLower :: if GBL.DSPARITHMETIC == "FIXED" {-32767} else {0.0} {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: if GBL.DSPARITHMETIC == "FIXED" {0} else {0x04}
+ prop Format :: if GBL.DSPARITHMETIC == "FIXED" {"%d"} else {"%f"}
+ prop Label :: "Lower limit"
+ prop JSName :: "lowerLimit"
+ prop Visible :: 1
+ prop Writable :: self.iUseDefaults == 0 && (self.iDevice == "random" || self.iDevice == "user")
+ }
+ inst iRandUpper :: if GBL.DSPARITHMETIC == "FIXED" {32767} else {1.0} {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: if GBL.DSPARITHMETIC == "FIXED" {0} else {0x04}
+ prop Format :: if GBL.DSPARITHMETIC == "FIXED" {"%d"} else {"%f"}
+ prop Label :: "Upper limit"
+ prop JSName :: "upperLimit"
+ prop Visible :: 1
+ prop Writable :: self.iUseDefaults == 0 && (self.iDevice == "random" || self.iDevice == "user")
+ }
+ inst iSineGain :: if GBL.DSPARITHMETIC == "FIXED" {32767} else {1.0} {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: if GBL.DSPARITHMETIC == "FIXED" {0} else {0x04}
+ prop Format :: if GBL.DSPARITHMETIC == "FIXED" {"%d"} else {"%f"}
+ prop Label :: "Gain"
+ prop JSName :: "gain"
+ prop Visible :: 1
+ prop Writable :: self.iUseDefaults == 0 && (self.iDevice == "sine" || self.iDevice == "user")
+ }
+ inst iSineFreq :: if GBL.DSPARITHMETIC == "FIXED" {1} else {1000.0} {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: if GBL.DSPARITHMETIC == "FIXED" {0} else {0x04}
+ prop Format :: if GBL.DSPARITHMETIC == "FIXED" {"%d"} else {"%f"}
+ prop Label :: "Frequency (Hz)"
+ prop JSName :: "frequency"
+ prop Visible :: 1
+ prop Writable :: self.iUseDefaults == 0 && (self.iDevice == "sine" || self.iDevice == "user")
+ }
+ inst iSinePhase :: if GBL.DSPARITHMETIC == "FIXED" {0} else {0.0} {
+ prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
+ prop Style :: if GBL.DSPARITHMETIC == "FIXED" {0} else {0x04}
+ prop Format :: if GBL.DSPARITHMETIC == "FIXED" {"%d"} else {"%f"}
+ prop Label :: "Phase (radians)"
+ prop JSName :: "phase"
+ prop Visible :: 1
+ prop Writable :: self.iUseDefaults == 0 && (self.iDevice == "sine" || self.iDevice == "user")
+ }
+ inst iSineRate :: if GBL.DSPARITHMETIC == "FIXED" {256} else {44000} {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Sample rate (samples/sec)"
+ prop JSName :: "rate"
+ prop Visible :: 1
+ prop Writable :: self.iUseDefaults == 0 && (self.iDevice == "sine" || self.iDevice == "user")
+ }
+ inst iUserFxn :: if self.iDevice == "printFloat" {@_DGN_printFloat} else {if self.iDevice == "printHex" {@_DGN_printHex} else {if self.iDevice == "printInt" {@_DGN_printInt} else {@_FXN_F_nop}}} {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "User function"
+ prop JSName :: "fxn"
+ prop Visible :: 1
+ prop Writable :: self.iDevice == "user"
+ prop Set :: (self.iUserFxn = $1, self.iSaveUserFxn = self.iUserFxn, "ok")
+ }
+ inst iSaveUserFxn :: @_FXN_F_nop {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iUserArg :: = 0 {
+ prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "User function argument"
+ prop JSName :: "arg"
+ prop Visible :: 1
+ prop Writable :: self.iDevice == "user"
+ }
+ inst iFxns :: @_DGN_FXNS {
+ prop NoGen :: 1
+ }
+}
+
+type DHL {
+ isa ObjectMgr
+ prop name :: "DHL"
+ prop Label :: "DHL - Host Link Driver"
+ prop IsContainedIn :: SIODRIVER
+ prop GlobalHelpTopic :: (303)
+ prop InstanceHelpTopic :: (403)
+ prop InstancePropertyPage :: ("{9C29DA20-90F9-11d1-988B-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{9C29DA21-90F9-11d1-988B-0020AFEE33C6}")
+ prop GlobalIcon :: 127
+ prop InstanceIcon :: 128
+ prop DependsOn :: "DEV"
+ prop Visible :: 1
+ prop isDriver :: 1
+ prop objectSize :: (if (GBL.DSPTYPE == 62) {$a = (19)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 1) {$a = (22)} , if (GBL.DSPTYPE == 54 && GBL.FARMODE == 0) {$a = (19)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "LARGE") {$a = (34)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "HUGE") {$a = (34)} , if (GBL.DSPTYPE == 55 && GBL.MEMORYMODEL == "SMALL") {$a = (22)} , if (GBL.DSPTYPE == 28) {$a = (34)} , $a)
+ prop dataSize :: (DHL.objectSize * DHL.gNumOf * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE))
+ prop localCanCreate :: (if (self.gChannelsAvailable > 0) {"ok"} else {self.warning("No HST channels are available for a new DHL device.")})
+ prop localCreate :: (self.gChannelsAvailable--, self.seizeHSTChannel(self.iHSTChannel), "ok")
+ prop seizeHSTChannel :: ($1.iDelUser = "DHL", $1.iDHLAvailable = 0, $1.notify = @_DHL_notify, $1.arg0 = $1.iId, "ok")
+ prop localDelete :: (self.gChannelsAvailable++, self.releaseHSTChannel(self.iHSTChannel), "ok")
+ prop releaseHSTChannel :: ($1.iDelUser = "USER", $1.iDHLAvailable = 1, $1.notify = @_FXN_F_nop, $1.arg0 = 0, "ok")
+ prop AllocType :: (if (self.gNumOf > 0) {"1\0, _globalAllocDesc, _memSeg, _placement"} )
+ prop _globalAllocDesc :: "%8t .dhl: {}"
+ prop _memSeg :: self.OBJMEMSEG
+ prop _placement :: (0x7fffffff / 2)
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gChannelsAvailable :: 0
+ global OBJMEMSEG :: IRAM {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop MemberType :: MEM
+ prop MemberTest :: MEM.dataMember($1)
+ prop Label :: "Object Memory"
+ prop JSName :: "OBJMEMSEG"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iHSTChannel :: (scan ($i; HST) {if ($i.iDHLAvailable == 1) {$a = $i} }, $a) {
+ prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Underlying HST Channel"
+ prop JSName :: "hstChannel"
+ prop MemberType :: HST
+ prop MemberTest :: (if (($1.iDHLAvailable == 1) || ($1 == self.iHSTChannel)) {1} else {0})
+ prop Set :: (if ($1.iDHLAvailable != 1) {self.error("This channel is already in use.")} else {self.releaseHSTChannel(self.iHSTChannel), self.seizeHSTChannel($1), self.iHSTChannel = $1, "ok"})
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+ inst iMode :: = self.iHSTChannel.mode {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Mode"
+ prop JSName :: "mode"
+ prop Visible :: 1
+ prop Writable :: 0
+ prop NoGen :: 0
+ }
+ inst iDevId :: = (self.iHSTChannel.iId) {
+ prop NoGen :: 0
+ }
+ inst iIsTerminal :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst iIsVirtual :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst iFxns :: @_DHL_FXNS {
+ prop NoGen :: 1
+ }
+}
+
+type DPI {
+ isa ObjectMgr
+ prop name :: "DPI"
+ prop Label :: "DPI - Pipe Driver"
+ prop IsContainedIn :: SIODRIVER
+ prop GlobalIcon :: 127
+ prop InstanceIcon :: 128
+ prop GlobalHelpTopic :: (304)
+ prop InstanceHelpTopic :: (404)
+ prop InstancePropertyPage :: ("{7FE06FA0-2DE9-11d1-988B-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{7FE06FA1-2DE9-11d1-988B-0020AFEE33C6}")
+ prop DependsOn :: "DEV"
+ prop maxObjs :: (32767)
+ prop isDriver :: (1)
+ prop localCreate :: (self.gCurDevId += 1, "ok")
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gCurDevId :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDevId :: DPI.gCurDevId {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop Writable :: 0
+ prop Set :: (self.error("DPI.iDevId parameter no longer settable, it is now handled automatically"))
+ }
+ inst iIsVirtual :: 0 {
+ prop Label :: "Allow virtual instances of this device."
+ prop JSName :: "allowVirtual"
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ prop Set :: (if ($1 == 1) {$a = "ok", $b = 1, scan ($i; SIO) {if ($i.iDevice == self) {$a = self.error("This DPI instance is being used by one or more SIO instances, cannot reconfigure"), $b = 0} }, if ($b == 1) {self.iIsVirtual = 1} , $a} else {self.iIsVirtual = 0, "ok"})
+ }
+ inst iIsTerminal :: 1 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop NoGen :: 1
+ }
+ inst iFxns :: @_DPI_FXNS {
+ prop NoGen :: 1
+ }
+}
+
+type MSGQ {
+ isa Module
+ prop Visible :: 1
+ prop name :: "MSGQ"
+ prop Label :: "MSGQ - Message Queue Manager"
+ prop IsConfMod :: self.USEMSGQ
+ prop IsContainedIn :: IOF
+ prop DependsOn :: "GIO,SIO"
+ prop GlobalIcon :: 131
+ prop InstanceIcon :: 132
+ prop GlobalHelpTopic :: (323)
+ prop InstanceHelpTopic :: (423)
+ prop InstancePropertyPage :: ("{473C4A62-B1A8-11d0-9885-0020AFEE33C6}")
+ prop GlobalPropertyPage :: ("{473C4A63-B1A8-11d0-9885-0020AFEE33C6}")
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global USEMSGQ :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Enable MSGQ Manager"
+ prop JSName :: "ENABLEMSGQ"
+ prop Visible :: 1
+ prop Writable :: 1
+ prop NoGen :: 0
+ }
+}
+
+type HOOK {
+ isa ObjectMgr
+ prop name :: "HOOK"
+ prop Label :: "HOOK - Module Hook Manager"
+ prop IsContainedIn :: SYSTEM
+ prop DependsOn :: "SWI"
+ prop InstancePropertyPage :: ("{473C4A64-B1A8-11d0-9885-0020AFEE33C6}")
+ prop GlobalIcon :: 181
+ prop InstanceIcon :: 182
+ prop GlobalHelpTopic :: (318)
+ prop InstanceHelpTopic :: (418)
+ prop localCreate :: (if (self.gNumOf == 0) {HOOK_KNL.iIsUsed = 1, self.mkId(0)} , "ok")
+ prop localDelete :: (if (self.gNumOf == 2) {HOOK_KNL.iIsUsed = 0, self.rmId} , "ok")
+ prop maxObjs :: (32767)
+ prop SortByField :: "iPri"
+ prop SortGroups :: 1
+ global gUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gSetOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gNumOf :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gDirty :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInitFlag :: 1 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ global KNLID :: = (HOOK_KNL.Order - 1) {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ }
+ inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} {
+ prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "comment"
+ prop JSName :: "comment"
+ prop Visible :: 1
+ prop Writable :: if self.iDelUser == "USER" {1} else {0}
+ prop NoGen :: 1
+ }
+ inst iIsUsed :: 0 {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iId :: 0 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Style :: 0x01
+ prop Visible :: 0
+ prop Writable :: 1
+ prop NoGen :: 1
+ }
+ inst iDelUser :: "USER" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst iDelMsg :: "ok" {
+ prop Visible :: 0
+ prop Writable :: 0
+ prop NoGen :: 1
+ }
+ inst initFxn :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Initialization function"
+ prop JSName :: "initFxn"
+ prop Visible :: 1
+ prop Writable :: 1
+ }
+ inst createFxn :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Create function"
+ prop JSName :: "createFxn"
+ prop Visible :: 1
+ prop Writable :: self.iDelUser == "USER"
+ }
+ inst deleteFxn :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Delete function"
+ prop JSName :: "deleteFxn"
+ prop Visible :: 1
+ prop Writable :: self.iDelUser == "USER"
+ }
+ inst exitFxn :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Exit function"
+ prop JSName :: "exitFxn"
+ prop Visible :: 1
+ prop Writable :: self.iDelUser == "USER"
+ }
+ inst callSwitchFxn :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Call switch function"
+ prop JSName :: "callSwitchFxn"
+ prop Visible :: 1
+ prop Writable :: self.iDelUser == "USER"
+ }
+ inst switchFxn :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Switch function"
+ prop JSName :: "switchFxn"
+ prop Visible :: 1
+ prop Writable :: self.callSwitchFxn
+ }
+ inst callReadyFxn :: 0 {
+ prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop Label :: "Call ready function"
+ prop JSName :: "callReadyFxn"
+ prop Visible :: 1
+ prop Writable :: self.iDelUser == "USER"
+ }
+ inst readyFxn :: @_FXN_F_nop {
+ prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
+ prop Label :: "Ready function"
+ prop JSName :: "readyFxn"
+ prop Visible :: 1
+ prop Writable :: self.callReadyFxn
+ }
+ inst Order :: 2 {
+ prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
+ prop JSName :: "order"
+ prop NoGen :: 1
+ prop Writable :: 1
+ }
+ inst iPri :: 0 {
+ prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
+ prop Visible :: 0
+ prop NoGen :: 1
+ }
+}
+
+object HOOK_KNL :: HOOK {
+ param iComment :: "Used to support TSK function hooks (cannot be deleted)"
+ param iIsUsed :: 0
+ param iId :: 0
+ param iDelUser :: "HOOK"
+ param iDelMsg :: "This hook instance is used by TSK and cannot be deleted"
+ param initFxn :: @_FXN_F_nop
+ param createFxn :: @_FXN_F_nop
+ param deleteFxn :: @_FXN_F_nop
+ param exitFxn :: @_FXN_F_nop
+ param callSwitchFxn :: 0
+ param switchFxn :: @_FXN_F_nop
+ param callReadyFxn :: 0
+ param readyFxn :: @_FXN_F_nop
+ param Order :: 1
+ param iPri :: 0
+}
+
+object SDRAM :: MEM {
+ param iComment :: "This object defines 8MB for the DSP's off-chip memory"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param base :: -2147483648
+ param len :: 8388608
+ param iAllocHeap :: 0
+ param iHeapSize :: 32768
+ param iUserHeapId :: 0
+ param iHeapId :: @segment_name
+ param iReqHeapCount :: 0
+ param space :: "code/data"
+ param dynamicLoading :: 0
+ param iIsModifiable :: 1
+}
+
+object IRAM :: MEM {
+ param iComment :: "Internal L2 memory"
+ param iIsUsed :: 1
+ param iId :: 0
+ param iDelUser :: "USER"
+ param iDelMsg :: "ok"
+ param base :: 0
+ param len :: 262144
+ param iAllocHeap :: 1
+ param iHeapSize :: 32768
+ param iUserHeapId :: 0
+ param iHeapId :: @segment_name
+ param iReqHeapCount :: 2
+ param space :: "code/data"
+ param dynamicLoading :: 0
+ param iIsModifiable :: 1
+}
+
diff --git a/Project/RTDSP/.gconf/RTDSP/lab5/RTDSP/dsp_bios_.tcf b/Project/RTDSP/.gconf/RTDSP/lab5/RTDSP/dsp_bios_.tcf
new file mode 100644
index 0000000..e439c70
--- /dev/null
+++ b/Project/RTDSP/.gconf/RTDSP/lab5/RTDSP/dsp_bios_.tcf
@@ -0,0 +1,19 @@
+utils.loadPlatform("ti.platforms.dsk6713");
+
+/* The following DSP/BIOS Features are enabled. */
+bios.enableRealTimeAnalysis(prog);
+bios.enableRtdx(prog);
+bios.enableTskManager(prog);
+
+bios.HWI.instance("HWI_INT4").interruptSource = prog.get("MCSP_1_Receive");
+bios.HWI.instance("HWI_INT4").fxn = prog.extern("ISR_AIC");
+bios.HWI.instance("HWI_INT4").useDispatcher = 1;
+bios.HWI.instance("HWI_INT4").interruptSource = prog.get("MCSP_1_Transmit");
+bios.HWI.instance("HWI_INT4").interruptSource = prog.get("MCSP_1_Receive");
+bios.MEM.NOMEMORYHEAPS = 0;
+bios.MEM.instance("IRAM").createHeap = 1;
+bios.MEM.MALLOCSEG = prog.get("IRAM");
+bios.MEM.BIOSOBJSEG = prog.get("IRAM");
+// !GRAPHICAL_CONFIG_TOOL_SCRIPT_INSERT_POINT!
+
+prog.gen();
diff --git a/Project/RTDSP/.gconf/RTDSP/lab5/RTDSP/dsp_bios_cfg.cmd b/Project/RTDSP/.gconf/RTDSP/lab5/RTDSP/dsp_bios_cfg.cmd
new file mode 100644
index 0000000..e8b647a
--- /dev/null
+++ b/Project/RTDSP/.gconf/RTDSP/lab5/RTDSP/dsp_bios_cfg.cmd
@@ -0,0 +1,296 @@
+/* Do *not* directly modify this file. It was */
+/* generated by the Configuration Tool; any */
+/* changes risk being overwritten. */
+
+/* INPUT dsp_bios_.cdb */
+
+/* MODULE PARAMETERS */
+-u _GBL_setPLLto225MHz
+GBL_USERINITFXN = _GBL_setPLLto225MHz;
+
+-u IRAM
+MEM_SEGZERO = IRAM;
+-u IRAM
+MEM_MALLOCSEG = IRAM;
+
+-u CLK_F_getshtime
+CLK_TIMEFXN = CLK_F_getshtime;
+-u HWI_F_dispatch
+CLK_HOOKFXN = HWI_F_dispatch;
+
+-u _KNL_tick
+PRD_THOOKFXN = _KNL_tick;
+
+-u IRAM
+RTDX_DATAMEMSEG = IRAM;
+
+-u IRAM
+HST_DSMBUFSEG = IRAM;
+
+-u GBL_NULL
+SWI_EHOOKFXN = GBL_NULL;
+-u GBL_NULL
+SWI_IHOOKFXN = GBL_NULL;
+-u SWI_F_exec
+SWI_EXECFXN = SWI_F_exec;
+-u SWI_F_run
+SWI_RUNFXN = SWI_F_run;
+
+-u MEM_NULL
+TSK_STACKSEG = MEM_NULL;
+-u _FXN_F_nop
+TSK_VCREATEFXN = _FXN_F_nop;
+-u _FXN_F_nop
+TSK_VDELETEFXN = _FXN_F_nop;
+-u _FXN_F_nop
+TSK_VEXITFXN = _FXN_F_nop;
+
+-u IDL_F_stub
+IDL_CALIBRFXN = IDL_F_stub;
+
+-u _UTL_doAbort
+SYS_ABORTFXN = _UTL_doAbort;
+-u _UTL_doError
+SYS_ERRORFXN = _UTL_doError;
+-u _UTL_halt
+SYS_EXITFXN = _UTL_halt;
+-u _UTL_doPutc
+SYS_PUTCFXN = _UTL_doPutc;
+
+-u _FXN_F_nop
+GIO_CREATEFXN = _FXN_F_nop;
+-u _FXN_F_nop
+GIO_DELETEFXN = _FXN_F_nop;
+-u _FXN_F_nop
+GIO_PENDFXN = _FXN_F_nop;
+-u _FXN_F_nop
+GIO_POSTFXN = _FXN_F_nop;
+
+/* OBJECT ALIASES */
+_SDRAM = SDRAM;
+_IRAM = IRAM;
+_PRD_clock = PRD_clock;
+_RTA_fromHost = RTA_fromHost;
+_RTA_toHost = RTA_toHost;
+_HWI_RESET = HWI_RESET;
+_HWI_NMI = HWI_NMI;
+_HWI_RESERVED0 = HWI_RESERVED0;
+_HWI_RESERVED1 = HWI_RESERVED1;
+_HWI_INT4 = HWI_INT4;
+_HWI_INT5 = HWI_INT5;
+_HWI_INT6 = HWI_INT6;
+_HWI_INT7 = HWI_INT7;
+_HWI_INT8 = HWI_INT8;
+_HWI_INT9 = HWI_INT9;
+_HWI_INT10 = HWI_INT10;
+_HWI_INT11 = HWI_INT11;
+_HWI_INT12 = HWI_INT12;
+_HWI_INT13 = HWI_INT13;
+_HWI_INT14 = HWI_INT14;
+_HWI_INT15 = HWI_INT15;
+_KNL_swi = KNL_swi;
+_TSK_idle = TSK_idle;
+_IDL_cpuLoad = IDL_cpuLoad;
+_LNK_dataPump = LNK_dataPump;
+_RTA_dispatcher = RTA_dispatcher;
+_LOG_system = LOG_system;
+_IDL_busyObj = IDL_busyObj;
+
+/* MODULE GBL */
+
+SECTIONS {
+ .vers (COPY): {} /* version information */
+}
+
+-priority
+--trampolines
+-llnkrtdx.a67
+-ldrivers.a67 /* device drivers support */
+-lsioboth.a67 /* supports both SIO models */
+-lbiosC6000.a67 /* BIOS clock specific library */
+-lbios6x1x.a67 /* BIOS c6x1x specific library */
+-lbios.a67 /* DSP/BIOS support */
+-lrtdx.lib /* RTDX support */
+-lrts6700.lib /* C and C++ run-time library support */
+
+_GBL_CACHE = GBL_CACHE;
+
+/* MODULE MEM */
+-stack 0x400
+MEMORY {
+ SDRAM : origin = 0x80000000, len = 0x800000
+ IRAM : origin = 0x0, len = 0x40000
+}
+/* MODULE CLK */
+SECTIONS {
+ .clk: {
+
+ CLK_F_gethtime = CLK_F_getshtime;
+ *(.clk)
+ } > IRAM, RUN_START(CLK_A_TABBEG)
+}
+_CLK_PRD = CLK_PRD;
+_CLK_COUNTSPMS = CLK_COUNTSPMS;
+_CLK_REGS = CLK_REGS;
+_CLK_USETIMER = CLK_USETIMER;
+_CLK_TIMERNUM = CLK_TIMERNUM;
+_CLK_TDDR = CLK_TDDR;
+
+/* MODULE PRD */
+SECTIONS {
+ .prd: RUN_START(PRD_A_TABBEG), RUN_END(PRD_A_TABEND) {
+ } > IRAM
+}
+PRD_A_TABLEN = 0;
+
+/* MODULE RTDX */
+_RTDX_interrupt_mask = 0x0;
+
+/* MODULE HST */
+_LNK_dspFrameReadyMask = LNK_dspFrameReadyMask;
+_LNK_dspFrameRequestMask = LNK_dspFrameRequestMask;
+_LNK_readDone = LNK_readDone;
+_LNK_readFail = LNK_readFail;
+_LNK_readPend = LNK_readPend;
+_LNK_writeFail = LNK_writeFail;
+/* MODULE HWI */
+SECTIONS {
+ .hwi_vec: 0x0 {
+ HWI_A_VECS = .;
+ *(.hwi_vec)
+ }
+}
+
+_HWI_CFGDISPATCHED = HWI_CFGDISPATCHED;
+
+/* MODULE SWI */
+SECTIONS {
+ .swi: RUN_START(SWI_A_TABBEG), RUN_END(SWI_A_TABEND) {
+ } > IRAM
+}
+SWI_A_TABLEN = 1;
+
+/* MODULE TSK */
+SECTIONS {
+ .tsk: {
+ *(.tsk)
+ } > IRAM
+}
+
+/* MODULE IDL */
+SECTIONS {
+ .idl: {
+ *(.idl)
+ } > IRAM, RUN_START(IDL_A_TABBEG)
+
+ .idlcal: {
+ *(.idlcal)
+ } > IRAM, RUN_START(IDL_A_CALBEG)
+}
+
+
+LOG_A_TABLEN = 1; _LOG_A_TABLEN = 1;
+
+PIP_A_TABLEN = 2;
+
+
+SECTIONS {
+ .bss: {} > IRAM
+
+ .far: {} > IRAM
+
+ .sysdata: {} > IRAM
+
+ .dsm: {} > IRAM
+
+ frt: {} > IRAM
+
+ .mem: {} > IRAM
+
+ .bios: {} > IRAM
+
+ .cio: {} > IRAM
+
+ .data: {} > IRAM
+
+ .gio: {} > IRAM
+
+ .pinit: {} > IRAM
+
+ .sys: {} > IRAM
+
+ .sysregs: {} > IRAM
+
+ .text: {} > IRAM
+
+ .cinit: {} > IRAM
+
+ .switch: {} > IRAM
+
+ .gblinit: {} > IRAM
+
+ .sysinit: {} > IRAM
+
+ .trcdata: {} > IRAM
+
+ .hwi: {} > IRAM
+
+ .rtdx_data: {} > IRAM
+
+ .rtdx_text: {} > IRAM
+
+ .TSK_idle$stk: {
+ *(.TSK_idle$stk)
+ } > IRAM
+
+ /* LOG_system buffer */
+ .LOG_system$buf: align = 0x100 {} > IRAM
+
+ /* RTA_fromHost buffer */
+ .hst1: align = 0x4 {} > IRAM
+
+ /* RTA_toHost buffer */
+ .hst0: align = 0x4 {} > IRAM
+
+ GROUP {
+ .const: align = 0x8 {}
+ .printf (COPY): {}
+ } > IRAM
+
+ .args: align=4 fill=0 {
+ *(.args)
+ . += 0x4;
+ } > IRAM
+
+ .trace: fill = 0x0 align = 0x4 {
+ _SYS_PUTCBEG = .;
+ . += 0x200;
+ _SYS_PUTCEND = . - 1;
+ } > IRAM
+
+ .hst: RUN_START(HST_A_TABBEG), RUN_START(_HST_A_TABBEG), RUN_END(HST_A_TABEND), RUN_END(_HST_A_TABEND) {
+ } > IRAM
+
+ .log: RUN_START(LOG_A_TABBEG), RUN_START(_LOG_A_TABBEG), RUN_END(LOG_A_TABEND), RUN_END(_LOG_A_TABEND) {
+ } > IRAM
+
+ .pip: RUN_START(PIP_A_TABBEG), RUN_START(_PIP_A_TABBEG), RUN_END(PIP_A_TABEND), RUN_END(_PIP_A_TABEND) {
+ } > IRAM
+
+ .sts: RUN_START(STS_A_TABBEG), RUN_START(_STS_A_TABBEG), RUN_END(STS_A_TABEND), RUN_END(_STS_A_TABEND) {
+ } > IRAM
+
+ .stack: align = 0x8 {
+ GBL_stackbeg = .;
+ *(.stack)
+ GBL_stackend = GBL_stackbeg + 0x400 - 1;
+ _HWI_STKBOTTOM = GBL_stackbeg + 0x400 - 8;
+ _HWI_STKTOP = GBL_stackbeg;
+ } > IRAM
+
+ .IRAM$heap: {
+ . += 0x8000;
+ } RUN_START(IRAM$B), RUN_START(_IRAM_base), RUN_SIZE(IRAM$L), RUN_SIZE(_IRAM_length) > IRAM
+
+}
+
diff --git a/Project/RTDSP/.gconf/RTDSP/lab5/RTDSP/dsp_bios_cfg.h b/Project/RTDSP/.gconf/RTDSP/lab5/RTDSP/dsp_bios_cfg.h
new file mode 100644
index 0000000..616731f
--- /dev/null
+++ b/Project/RTDSP/.gconf/RTDSP/lab5/RTDSP/dsp_bios_cfg.h
@@ -0,0 +1,29 @@
+/* Do *not* directly modify this file. It was */
+/* generated by the Configuration Tool; any */
+/* changes risk being overwritten. */
+
+/* INPUT dsp_bios_.cdb */
+
+/* Include Header Files */
+#include <std.h>
+#include <hst.h>
+#include <swi.h>
+#include <tsk.h>
+#include <log.h>
+#include <sts.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern far HST_Obj RTA_fromHost;
+extern far HST_Obj RTA_toHost;
+extern far SWI_Obj KNL_swi;
+extern far TSK_Obj TSK_idle;
+extern far LOG_Obj LOG_system;
+extern far STS_Obj IDL_busyObj;
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
diff --git a/Project/RTDSP/.gconf/RTDSP/lab5/RTDSP/dsp_bios_cfg.h62 b/Project/RTDSP/.gconf/RTDSP/lab5/RTDSP/dsp_bios_cfg.h62
new file mode 100644
index 0000000..5d097a2
--- /dev/null
+++ b/Project/RTDSP/.gconf/RTDSP/lab5/RTDSP/dsp_bios_cfg.h62
@@ -0,0 +1,197 @@
+;; Do *not* directly modify this file. It was
+;; generated by the Configuration Tool; any
+;; changes risk being overwritten.
+
+;; INPUT dsp_bios_.cdb
+
+;; CONFIGURATION/VERSION INFORMATION
+ .asg "dsp_bios_.cdb", VERS$CDB
+ .asg ";;;", VERS$CDBRELATIVEPATH
+ .asg "dsp_bios_cfg", VERS$CFG
+ .asg "@(#)*** xdcutils-e03", VERS$TREE
+
+;; EXTERNAL REFERENCES
+ .global HWI_unused
+ .global RESERVED
+ .global _FXN_F_nop
+ .global segment_name
+ .global _CLK_start6x
+ .global FXN_F_nop
+ .global FXN_F_zero
+ .global HWI_F_dispatch
+ .global CLK_F_frete
+ .global CLK_F_rete
+ .global CLK_F_getltime
+ .global CLK_F_isr
+ .global CLK_A_TABBEG
+ .global CLK_F_getfhtime
+ .global CLK_F_getshtime
+ .global PRD_F_tick
+ .global PRD_F_swi
+ .global _KNL_tick
+ .global LNK_F_dataPump
+ .global RTA_F_dispatch
+ .global _HSRTDX_xmt
+ .global _HSRTDX_rec
+ .global _RTDX_Poll
+ .global GBL_stackbeg
+ .global _c_int00
+ .global SWI_F_exec
+ .global SWI_F_run
+ .global GBL_NULL
+ .global __HOOK_doCreate
+ .global __HOOK_doDelete
+ .global __HOOK_doExit
+ .global __HOOK_doSwitch
+ .global __HOOK_doReady
+ .global null
+ .global _IDL_loop
+ .global IDL_F_loop
+ .global _KNL_run
+ .global IDL_F_stub
+ .global IDL_F_calibrate
+ .global IDL_F_busy
+ .global _UTL_doPutc
+ .global _UTL_doAbort
+ .global _UTL_doError
+ .global _UTL_halt
+ .global _SEM_create
+ .global _SEM_delete
+ .global _SEM_pend
+ .global _SEM_post
+ .global _DIO_cbStaticFxns
+ .global _DIO_tskStaticFxns
+ .global _DIO_cbDynamicFxns
+ .global _DIO_tskDynamicFxns
+ .global _DIO_init
+ .global _DGN_printFloat
+ .global _DGN_printHex
+ .global _DGN_printInt
+ .global DGN_CONST
+ .global DGN_RAND
+ .global DGN_SINE
+ .global DGN_USER
+ .global _DGN_FXNS
+ .global _DHL_notify
+ .global _DHL_FXNS
+ .global _DPI_FXNS
+ .global _GBL_setPLLto225MHz
+ .global _ISR_AIC
+
+;; MODULE PARAMETERS
+GBL$ .set 1
+GBL_ROM .set 00H
+GBL_PROCID .set 00H
+GBL_CLKIN .set 04e20H
+GBL_FREQ .set 036ee8H
+GBL_DSPTYPE .set 03eH
+GBL_DSPSUBTYPE .set 01a39H
+GBL_CLKTYPE .set 01770H
+GBL_BIGENDIAN .set 00H
+GBL_USERINIT .set 01H
+GBL_ENABLEINST .set 01H
+GBL_CACHE .set 00H
+GBL_L2CONFIGURE .set 01H
+GBL_L2MODE .set 00H
+GBL_L2PRIORITY .set 00H
+GBL_L2MARMASK .set 01H
+GBL_SUPPORTCSL .set 00H
+GBL_TRCMASKVALUE .set 0dbefH
+GBL_CALLCSLCFGINIT .set 01H
+GBL_C641XL2PRIORITY .set 00H
+GBL_L2MARMASK1 .set 00H
+GBL_L2MARMASK2 .set 00H
+GBL_L2MARMASK3 .set 00H
+GBL_L2MARMASK4 .set 00H
+GBL_L2MARMASK5 .set 00H
+GBL_L2CONFIGALLOC .set 00H
+GBL_L2ALLOC .set 02226H
+MEM$ .set 1
+MEM_gNumHeap .set 01H
+MEM_USEMPC .set 00H
+OBJ$ .set 0
+BUF$ .set 0
+BUF_ENABLED .set 01H
+POOL$ .set 0
+POOL_USEPOOL .set 00H
+CLK$ .set 1
+CLK_INTBIT .set 04000H
+CLK_REGS .set 01940000H
+CLK_TIMERNUM .set 00H
+CLK_USETIMER .set 01H
+CLK_MICROSECS .set 03e8H
+CLK_TCR .set 020H
+CLK_TDDR .set 00H
+CLK_TDDRHIGH .set 00H
+CLK_PRD .set 0dbbaH
+CLK_PRDHIGH .set 00H
+CLK_COUNTSPMS .set 0dbbaH
+CLK_COUNTSPMSHIGH .set 00H
+CLK_CALDIV .set 01H
+CLK_CALMULT .set 04H
+CLK_HTIMEDIV .set 01H
+CLK_HTIMEMULT .set 04H
+CLK_LTIMEDIV .set 01H
+CLK_LTIMEMULT .set 036ee8H
+CLK_HTIMEPERLTIME .set 0dbbaH
+PRD$ .set 1
+PRD_SCALAR .set 04000H
+RTDX$ .set 1
+RTDX_USERTDX .set 01H
+RTDX_USERTEXECUTION .set 00H
+ .asg "JTAG", RTDX_RTDXTYPE
+RTDX_BUFMEMSIZE .set 0408H
+HST$ .set 1
+HST_RTDX .set 01H
+HST_DSM .set 00H
+HST_NONE .set 00H
+HST_MAXFRAMESET .set 040H
+HST_MAXFRAMEALLOWED .set 0ffH
+HST_DSMMEMSIZE .set 0400H
+HWI$ .set 1
+HWI_ZEROTAB .set 01H
+HWI_GENERATE_RESET_VEC .set 00H
+HWI_POLARITYMASK .set 00H
+HWI_INTRMULTLOW .set 0310718afH
+HWI_INTRMULTHIGH .set 082039a3H
+HWI_CFGDISPATCHED .set 04018H
+SWI$ .set 1
+TSK$ .set 1
+TSK_STACKSIZE .set 0400H
+TSK_PRIORITY .set 01H
+TSK_SWITCHFXN .set 00H
+TSK_READYFXN .set 00H
+TSK_NUM_HOOKS .set 00H
+IDL$ .set 1
+IDL_USECLKIDLTIME .set 01H
+IDL_CALIBRERROR .set 06H
+ISRC$ .set 1
+LOG$ .set 1
+LOG_ENABLED .set 01H
+PIP$ .set 0
+PIP_gNumEmbed .set 02H
+PIP_gNextId .set 00H
+PIP_OBJSIZE .set 064H
+SEM$ .set 0
+MBX$ .set 0
+QUE$ .set 1
+LCK$ .set 1
+STS$ .set 1
+SYS$ .set 1
+SIO$ .set 0
+GIO$ .set 0
+DEV$ .set 0
+UDEV$ .set 0
+DIO$ .set 0
+DIO_STATIC .set 00H
+DIO_NUMTSKBASE .set 00H
+DIO_NUMSWIBASE .set 00H
+DGN$ .set 0
+DHL$ .set 0
+DHL_gChannelsAvailable .set 00H
+DPI$ .set 0
+MSGQ$ .set 0
+MSGQ_USEMSGQ .set 00H
+HOOK$ .set 0
+HOOK_KNLID .set 00H
+DEV$NUMDEVICES .set 0
diff --git a/Project/RTDSP/.gconf/RTDSP/lab5/RTDSP/dsp_bios_cfg.s62 b/Project/RTDSP/.gconf/RTDSP/lab5/RTDSP/dsp_bios_cfg.s62
new file mode 100644
index 0000000..d4b3af2
--- /dev/null
+++ b/Project/RTDSP/.gconf/RTDSP/lab5/RTDSP/dsp_bios_cfg.s62
@@ -0,0 +1,1091 @@
+;; Do *not* directly modify this file. It was
+;; generated by the Configuration Tool; any
+;; changes risk being overwritten.
+
+;; INPUT dsp_bios_.cdb
+
+;; CONFIGURATION/VERSION INFORMATION
+ .asg "Tue Feb 27 10:16:43 2018", VERS$DATE
+
+;; PROLOGUE
+ .include dsp_bios_cfg.h62
+ .copy confbeg.s62
+
+;; TYPE HEADERS
+ .include gbl.h62
+ .include mem.h62
+ .include obj.h62
+ .include buf.h62
+ .include pool.h62
+ .include clk.h62
+ .include prd.h62
+ .include rtdx.h62
+ .include hst.h62
+ .include hwi.h62
+ .include swi.h62
+ .include tsk.h62
+ .include idl.h62
+ .include isrc.h62
+ .include log.h62
+ .include pip.h62
+ .include sem.h62
+ .include mbx.h62
+ .include que.h62
+ .include lck.h62
+ .include sts.h62
+ .include sys.h62
+ .include sio.h62
+ .include gio.h62
+ .include dev.h62
+ .include udev.h62
+ .include dio.h62
+ .include dgn.h62
+ .include dhl.h62
+ .include dpi.h62
+ .include msgq.h62
+ .include hook.h62
+
+;; TYPE ATTRIBUTES
+MEM$NUMOF .set 2
+MEM$SETOF .set 00H
+OBJ$NUMOF .set 0
+OBJ$SETOF .set 00H
+BUF$NUMOF .set 0
+BUF$SETOF .set 00H
+CLK$NUMOF .set 1
+CLK$SETOF .set 00H
+PRD$NUMOF .set 0
+PRD$SETOF .set 00H
+RTDX$NUMOF .set 0
+RTDX$SETOF .set 00H
+HST$NUMOF .set 2
+HST$SETOF .set 03H
+HWI$NUMOF .set 16
+HWI$SETOF .set 0ffffH
+SWI$NUMOF .set 1
+SWI$SETOF .set 00H
+TSK$NUMOF .set 1
+TSK$SETOF .set 00H
+IDL$NUMOF .set 3
+IDL$SETOF .set 00H
+ISRC$NUMOF .set 0
+ISRC$SETOF .set 00H
+LOG$NUMOF .set 1
+LOG$SETOF .set 00H
+PIP$NUMOF .set 0
+PIP$SETOF .set 00H
+SEM$NUMOF .set 0
+SEM$SETOF .set 00H
+MBX$NUMOF .set 0
+MBX$SETOF .set 00H
+QUE$NUMOF .set 0
+QUE$SETOF .set 00H
+LCK$NUMOF .set 0
+LCK$SETOF .set 00H
+STS$NUMOF .set 1
+STS$SETOF .set 00H
+SIO$NUMOF .set 0
+SIO$SETOF .set 00H
+DEV$NUMOF .set 0
+DEV$SETOF .set 00H
+UDEV$NUMOF .set 0
+UDEV$SETOF .set 00H
+DIO$NUMOF .set 0
+DIO$SETOF .set 00H
+DGN$NUMOF .set 0
+DGN$SETOF .set 00H
+DHL$NUMOF .set 0
+DHL$SETOF .set 00H
+DPI$NUMOF .set 0
+DPI$SETOF .set 00H
+HOOK$NUMOF .set 0
+HOOK$SETOF .set 00H
+
+;; module GBL (ROM, PROCID, CLKIN, FREQ, DSPTYPE, DSPSUBTYPE, CLKTYPE, BIGENDIAN, USERINIT, USERINITFXN, ENABLEINST, CACHE, L2CONFIGURE, L2MODE, L2PRIORITY, L2MARMASK, SUPPORTCSL, TRCMASKVALUE, CALLCSLCFGINIT, C641XL2PRIORITY, L2MARMASK1, L2MARMASK2, L2MARMASK3, L2MARMASK4, L2MARMASK5, L2CONFIGALLOC, L2ALLOC)
+ .global GBL$ ; == 1
+ .global GBL_ROM ; dsp_bios_cfg.h62
+ .global GBL_PROCID ; dsp_bios_cfg.h62
+ .global GBL_CLKIN ; dsp_bios_cfg.h62
+ .global GBL_FREQ ; dsp_bios_cfg.h62
+ .global GBL_DSPTYPE ; dsp_bios_cfg.h62
+ .global GBL_DSPSUBTYPE ; dsp_bios_cfg.h62
+ .global GBL_CLKTYPE ; dsp_bios_cfg.h62
+ .global GBL_BIGENDIAN ; dsp_bios_cfg.h62
+ .global GBL_USERINIT ; dsp_bios_cfg.h62
+ .global GBL_USERINITFXN ; dsp_bios_cfg.cmd
+ .global GBL_ENABLEINST ; dsp_bios_cfg.h62
+ .global GBL_CACHE ; dsp_bios_cfg.h62
+ .global GBL_L2CONFIGURE ; dsp_bios_cfg.h62
+ .global GBL_L2MODE ; dsp_bios_cfg.h62
+ .global GBL_L2PRIORITY ; dsp_bios_cfg.h62
+ .global GBL_L2MARMASK ; dsp_bios_cfg.h62
+ .global GBL_SUPPORTCSL ; dsp_bios_cfg.h62
+ .global GBL_TRCMASKVALUE ; dsp_bios_cfg.h62
+ .global GBL_CALLCSLCFGINIT ; dsp_bios_cfg.h62
+ .global GBL_C641XL2PRIORITY ; dsp_bios_cfg.h62
+ .global GBL_L2MARMASK1 ; dsp_bios_cfg.h62
+ .global GBL_L2MARMASK2 ; dsp_bios_cfg.h62
+ .global GBL_L2MARMASK3 ; dsp_bios_cfg.h62
+ .global GBL_L2MARMASK4 ; dsp_bios_cfg.h62
+ .global GBL_L2MARMASK5 ; dsp_bios_cfg.h62
+ .global GBL_L2CONFIGALLOC ; dsp_bios_cfg.h62
+ .global GBL_L2ALLOC ; dsp_bios_cfg.h62
+
+;; module MEM (gNumHeap, SEGZERO, MALLOCSEG, USEMPC)
+ .global MEM$ ; == 1
+ .global MEM_gNumHeap ; dsp_bios_cfg.h62
+ .global MEM_SEGZERO ; dsp_bios_cfg.cmd
+ .global MEM_MALLOCSEG ; dsp_bios_cfg.cmd
+ .global MEM_USEMPC ; dsp_bios_cfg.h62
+
+;; module OBJ ()
+ .global OBJ$ ; == 0
+
+;; module BUF (ENABLED)
+ .global BUF$ ; == 0
+ .global BUF_ENABLED ; dsp_bios_cfg.h62
+
+;; module POOL (USEPOOL)
+ .global POOL$ ; == 0
+ .global POOL_USEPOOL ; dsp_bios_cfg.h62
+
+;; module CLK (INTBIT, REGS, TIMERNUM, USETIMER, MICROSECS, TCR, TDDR, TDDRHIGH, PRD, PRDHIGH, COUNTSPMS, COUNTSPMSHIGH, TIMEFXN, HOOKFXN, CALDIV, CALMULT, HTIMEDIV, HTIMEMULT, LTIMEDIV, LTIMEMULT, HTIMEPERLTIME)
+ .global CLK$ ; == 1
+ .global CLK_INTBIT ; dsp_bios_cfg.h62
+ .global CLK_REGS ; dsp_bios_cfg.h62
+ .global CLK_TIMERNUM ; dsp_bios_cfg.h62
+ .global CLK_USETIMER ; dsp_bios_cfg.h62
+ .global CLK_MICROSECS ; dsp_bios_cfg.h62
+ .global CLK_TCR ; dsp_bios_cfg.h62
+ .global CLK_TDDR ; dsp_bios_cfg.h62
+ .global CLK_TDDRHIGH ; dsp_bios_cfg.h62
+ .global CLK_PRD ; dsp_bios_cfg.h62
+ .global CLK_PRDHIGH ; dsp_bios_cfg.h62
+ .global CLK_COUNTSPMS ; dsp_bios_cfg.h62
+ .global CLK_COUNTSPMSHIGH ; dsp_bios_cfg.h62
+ .global CLK_TIMEFXN ; dsp_bios_cfg.cmd
+ .global CLK_HOOKFXN ; dsp_bios_cfg.cmd
+ .global CLK_CALDIV ; dsp_bios_cfg.h62
+ .global CLK_CALMULT ; dsp_bios_cfg.h62
+ .global CLK_HTIMEDIV ; dsp_bios_cfg.h62
+ .global CLK_HTIMEMULT ; dsp_bios_cfg.h62
+ .global CLK_LTIMEDIV ; dsp_bios_cfg.h62
+ .global CLK_LTIMEMULT ; dsp_bios_cfg.h62
+ .global CLK_HTIMEPERLTIME ; dsp_bios_cfg.h62
+
+;; module PRD (SCALAR, THOOKFXN)
+ .global PRD$ ; == 1
+ .global PRD_SCALAR ; dsp_bios_cfg.h62
+ .global PRD_THOOKFXN ; dsp_bios_cfg.cmd
+
+;; module RTDX (USERTDX, USERTEXECUTION, RTDXTYPE, DATAMEMSEG, BUFMEMSIZE)
+ .global RTDX$ ; == 1
+ .global RTDX_USERTDX ; dsp_bios_cfg.h62
+ .global RTDX_USERTEXECUTION ; dsp_bios_cfg.h62
+ .global RTDX_RTDXTYPE ; dsp_bios_cfg.h62
+ .global RTDX_DATAMEMSEG ; dsp_bios_cfg.cmd
+ .global RTDX_BUFMEMSIZE ; dsp_bios_cfg.h62
+
+;; module HST (RTDX, DSM, NONE, MAXFRAMESET, MAXFRAMEALLOWED, DSMBUFSEG, DSMMEMSIZE)
+ .global HST$ ; == 1
+ .global HST_RTDX ; dsp_bios_cfg.h62
+ .global HST_DSM ; dsp_bios_cfg.h62
+ .global HST_NONE ; dsp_bios_cfg.h62
+ .global HST_MAXFRAMESET ; dsp_bios_cfg.h62
+ .global HST_MAXFRAMEALLOWED ; dsp_bios_cfg.h62
+ .global HST_DSMBUFSEG ; dsp_bios_cfg.cmd
+ .global HST_DSMMEMSIZE ; dsp_bios_cfg.h62
+
+;; module HWI (ZEROTAB, GENERATE_RESET_VEC, POLARITYMASK, INTRMULTLOW, INTRMULTHIGH, CFGDISPATCHED)
+ .global HWI$ ; == 1
+ .global HWI_ZEROTAB ; dsp_bios_cfg.h62
+ .global HWI_GENERATE_RESET_VEC ; dsp_bios_cfg.h62
+ .global HWI_POLARITYMASK ; dsp_bios_cfg.h62
+ .global HWI_INTRMULTLOW ; dsp_bios_cfg.h62
+ .global HWI_INTRMULTHIGH ; dsp_bios_cfg.h62
+ .global HWI_CFGDISPATCHED ; dsp_bios_cfg.h62
+
+;; module SWI (EHOOKFXN, IHOOKFXN, EXECFXN, RUNFXN)
+ .global SWI$ ; == 1
+ .global SWI_EHOOKFXN ; dsp_bios_cfg.cmd
+ .global SWI_IHOOKFXN ; dsp_bios_cfg.cmd
+ .global SWI_EXECFXN ; dsp_bios_cfg.cmd
+ .global SWI_RUNFXN ; dsp_bios_cfg.cmd
+
+;; module TSK (STACKSIZE, STACKSEG, PRIORITY, VCREATEFXN, VDELETEFXN, VEXITFXN, SWITCHFXN, READYFXN, NUM_HOOKS)
+ .global TSK$ ; == 1
+ .global TSK_STACKSIZE ; dsp_bios_cfg.h62
+ .global TSK_STACKSEG ; dsp_bios_cfg.cmd
+ .global TSK_PRIORITY ; dsp_bios_cfg.h62
+ .global TSK_VCREATEFXN ; dsp_bios_cfg.cmd
+ .global TSK_VDELETEFXN ; dsp_bios_cfg.cmd
+ .global TSK_VEXITFXN ; dsp_bios_cfg.cmd
+ .global TSK_SWITCHFXN ; dsp_bios_cfg.h62
+ .global TSK_READYFXN ; dsp_bios_cfg.h62
+ .global TSK_NUM_HOOKS ; dsp_bios_cfg.h62
+
+;; module IDL (USECLKIDLTIME, CALIBRFXN, CALIBRERROR)
+ .global IDL$ ; == 1
+ .global IDL_USECLKIDLTIME ; dsp_bios_cfg.h62
+ .global IDL_CALIBRFXN ; dsp_bios_cfg.cmd
+ .global IDL_CALIBRERROR ; dsp_bios_cfg.h62
+
+;; module ISRC ()
+ .global ISRC$ ; == 1
+
+;; module LOG (ENABLED)
+ .global LOG$ ; == 1
+ .global LOG_ENABLED ; dsp_bios_cfg.h62
+
+;; module PIP (gNumEmbed, gNextId, OBJSIZE)
+ .global PIP$ ; == 0
+ .global PIP_gNumEmbed ; dsp_bios_cfg.h62
+ .global PIP_gNextId ; dsp_bios_cfg.h62
+ .global PIP_OBJSIZE ; dsp_bios_cfg.h62
+
+;; module SEM ()
+ .global SEM$ ; == 0
+
+;; module MBX ()
+ .global MBX$ ; == 0
+
+;; module QUE ()
+ .global QUE$ ; == 1
+
+;; module LCK ()
+ .global LCK$ ; == 1
+
+;; module STS ()
+ .global STS$ ; == 1
+
+;; module SYS (ABORTFXN, ERRORFXN, EXITFXN, PUTCFXN)
+ .global SYS$ ; == 1
+ .global SYS_ABORTFXN ; dsp_bios_cfg.cmd
+ .global SYS_ERRORFXN ; dsp_bios_cfg.cmd
+ .global SYS_EXITFXN ; dsp_bios_cfg.cmd
+ .global SYS_PUTCFXN ; dsp_bios_cfg.cmd
+
+;; module SIO ()
+ .global SIO$ ; == 0
+
+;; module GIO (CREATEFXN, DELETEFXN, PENDFXN, POSTFXN)
+ .global GIO$ ; == 0
+ .global GIO_CREATEFXN ; dsp_bios_cfg.cmd
+ .global GIO_DELETEFXN ; dsp_bios_cfg.cmd
+ .global GIO_PENDFXN ; dsp_bios_cfg.cmd
+ .global GIO_POSTFXN ; dsp_bios_cfg.cmd
+
+;; module DEV ()
+ .global DEV$ ; == 0
+
+;; module UDEV ()
+ .global UDEV$ ; == 0
+
+;; module DIO (STATIC, NUMTSKBASE, NUMSWIBASE)
+ .global DIO$ ; == 0
+ .global DIO_STATIC ; dsp_bios_cfg.h62
+ .global DIO_NUMTSKBASE ; dsp_bios_cfg.h62
+ .global DIO_NUMSWIBASE ; dsp_bios_cfg.h62
+
+;; module DGN ()
+ .global DGN$ ; == 0
+
+;; module DHL (gChannelsAvailable)
+ .global DHL$ ; == 0
+ .global DHL_gChannelsAvailable ; dsp_bios_cfg.h62
+
+;; module DPI ()
+ .global DPI$ ; == 0
+
+;; module MSGQ (USEMSGQ)
+ .global MSGQ$ ; == 0
+ .global MSGQ_USEMSGQ ; dsp_bios_cfg.h62
+
+;; module HOOK (KNLID)
+ .global HOOK$ ; == 0
+ .global HOOK_KNLID ; dsp_bios_cfg.h62
+
+;; MODULE CONFIGURATION
+
+;; ======== GBL_config ========
+ .asg 00H, _ROM
+ .asg 00H, _PROCID
+ .asg 04e20H, _CLKIN
+ .asg 036ee8H, _FREQ
+ .asg 03eH, _DSPTYPE
+ .asg 01a39H, _DSPSUBTYPE
+ .asg 01770H, _CLKTYPE
+ .asg 00H, _BIGENDIAN
+ .asg 01H, _USERINIT
+ .asg _GBL_setPLLto225MHz, _USERINITFXN
+ .asg 01H, _ENABLEINST
+ .asg 00H, _CACHE
+ .asg 01H, _L2CONFIGURE
+ .asg 00H, _L2MODE
+ .asg 00H, _L2PRIORITY
+ .asg 01H, _L2MARMASK
+ .asg 00H, _SUPPORTCSL
+ .asg 0dbefH, _TRCMASKVALUE
+ .asg 01H, _CALLCSLCFGINIT
+ .asg 00H, _C641XL2PRIORITY
+ .asg 00H, _L2MARMASK1
+ .asg 00H, _L2MARMASK2
+ .asg 00H, _L2MARMASK3
+ .asg 00H, _L2MARMASK4
+ .asg 00H, _L2MARMASK5
+ .asg 00H, _L2CONFIGALLOC
+ .asg 02226H, _L2ALLOC
+ GBL_config _ROM, _PROCID, _CLKIN, _FREQ, _DSPTYPE, _DSPSUBTYPE, _CLKTYPE, _BIGENDIAN, _USERINIT, _USERINITFXN, _ENABLEINST, _CACHE, _L2CONFIGURE, _L2MODE, _L2PRIORITY, _L2MARMASK, _SUPPORTCSL, _TRCMASKVALUE, _CALLCSLCFGINIT, _C641XL2PRIORITY, _L2MARMASK1, _L2MARMASK2, _L2MARMASK3, _L2MARMASK4, _L2MARMASK5, _L2CONFIGALLOC, _L2ALLOC
+
+;; ======== MEM_config ========
+ .asg 01H, _gNumHeap
+ .asg IRAM, _SEGZERO
+ .asg IRAM, _MALLOCSEG
+ .asg 00H, _USEMPC
+ MEM_config _gNumHeap, _SEGZERO, _MALLOCSEG, _USEMPC
+
+;; ======== OBJ_config ========
+ OBJ_config
+
+;; ======== BUF_config ========
+ .asg 01H, _ENABLED
+ BUF_config _ENABLED
+
+;; ======== POOL_config ========
+ .asg 00H, _USEPOOL
+ POOL_config _USEPOOL
+
+;; ======== CLK_config ========
+ .asg 04000H, _INTBIT
+ .asg 01940000H, _REGS
+ .asg 00H, _TIMERNUM
+ .asg 01H, _USETIMER
+ .asg 03e8H, _MICROSECS
+ .asg 020H, _TCR
+ .asg 00H, _TDDR
+ .asg 00H, _TDDRHIGH
+ .asg 0dbbaH, _PRD
+ .asg 00H, _PRDHIGH
+ .asg 0dbbaH, _COUNTSPMS
+ .asg 00H, _COUNTSPMSHIGH
+ .asg CLK_F_getshtime, _TIMEFXN
+ .asg HWI_F_dispatch, _HOOKFXN
+ .asg 01H, _CALDIV
+ .asg 04H, _CALMULT
+ .asg 01H, _HTIMEDIV
+ .asg 04H, _HTIMEMULT
+ .asg 01H, _LTIMEDIV
+ .asg 036ee8H, _LTIMEMULT
+ .asg 0dbbaH, _HTIMEPERLTIME
+ CLK_config _INTBIT, _REGS, _TIMERNUM, _USETIMER, _MICROSECS, _TCR, _TDDR, _TDDRHIGH, _PRD, _PRDHIGH, _COUNTSPMS, _COUNTSPMSHIGH, _TIMEFXN, _HOOKFXN, _CALDIV, _CALMULT, _HTIMEDIV, _HTIMEMULT, _LTIMEDIV, _LTIMEMULT, _HTIMEPERLTIME
+
+;; ======== PRD_config ========
+ .asg 04000H, _SCALAR
+ .asg _KNL_tick, _THOOKFXN
+ PRD_config _SCALAR, _THOOKFXN
+
+;; ======== RTDX_config ========
+ .asg 01H, _USERTDX
+ .asg 00H, _USERTEXECUTION
+ .asg "JTAG", _RTDXTYPE
+ .asg IRAM, _DATAMEMSEG
+ .asg 0408H, _BUFMEMSIZE
+ RTDX_config _USERTDX, _USERTEXECUTION, _RTDXTYPE, _DATAMEMSEG, _BUFMEMSIZE
+
+;; ======== HST_config ========
+ .asg 01H, _RTDX
+ .asg 00H, _DSM
+ .asg 00H, _NONE
+ .asg 040H, _MAXFRAMESET
+ .asg 0ffH, _MAXFRAMEALLOWED
+ .asg IRAM, _DSMBUFSEG
+ .asg 0400H, _DSMMEMSIZE
+ HST_config _RTDX, _DSM, _NONE, _MAXFRAMESET, _MAXFRAMEALLOWED, _DSMBUFSEG, _DSMMEMSIZE
+
+;; ======== HWI_config ========
+ .asg 01H, _ZEROTAB
+ .asg 00H, _GENERATE_RESET_VEC
+ .asg 00H, _POLARITYMASK
+ .asg 0310718afH, _INTRMULTLOW
+ .asg 082039a3H, _INTRMULTHIGH
+ .asg 04018H, _CFGDISPATCHED
+ HWI_config _ZEROTAB, _GENERATE_RESET_VEC, _POLARITYMASK, _INTRMULTLOW, _INTRMULTHIGH, _CFGDISPATCHED
+
+;; ======== SWI_config ========
+ .asg GBL_NULL, _EHOOKFXN
+ .asg GBL_NULL, _IHOOKFXN
+ .asg SWI_F_exec, _EXECFXN
+ .asg SWI_F_run, _RUNFXN
+ SWI_config _EHOOKFXN, _IHOOKFXN, _EXECFXN, _RUNFXN
+
+;; ======== TSK_config ========
+ .asg 0400H, _STACKSIZE
+ .asg MEM_NULL, _STACKSEG
+ .asg 01H, _PRIORITY
+ .asg _FXN_F_nop, _VCREATEFXN
+ .asg _FXN_F_nop, _VDELETEFXN
+ .asg _FXN_F_nop, _VEXITFXN
+ .asg 00H, _SWITCHFXN
+ .asg 00H, _READYFXN
+ .asg 00H, _NUM_HOOKS
+ TSK_config _STACKSIZE, _STACKSEG, _PRIORITY, _VCREATEFXN, _VDELETEFXN, _VEXITFXN, _SWITCHFXN, _READYFXN, _NUM_HOOKS
+
+;; ======== IDL_config ========
+ .asg 01H, _USECLKIDLTIME
+ .asg IDL_F_stub, _CALIBRFXN
+ .asg 06H, _CALIBRERROR
+ IDL_config _USECLKIDLTIME, _CALIBRFXN, _CALIBRERROR
+
+;; ======== ISRC_config ========
+ ISRC_config
+
+;; ======== LOG_config ========
+ .asg 01H, _ENABLED
+ LOG_config _ENABLED
+
+;; ======== PIP_config ========
+ .asg 02H, _gNumEmbed
+ .asg 00H, _gNextId
+ .asg 064H, _OBJSIZE
+ PIP_config _gNumEmbed, _gNextId, _OBJSIZE
+
+;; ======== SEM_config ========
+ SEM_config
+
+;; ======== MBX_config ========
+ MBX_config
+
+;; ======== QUE_config ========
+ QUE_config
+
+;; ======== LCK_config ========
+ LCK_config
+
+;; ======== STS_config ========
+ STS_config
+
+;; ======== SYS_config ========
+ .asg _UTL_doAbort, _ABORTFXN
+ .asg _UTL_doError, _ERRORFXN
+ .asg _UTL_halt, _EXITFXN
+ .asg _UTL_doPutc, _PUTCFXN
+ SYS_config _ABORTFXN, _ERRORFXN, _EXITFXN, _PUTCFXN
+
+;; ======== SIO_config ========
+ SIO_config
+
+;; ======== GIO_config ========
+ .asg _FXN_F_nop, _CREATEFXN
+ .asg _FXN_F_nop, _DELETEFXN
+ .asg _FXN_F_nop, _PENDFXN
+ .asg _FXN_F_nop, _POSTFXN
+ GIO_config _CREATEFXN, _DELETEFXN, _PENDFXN, _POSTFXN
+
+;; ======== DEV_config ========
+ DEV_config
+
+;; ======== UDEV_config ========
+ UDEV_config
+
+;; ======== DIO_config ========
+ .asg 00H, _STATIC
+ .asg 00H, _NUMTSKBASE
+ .asg 00H, _NUMSWIBASE
+ DIO_config _STATIC, _NUMTSKBASE, _NUMSWIBASE
+
+;; ======== DGN_config ========
+ DGN_config
+
+;; ======== DHL_config ========
+ .asg 00H, _gChannelsAvailable
+ DHL_config _gChannelsAvailable
+
+;; ======== DPI_config ========
+ DPI_config
+
+;; ======== MSGQ_config ========
+ .asg 00H, _USEMSGQ
+ MSGQ_config _USEMSGQ
+
+;; ======== HOOK_config ========
+ .asg 00H, _KNLID
+ HOOK_config _KNLID
+
+;; ======== MEM_Obj SDRAM ========
+;; This object defines 8MB for the DSP's off-chip memory
+;;
+;; MEM_Obj SDRAM (len, iAllocHeap, iSegZero, iHeapId)
+ .global SDRAM
+ .asg 0800000H, _len
+ .asg 00H, _iAllocHeap
+ .asg IRAM, _iSegZero
+ .asg segment_name, _iHeapId
+ MEM_Obj 1, SDRAM, 0, _len, _iAllocHeap, _iSegZero, _iHeapId
+
+;; ======== MEM_Obj IRAM ========
+;; Internal L2 memory
+;;
+;; MEM_Obj IRAM (len, iAllocHeap, iSegZero, iHeapId)
+ .global IRAM
+ .asg 040000H, _len
+ .asg 01H, _iAllocHeap
+ .asg IRAM, _iSegZero
+ .asg segment_name, _iHeapId
+ MEM_Obj 1, IRAM, 0, _len, _iAllocHeap, _iSegZero, _iHeapId
+
+;; ======== CLK_Obj PRD_clock ========
+;; This clock function calls PRD_tick from within the on-chip timer ISR
+;;
+;; CLK_Obj PRD_clock (function)
+ .global PRD_clock
+ .asg PRD_F_tick, _function
+ CLK_Obj 1, PRD_clock, 0, _function
+
+;; ======== HST_Obj RTA_fromHost ========
+;; Used to access LOG and STS data
+;;
+;; HST_Obj RTA_fromHost (mode, buf, framesize, numframes, stsflg, notify, arg0, arg1, lnk, bufFrameAlign)
+ .global RTA_fromHost
+ .asg "input", _mode
+ .asg "<NULL>", _buf
+ .asg 04H, _framesize
+ .asg 01H, _numframes
+ .asg 00H, _stsflg
+ .asg _FXN_F_nop, _notify
+ .asg 00H, _arg0
+ .asg 00H, _arg1
+ .asg "RTDX", _lnk
+ .asg 04H, _bufFrameAlign
+ HST_Obj 1, RTA_fromHost, 1, _mode, _buf, _framesize, _numframes, _stsflg, _notify, _arg0, _arg1, _lnk, _bufFrameAlign
+
+;; ======== HST_Obj RTA_toHost ========
+;; Used to access LOG and STS data
+;;
+;; HST_Obj RTA_toHost (mode, buf, framesize, numframes, stsflg, notify, arg0, arg1, lnk, bufFrameAlign)
+ .global RTA_toHost
+ .asg "output", _mode
+ .asg "<NULL>", _buf
+ .asg 040H, _framesize
+ .asg 01H, _numframes
+ .asg 00H, _stsflg
+ .asg _FXN_F_nop, _notify
+ .asg 00H, _arg0
+ .asg 00H, _arg1
+ .asg "RTDX", _lnk
+ .asg 04H, _bufFrameAlign
+ HST_Obj 1, RTA_toHost, 0, _mode, _buf, _framesize, _numframes, _stsflg, _notify, _arg0, _arg1, _lnk, _bufFrameAlign
+
+;; ======== HWI_Obj HWI_RESET ========
+;; defines function for the RESET ISR
+;;
+;; HWI_Obj HWI_RESET (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_RESET
+ .asg _c_int00, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 01H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_RESET, 0, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_NMI ========
+;; defines function for the NMI ISR
+;;
+;; HWI_Obj HWI_NMI (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_NMI
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 02H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_NMI, 1, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_RESERVED0 ========
+;; RESERVED for RTDX
+;;
+;; HWI_Obj HWI_RESERVED0 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_RESERVED0
+ .asg RESERVED, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "RTDX", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 04H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_RESERVED0, 2, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_RESERVED1 ========
+;; RESERVED for RTDX
+;;
+;; HWI_Obj HWI_RESERVED1 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_RESERVED1
+ .asg _RTDX_Poll, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "RTDX", _client
+ .asg 01H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 08H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_RESERVED1, 3, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT4 ========
+;; defines the INT4 Interrupt
+;;
+;; HWI_Obj HWI_INT4 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT4
+ .asg _ISR_AIC, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 01H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 010H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT4, 4, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT5 ========
+;; defines the INT5 Interrupt
+;;
+;; HWI_Obj HWI_INT5 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT5
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 020H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT5, 5, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT6 ========
+;; defines the INT6 Interrupt
+;;
+;; HWI_Obj HWI_INT6 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT6
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 040H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT6, 6, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT7 ========
+;; defines the INT7 Interrupt
+;;
+;; HWI_Obj HWI_INT7 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT7
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 080H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT7, 7, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT8 ========
+;; defines the INT8 Interrupt
+;;
+;; HWI_Obj HWI_INT8 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT8
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 0100H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT8, 8, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT9 ========
+;; defines the INT9 Interrupt
+;;
+;; HWI_Obj HWI_INT9 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT9
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 0200H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT9, 9, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT10 ========
+;; defines the INT10 Interrupt
+;;
+;; HWI_Obj HWI_INT10 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT10
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 0400H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT10, 10, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT11 ========
+;; defines the INT11 Interrupt
+;;
+;; HWI_Obj HWI_INT11 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT11
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 0800H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT11, 11, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT12 ========
+;; defines the INT12 Interrupt
+;;
+;; HWI_Obj HWI_INT12 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT12
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 01000H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT12, 12, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT13 ========
+;; defines the INT13 Interrupt
+;;
+;; HWI_Obj HWI_INT13 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT13
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 02000H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT13, 13, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT14 ========
+;; defines the INT14 Interrupt
+;;
+;; HWI_Obj HWI_INT14 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT14
+ .asg CLK_F_isr, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "CLK", _client
+ .asg 01H, _iUseDispatcher
+ .asg CLK_A_TABBEG, _iArg
+ .asg 04000H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT14, 14, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== HWI_Obj HWI_INT15 ========
+;; defines the INT15 Interrupt
+;;
+;; HWI_Obj HWI_INT15 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMask, iCCBitMask, iLoadTrack)
+ .global HWI_INT15
+ .asg HWI_unused, _function
+ .asg "Nothing", _monitor
+ .asg 00H, _addr
+ .asg "signed", _dataType
+ .asg "STS_add(*addr)", _operation
+ .asg "USER", _client
+ .asg 00H, _iUseDispatcher
+ .asg 00H, _iArg
+ .asg 08000H, _IntrMask
+ .asg 01H, _iCCBitMask
+ .asg 00H, _iLoadTrack
+ HWI_Obj 1, HWI_INT15, 15, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispatcher, _iArg, _IntrMask, _iCCBitMask, _iLoadTrack
+
+;; ======== SWI_Obj KNL_swi ========
+;; This Software Interrupt calls the TSK scheduler
+;;
+;; SWI_Obj KNL_swi (function, pri, mailbox, arg0, arg1, dorta, Order, filter, maxformat, sumformat, avgformat, filtmaxmult, filtsummult, unittype)
+ .global KNL_swi
+ .asg _KNL_run, _function
+ .asg 00H, _pri
+ .asg 00H, _mailbox
+ .asg 00H, _arg0
+ .asg 00H, _arg1
+ .asg 01H, _dorta
+ .asg 00H, _Order
+ .asg 02H, _filter
+ .asg "%g inst", _maxformat
+ .asg "%g inst", _sumformat
+ .asg "%.2f inst", _avgformat
+ .asg 01H, _filtmaxmult
+ .asg 01H, _filtsummult
+ .asg 00H, _unittype
+ SWI_Obj 1, KNL_swi, 0, _function, _pri, _mailbox, _arg0, _arg1, _dorta, _Order, _filter, _maxformat, _sumformat, _avgformat, _filtmaxmult, _filtsummult, _unittype
+
+;; ======== TSK_Obj TSK_idle ========
+;; This is the idle task; it only runs when no other task is ready
+;;
+;; TSK_Obj TSK_idle (iFXN, iARG0, iARG1, iARG2, iARG3, iARG4, iARG5, iARG6, iARG7, iAUTOSTK, iMANSTK, iSTKSZ, iSTKSEG, iPRI, iENV, iEXITFLAG, iUSETSKNAME, iSTATREG, Order, filter, maxformat, sumformat, avgformat, filtmaxmult, filtsummult, unittype)
+ .global TSK_idle
+ .asg IDL_F_loop, _iFXN
+ .asg 00H, _iARG0
+ .asg 00H, _iARG1
+ .asg 00H, _iARG2
+ .asg 00H, _iARG3
+ .asg 00H, _iARG4
+ .asg 00H, _iARG5
+ .asg 00H, _iARG6
+ .asg 00H, _iARG7
+ .asg 01H, _iAUTOSTK
+ .asg null, _iMANSTK
+ .asg 0400H, _iSTKSZ
+ .asg IRAM, _iSTKSEG
+ .asg 00H, _iPRI
+ .asg 00H, _iENV
+ .asg 01H, _iEXITFLAG
+ .asg 00H, _iUSETSKNAME
+ .asg 00H, _iSTATREG
+ .asg 00H, _Order
+ .asg 02H, _filter
+ .asg "%g inst", _maxformat
+ .asg "%g inst", _sumformat
+ .asg "%.2f inst", _avgformat
+ .asg 01H, _filtmaxmult
+ .asg 01H, _filtsummult
+ .asg 00H, _unittype
+ TSK_Obj 1, TSK_idle, 0, _iFXN, _iARG0, _iARG1, _iARG2, _iARG3, _iARG4, _iARG5, _iARG6, _iARG7, _iAUTOSTK, _iMANSTK, _iSTKSZ, _iSTKSEG, _iPRI, _iENV, _iEXITFLAG, _iUSETSKNAME, _iSTATREG, _Order, _filter, _maxformat, _sumformat, _avgformat, _filtmaxmult, _filtsummult, _unittype
+
+;; ======== IDL_Obj IDL_cpuLoad ========
+;; This object is required by the system to acquire CPU load data
+;;
+;; IDL_Obj IDL_cpuLoad (function, calibration)
+ .global IDL_cpuLoad
+ .asg IDL_F_busy, _function
+ .asg 01H, _calibration
+ IDL_Obj 1, IDL_cpuLoad, 0, _function, _calibration
+
+;; ======== IDL_Obj LNK_dataPump ========
+;; This object cannot be deleted
+;;
+;; IDL_Obj LNK_dataPump (function, calibration)
+ .global LNK_dataPump
+ .asg LNK_F_dataPump, _function
+ .asg 01H, _calibration
+ IDL_Obj 1, LNK_dataPump, 0, _function, _calibration
+
+;; ======== IDL_Obj RTA_dispatcher ========
+;; This object cannot be deleted
+;;
+;; IDL_Obj RTA_dispatcher (function, calibration)
+ .global RTA_dispatcher
+ .asg RTA_F_dispatch, _function
+ .asg 01H, _calibration
+ IDL_Obj 1, RTA_dispatcher, 0, _function, _calibration
+
+;; ======== LOG_Obj LOG_system ========
+;; This object is required by the system to accumulate execution trace information
+;;
+;; LOG_Obj LOG_system (bufseg, buflen, logtype, iType, iFormat)
+ .global LOG_system
+ .asg IRAM, _bufseg
+ .asg 040H, _buflen
+ .asg "circular", _logtype
+ .asg "system", _iType
+ .asg "0x%x, 0x%x, 0x%x", _iFormat
+ LOG_Obj 1, LOG_system, 0, _bufseg, _buflen, _logtype, _iType, _iFormat
+
+;; ======== STS_Obj IDL_busyObj ========
+;; This object is required by the system to accumulate CPU load statistics
+;;
+;; STS_Obj IDL_busyObj (prev, filter, maxformat, sumformat, avgformat, op, uType, iA, iB, iC, prevlow)
+ .global IDL_busyObj
+ .asg 00H, _prev
+ .asg 01H, _filter
+ .asg "%g", _maxformat
+ .asg "%g", _sumformat
+ .asg "%.2f", _avgformat
+ .asg 00H, _op
+ .asg 02H, _uType
+ .asg 01H, _iA
+ .asg 00H, _iB
+ .asg 01H, _iC
+ .asg 00H, _prevlow
+ STS_Obj 1, IDL_busyObj, 0, _prev, _filter, _maxformat, _sumformat, _avgformat, _op, _uType, _iA, _iB, _iC, _prevlow
+
+;; MODULE INITIALIZATION
+ .sect ".sysinit"
+ .global BIOS_init, _BIOS_init
+BIOS_init:
+_BIOS_init:
+ GBL_preamble
+ GBL_init
+ SEM_init
+ MEM_init
+ OBJ_init
+ BUF_init
+ POOL_init
+ CLK_init
+ PRD_init
+ RTDX_init
+ IDL_init
+ LCK_init
+ LOG_init
+ MBX_init
+ PIP_init
+ QUE_init
+ STS_init
+ SYS_init
+ HWI_init
+ HST_init
+ DEV_init
+ UDEV_init
+ DIO_init
+ DGN_init
+ DHL_init
+ DPI_init
+ SIO_init
+ GIO_init
+ MSGQ_init
+ SWI_init
+ HOOK_init
+ TSK_init
+ ISRC_init
+ GBL_postamble
+
+;; MODULE STARTUP
+ .sect ".sysinit"
+ .global BIOS_start, _BIOS_start
+BIOS_start:
+_BIOS_start:
+ GBL_preamble
+ GBL_startup
+ SEM_startup
+ MEM_startup
+ OBJ_startup
+ BUF_startup
+ POOL_startup
+ CLK_startup
+ PRD_startup
+ RTDX_startup
+ IDL_startup
+ LCK_startup
+ LOG_startup
+ MBX_startup
+ PIP_startup
+ QUE_startup
+ STS_startup
+ SYS_startup
+ HWI_startup
+ HST_startup
+ DEV_startup
+ UDEV_startup
+ DIO_startup
+ DGN_startup
+ DHL_startup
+ DPI_startup
+ SIO_startup
+ GIO_startup
+ MSGQ_startup
+ SWI_startup
+ HOOK_startup
+ TSK_startup
+ ISRC_startup
+ GBL_postamble
+
+;; EPILOGUE
+ GBL_end
+ MEM_end
+ OBJ_end
+ BUF_end
+ POOL_end
+ CLK_end
+ PRD_end
+ RTDX_end
+ HST_end
+ HWI_end
+ SWI_end
+ TSK_end
+ IDL_end
+ ISRC_end
+ LOG_end
+ PIP_end
+ SEM_end
+ MBX_end
+ QUE_end
+ LCK_end
+ STS_end
+ SYS_end
+ SIO_end
+ GIO_end
+ DEV_end
+ UDEV_end
+ DIO_end
+ DGN_end
+ DHL_end
+ DPI_end
+ MSGQ_end
+ HOOK_end
+
+ .copy confend.s62
diff --git a/Project/RTDSP/.gconf/RTDSP/lab5/RTDSP/dsp_bios_cfg_c.c b/Project/RTDSP/.gconf/RTDSP/lab5/RTDSP/dsp_bios_cfg_c.c
new file mode 100644
index 0000000..f13e3eb
--- /dev/null
+++ b/Project/RTDSP/.gconf/RTDSP/lab5/RTDSP/dsp_bios_cfg_c.c
@@ -0,0 +1,11 @@
+/* Do *not* directly modify this file. It was */
+/* generated by the Configuration Tool; any */
+/* changes risk being overwritten. */
+
+/* INPUT dsp_bios_.cdb */
+
+/* Include Header File */
+#include "dsp_bios_cfg.h"
+
+/* Config Structures */
+/* Handles */
diff --git a/Project/RTDSP/.launches/RTDSP.launch b/Project/RTDSP/.launches/RTDSP.launch
new file mode 100644
index 0000000..4e69bfc
--- /dev/null
+++ b/Project/RTDSP/.launches/RTDSP.launch
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<launchConfiguration type="com.ti.ccstudio.debug.core.CCELaunchType">
+<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;sourceLookupDirector&gt;&#13;&#10;&lt;sourceContainers duplicates=&quot;false&quot;&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;default/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.default&quot;/&gt;&#13;&#10;&lt;/sourceContainers&gt;&#13;&#10;&lt;/sourceLookupDirector&gt;&#13;&#10;"/>
+<booleanAttribute key="com.ti.ccstudio.debug.core.MRU_PROGRAM_S_ONLY" value="false"/>
+<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
+<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_ID" value="com.ti.ccstudio.debug.core.CCEDebugger"/>
+<stringAttribute key="CCEDebugOptions.CPU_RESOLVE_OPTION" value="exact"/>
+<stringAttribute key="org.eclipse.debug.ui.DISPLAY_NAME" value="RTDSP [Debug] - Spectrum Digital DSK-EVM-eZdsp onboard USB Emulator_0/TMS320C671X"/>
+<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/>
+<mapAttribute key="com.ti.ccstudio.debug.core.VARIABLE_STATE"/>
+<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="run"/>
+<stringAttribute key="com.ti.ccstudio.debug.core.DISPLAY_NAME_FORMAT" value="RTDSP [Debug] - {0}"/>
+<stringAttribute key="CCEDebugOptions.TARGET_CONFIGURATION_OPTION" value="full"/>
+<stringAttribute key="org.eclipse.cdt.launch.MEMORY_BLOCKS" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;memoryBlockExpressionList/&gt;&#13;&#10;"/>
+<stringAttribute key="com.ti.ccstudio.debug.core.MRU_PROGRAM_NAME" value="C:\github\RTDSP\Project\RTDSP\Debug\RTDSP.out"/>
+<stringAttribute key="com.ti.ccstudio.debug.core.MRU_MODULES" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;modules&gt;&#13;&#10;&lt;module name=&quot;C:\GIT\RTDSP\lab3\RTDSP\Debug\RTDSP.out&quot; time=&quot;Fri Jan 19 14:07:28 GMT 2018&quot; time_long=&quot;1516370848357&quot;/&gt;&#13;&#10;&lt;module name=&quot;C:\Github\RTDSP\lab3\RTDSP\Debug\RTDSP.out&quot; time=&quot;Tue Jan 23 11:15:11 GMT 2018&quot; time_long=&quot;1516706111426&quot;/&gt;&#13;&#10;&lt;module name=&quot;C:\GIT\RTDSP\lab4\RTDSP\Debug\RTDSP.out&quot; time=&quot;Thu Feb 01 11:44:21 GMT 2018&quot; time_long=&quot;1517485461898&quot;/&gt;&#13;&#10;&lt;module name=&quot;C:\github\RTDSP\lab4\RTDSP\Debug\RTDSP.out&quot; time=&quot;Thu Feb 15 13:55:55 GMT 2018&quot; time_long=&quot;1518702955359&quot;/&gt;&#13;&#10;&lt;module name=&quot;C:\Github\RTDSP\lab5\RTDSP\Debug\RTDSP.out&quot; time=&quot;Tue Feb 27 12:18:55 GMT 2018&quot; time_long=&quot;1519733935329&quot;/&gt;&#13;&#10;&lt;module name=&quot;C:\github\RTDSP\lab5\RTDSP\Debug\RTDSP.out&quot; time=&quot;Thu Mar 01 13:36:20 GMT 2018&quot; time_long=&quot;1519911380476&quot;/&gt;&#13;&#10;&lt;module name=&quot;C:\github\RTDSP\Project\RTDSP\Debug\RTDSP.out&quot; time=&quot;Mon Mar 05 10:28:49 GMT 2018&quot; time_long=&quot;1520245729915&quot;/&gt;&#13;&#10;&lt;/modules&gt;&#13;&#10;"/>
+<stringAttribute key="CCEDebugOptions.CPU_NAME" value="Spectrum Digital DSK-EVM-eZdsp onboard USB Emulator_0/TMS320C671X"/>
+<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="RTDSP"/>
+<stringAttribute key="org.eclipse.cdt.launch.GLOBAL_VARIABLES" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;globalVariableList/&gt;&#13;&#10;"/>
+<stringAttribute key="CCEDebugOptions.DEBUG_PROPERTIES.Spectrum Digital DSK-EVM-eZdsp onboard USB Emulator_0/TMS320C671X" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot; ?&gt;&#10;&lt;PropertyValues&gt;&#10;&#10; &lt;property id=&quot;ConnectOnStartup&quot;&gt;&#10; &lt;curValue&gt;1&lt;/curValue&gt;&#10; &lt;/property&gt;&#10;&#10;&lt;/PropertyValues&gt;&#10;"/>
+<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="Debug/RTDSP.out"/>
+<stringAttribute key="CCEDebugOptions.CPU_ISA" value="TMS320C671X"/>
+<stringAttribute key="com.ti.ccstudio.debug.core.BUILD_CONFIGURATION" value="Debug"/>
+<stringAttribute key="CCEDebugOptions.TARGET_CONFIGURATION_FILE" value="C:\github\RTDSP\Project\RTDSP\NewTargetConfiguration.ccxml"/>
+<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="com.ti.ccstudio.debug.core.sourceLocator"/>
+</launchConfiguration>
diff --git a/Project/RTDSP/.project b/Project/RTDSP/.project
new file mode 100644
index 0000000..9fa20e7
--- /dev/null
+++ b/Project/RTDSP/.project
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>RTDSP</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.rtsc.xdctools.buildDefinitions.XDC.xdcNature</nature>
+ <nature>org.eclipse.cdt.core.cnature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+ <nature>org.eclipse.cdt.core.ccnature</nature>
+ <nature>com.ti.ccstudio.managedbuild.core.ccsNature</nature>
+ </natures>
+</projectDescription>
diff --git a/Project/RTDSP/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/Project/RTDSP/.settings/org.eclipse.cdt.managedbuilder.core.prefs
new file mode 100644
index 0000000..34d768b
--- /dev/null
+++ b/Project/RTDSP/.settings/org.eclipse.cdt.managedbuilder.core.prefs
@@ -0,0 +1,8 @@
+#Tue Jan 16 16:59:04 GMT 2018
+com.ti.ccstudio.buildDefinitions.C6000.Debug.1896488960/internalBuilder/enabled=false
+com.ti.ccstudio.buildDefinitions.C6000.Debug.1896488960/internalBuilder/ignoreErr=true
+com.ti.ccstudio.buildDefinitions.C6000.Release.1767910452/internalBuilder/enabled=false
+com.ti.ccstudio.buildDefinitions.C6000.Release.1767910452/internalBuilder/ignoreErr=true
+eclipse.preferences.version=1
+environment/project=<?xml version\="1.0" encoding\="UTF-8"?>\r\n<environment/>\r\n
+environment/project/com.ti.ccstudio.buildDefinitions.C6000.Debug.1896488960=<?xml version\="1.0" encoding\="UTF-8"?>\r\n<environment/>\r\n
diff --git a/Project/RTDSP/FFT compiler-linker.txt b/Project/RTDSP/FFT compiler-linker.txt
new file mode 100644
index 0000000..bf0c9a1
--- /dev/null
+++ b/Project/RTDSP/FFT compiler-linker.txt
@@ -0,0 +1,9 @@
+
+*********************** linker *********************************
+
+"${CCS_INSTALL_ROOT}\C6000\dsk6713\FFT\complex.obj"
+"${CCS_INSTALL_ROOT}\C6000\dsk6713\FFT\fft_functions.obj"
+
+****************************************************************
+
+
diff --git a/Project/RTDSP/NewTargetConfiguration.ccxml b/Project/RTDSP/NewTargetConfiguration.ccxml
new file mode 100644
index 0000000..f66822c
--- /dev/null
+++ b/Project/RTDSP/NewTargetConfiguration.ccxml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<configurations XML_version="1.2" id="configurations_0">
+<configuration XML_version="1.2" id="Spectrum Digital DSK-EVM-eZdsp onboard USB Emulator_0">
+ <instance XML_version="1.2" desc="Spectrum Digital DSK-EVM-eZdsp onboard USB Emulator_0" href="connections\SDDSKUSB_Connection.xml" id="Spectrum Digital DSK-EVM-eZdsp onboard USB Emulator_0" xml="SDDSKUSB_Connection.xml" xmlpath="connections"/>
+ <connection XML_version="1.2" id="Spectrum Digital DSK-EVM-eZdsp onboard USB Emulator_0">
+ <instance XML_version="1.2" href="drivers\sdgo6713dsk.xml" id="drivers" xml="sdgo6713dsk.xml" xmlpath="drivers"/>
+ <platform XML_version="1.2" id="platform_0">
+ <instance XML_version="1.2" desc="DSK6713_0" href="boards\dsk6713.xml" id="DSK6713_0" xml="dsk6713.xml" xmlpath="boards"/>
+ </platform>
+ </connection>
+ </configuration>
+</configurations>
diff --git a/Project/RTDSP/Resources/CycleCounts.csv b/Project/RTDSP/Resources/CycleCounts.csv
new file mode 100644
index 0000000..62cc6e0
--- /dev/null
+++ b/Project/RTDSP/Resources/CycleCounts.csv
@@ -0,0 +1,16 @@
+Order,IIR Direct form None,IIR Direct form O2,IIR Direct from Transposed None,IIR Direct form Transposed O2
+4,414,268,276,189
+6,584,344,382,144
+8,754,420,488,154
+10,924,491,594,164
+12,1094,572,700,174
+14,1264,648,806,184
+16,1434,724,912,194
+18,1604,800,1018,204
+20,1774,876,1124,214
+22,1960,986,1242,224
+24,2138,1052,1360,234
+26,2308,1128,1474,244
+28,2478,1212,1580,254
+30,2640,1280,1694,264
+32,2802,1348,1784,274
diff --git a/Project/RTDSP/dsp_bios_.tcf b/Project/RTDSP/dsp_bios_.tcf
new file mode 100644
index 0000000..e439c70
--- /dev/null
+++ b/Project/RTDSP/dsp_bios_.tcf
@@ -0,0 +1,19 @@
+utils.loadPlatform("ti.platforms.dsk6713");
+
+/* The following DSP/BIOS Features are enabled. */
+bios.enableRealTimeAnalysis(prog);
+bios.enableRtdx(prog);
+bios.enableTskManager(prog);
+
+bios.HWI.instance("HWI_INT4").interruptSource = prog.get("MCSP_1_Receive");
+bios.HWI.instance("HWI_INT4").fxn = prog.extern("ISR_AIC");
+bios.HWI.instance("HWI_INT4").useDispatcher = 1;
+bios.HWI.instance("HWI_INT4").interruptSource = prog.get("MCSP_1_Transmit");
+bios.HWI.instance("HWI_INT4").interruptSource = prog.get("MCSP_1_Receive");
+bios.MEM.NOMEMORYHEAPS = 0;
+bios.MEM.instance("IRAM").createHeap = 1;
+bios.MEM.MALLOCSEG = prog.get("IRAM");
+bios.MEM.BIOSOBJSEG = prog.get("IRAM");
+// !GRAPHICAL_CONFIG_TOOL_SCRIPT_INSERT_POINT!
+
+prog.gen();
diff --git a/Project/RTDSP/frame.c b/Project/RTDSP/frame.c
new file mode 100644
index 0000000..a8fd350
--- /dev/null
+++ b/Project/RTDSP/frame.c
@@ -0,0 +1,207 @@
+/*************************************************************************************
+ DEPARTMENT OF ELECTRICAL AND ELECTRONIC ENGINEERING
+ IMPERIAL COLLEGE LONDON
+
+ EE 3.19: Real Time Digital Signal Processing
+ Dr Paul Mitcheson and Daniel Harvey
+
+ LAB 6: Frame Processing
+
+ ********* F R A M E. C **********
+
+ Demonstrates Frame Processing (Interrupt driven) on the DSK.
+
+ *************************************************************************************
+ Updated for use on 6713 DSK by Danny Harvey: May-Aug 2006
+ Updated for ccsV4 Sept 2010
+ ************************************************************************************/
+/*
+ * You should modify the code so that an FFT is applied to an input frame
+ * which is then IFFT'd and sent to the audio port.
+ */
+/**************************** Pre-processor statements ******************************/
+
+// Included so program can make use of DSP/BIOS configuration tool.
+#include <stdlib.h>
+#include "dsp_bios_cfg.h"
+
+/* The file dsk6713.h must be included in every program that uses the BSL. This
+ example also includes dsk6713_aic23.h because it uses the
+ AIC23 codec module (audio interface). */
+#include "dsk6713.h"
+#include "dsk6713_aic23.h"
+
+// math library (trig functions)
+#include <math.h>
+
+/* Some functions to help with Complex algebra and FFT. */
+#include "cmplx.h"
+#include "fft_functions.h"
+
+// Some functions to help with writing/reading the audio ports when using interrupts.
+#include <helper_functions_ISR.h>
+
+
+
+/******************************* Global declarations ********************************/
+
+/* Audio port configuration settings: these values set registers in the AIC23 audio
+ interface to configure it. See TI doc SLWS106D 3-3 to 3-10 for more info. */
+DSK6713_AIC23_Config Config = { \
+ /**********************************************************************/
+ /* REGISTER FUNCTION SETTINGS */
+ /**********************************************************************/\
+ 0x0017, /* 0 LEFTINVOL Left line input channel volume 0dB */\
+ 0x0017, /* 1 RIGHTINVOL Right line input channel volume 0dB */\
+ 0x01f9, /* 2 LEFTHPVOL Left channel headphone volume 0dB */\
+ 0x01f9, /* 3 RIGHTHPVOL Right channel headphone volume 0dB */\
+ 0x0011, /* 4 ANAPATH Analog audio path control DAC on, Mic boost 20dB*/\
+ 0x0000, /* 5 DIGPATH Digital audio path control All Filters off */\
+ 0x0000, /* 6 DPOWERDOWN Power down control All Hardware on */\
+ 0x0043, /* 7 DIGIF Digital audio interface format 16 bit */\
+ 0x008d, /* 8 SAMPLERATE Sample rate control 8 KHZ */\
+ 0x0001 /* 9 DIGACT Digital interface activation On */\
+ /**********************************************************************/
+};
+
+// Codec handle:- a variable used to identify audio interface
+DSK6713_AIC23_CodecHandle H_Codec;
+
+// PI defined here for use in your code
+#define PI 3.141592653589793
+
+#define BUFLEN 128 /* Frame buffer length must be even for real fft */
+
+
+/* Pointers to data buffers */
+float *input;
+float *intermediate;
+float *output;
+volatile int index = 0;
+
+
+ /******************************* Function prototypes *******************************/
+void init_hardware(void);
+void init_HWI(void);
+void ISR_AIC(void);
+void init_arrays(void);
+void wait_buffer(void);
+
+/********************************** Main routine ************************************/
+void main()
+{
+
+ /* setup arrays */
+ init_arrays();
+
+ /* initialize board and the audio port */
+ init_hardware();
+
+ /* initialize hardware interrupts */
+ init_HWI();
+
+
+ /* loop indefinitely, waiting for interrupts */
+ while(1)
+ {
+ wait_buffer();
+ };
+
+}
+
+
+
+/********************************** init_hardware() *********************************/
+void init_hardware()
+{
+ // Initialize the board support library, must be called first
+ DSK6713_init();
+
+ // Start the AIC23 codec using the settings defined above in config
+ H_Codec = DSK6713_AIC23_openCodec(0, &Config);
+
+ /* Function below sets the number of bits in word used by MSBSP (serial port) for
+ receives from AIC23 (audio port). We are using a 32 bit packet containing two
+ 16 bit numbers hence 32BIT is set for receive */
+ MCBSP_FSETS(RCR1, RWDLEN1, 32BIT);
+
+ /* Configures interrupt to activate on each consecutive available 32 bits
+ from Audio port hence an interrupt is generated for each L & R sample pair */
+ MCBSP_FSETS(SPCR1, RINTM, FRM);
+
+ /* These commands do the same thing as above but applied to data transfers to
+ the audio port */
+ MCBSP_FSETS(XCR1, XWDLEN1, 32BIT);
+ MCBSP_FSETS(SPCR1, XINTM, FRM);
+
+
+}
+/********************************** init_HWI() **************************************/
+void init_HWI(void)
+{
+ IRQ_globalDisable(); // Globally disables interrupts
+ IRQ_nmiEnable(); // Enables the NMI interrupt (used by the debugger)
+ IRQ_map(IRQ_EVT_RINT1,4); // Maps an event to a physical interrupt
+ IRQ_enable(IRQ_EVT_RINT1); // Enables the event
+ IRQ_globalEnable(); // Globally enables interrupts
+
+}
+/************************** Allocate memory for arrays *******************************/
+void init_arrays(void)
+{
+ input = (float *) calloc(BUFLEN, sizeof(float)); /* Input array */
+ output = (float *) calloc(BUFLEN, sizeof(float)); /* Output array */
+ intermediate = (float *) calloc(BUFLEN, sizeof(float)); /* Array for processing*/
+}
+
+/*************************** INTERRUPT SERVICE ROUTINE ******************************/
+
+// Map this to the appropriate interrupt in the DSP BIOS
+
+void ISR_AIC(void)
+{
+ short sample;
+ float scale = 11585;
+
+ sample = mono_read_16Bit();
+
+ /* add new data to input buffer
+ and scale so that 1v ~= 1.0 */
+ input[index] = ((float)sample)/scale;
+
+ /* write new output data */
+ mono_write_16Bit((short)(output[index]*scale));
+
+ /* update index and check for full buffer */
+ if (++index == BUFLEN)
+ index=0;
+}
+
+/******************* Wait for buffer of data to be input/output **********************/
+void wait_buffer(void)
+{
+ float *p;
+
+ /* wait for array index to be set to zero by ISR */
+ while(index);
+
+ /* rotate data arrays */
+ p = input;
+ input = output;
+ output = intermediate;
+ intermediate = p;
+
+ /************************* DO PROCESSING OF FRAME HERE **************************/
+
+
+ /*please add your code */
+
+
+ /**********************************************************************************/
+
+ /* wait here in case next sample has not yet been read in */
+ while(!index);
+}
+
+
+