VIDEO.CDB
上传用户:dahaojd
上传日期:2008-01-29
资源大小:14357k
文件大小:1016k
源码类别:

DSP编程

开发平台:

C/C++

  1. }
  2. object PRD_clock :: CLK {
  3.     param iComment :: "This clock function calls PRD_tick from within the on-chip timer ISR"
  4.     param iIsUsed :: 1
  5.     param iId :: 0
  6.     param iDelUser :: "PRD"
  7.     param iDelMsg :: "This object is automatically deleted by disabling the 'Use CLK Manager to drive PRD' option of PRD"
  8.     param function :: @PRD_F_tick
  9.     param Order :: 1
  10.     param iPri :: 0
  11. }
  12. type RTDX {
  13.     isa ObjectMgr
  14.     prop Label :: "RTDX - Real-Time Data Exchange Settings"
  15.     prop name :: "RTDX"
  16.     prop IsConfMod :: self.USERTDX
  17.     prop IsContainedIn :: IOF
  18.     prop GlobalIcon :: 145
  19.     prop InstanceIcon :: 146
  20.     prop GlobalHelpTopic :: (113)
  21.     prop InstanceHelpTopic :: (213)
  22.     prop InstancePropertyPage :: ("{f80273c0-3838-11d2-a32c-006097656921}")
  23.     prop GlobalPropertyPage :: ("{050a0600-3839-11d2-a32c-006097656921}")
  24.     prop AllocType :: (if self.USERTDX {"2, _rtdxDataAllocDesc, _rtdxDataSeg, _placement,
  25.      _rtdxTextAllocDesc, _rtdxTextSeg, _placement"} else {""})
  26.     prop _rtdxDataAllocDesc :: (" .%1L_data: {} , name")
  27.     prop _rtdxTextAllocDesc :: (if (MEM.ENABLELOADSEG == 1) {if (MEM.RTDXTEXTMEMSEG == MEM.LOADRTDXTEXTMEMSEG) {" .%1L_text: {} , name"} else {" .%1L_text: {} load > %2s, run , name, _loadRtdxTextMemSeg"}} else {" .%1L_text: {} , name"})
  28.     prop _rtdxDataSeg :: RTDX.DATAMEMSEG
  29.     prop _rtdxTextSeg :: MEM.RTDXTEXTMEMSEG
  30.     prop _loadRtdxTextMemSeg :: MEM.LOADRTDXTEXTMEMSEG
  31.     prop _placement :: (0x7fffffff / 2)
  32.     prop _objSize :: RTDX.BUFMEMSIZE
  33.     prop GenLinkPrologue :: (if self.USERTDX {"_RTDX_interrupt_mask = 0x%1x;n, _interruptMask"} else {""})
  34.     prop _interruptMask :: RTDX.MASK
  35.     prop cGen :: 1
  36.     prop noObjectAlias :: 1
  37.     prop cHeaderName :: if self.gNumOf > 0 {"rtdx.h"} else {""}
  38.     prop cGenHInst :: (if (GBL.DSPTYPE == 62) {if (self.iChannelMode == "output") {"extern far RTDX_outputChannel %0r;n"} else {"extern far RTDX_inputChannel %0r;n"}} else {if (self.iChannelMode == "output") {"extern RTDX_outputChannel %0r;n"} else {"extern RTDX_inputChannel %0r;n"}})
  39.     prop cGenCInst :: (if (self.iChannelMode == "output") {"RTDX_CreateOutputChannel(%0r);n"} else {"RTDX_CreateInputChannel(%0r);n"})
  40.     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)
  41.     prop localCanCreate :: ($e = "ok", if (RTDX.USERTDX != 1) {$e = self.error("RTDX manager not enabled")} , $e)
  42.     global gUser :: "USER" { 
  43.         prop Visible :: 0
  44.         prop Writable :: 0
  45.         prop NoGen :: 1
  46.     }
  47.     global gSetOf :: 0 { 
  48.         prop Visible :: 0
  49.         prop Writable :: 0
  50.         prop NoGen :: 1
  51.     }
  52.     global gNumOf :: 0 { 
  53.         prop Visible :: 0
  54.         prop Writable :: 0
  55.         prop NoGen :: 1
  56.     }
  57.     global gDirty :: 0 { 
  58.         prop Visible :: 0
  59.         prop Writable :: 0
  60.         prop NoGen :: 1
  61.     }
  62.     global gInitFlag :: 1 { 
  63.         prop Visible :: 0
  64.         prop Writable :: 0
  65.         prop NoGen :: 1
  66.     }
  67.     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) { 
  68.         prop Visible :: 0
  69.         prop Writable :: 0
  70.         prop NoGen :: 1
  71.     }
  72.     global USERTDX :: 1 { 
  73.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  74.         prop Label :: "Enable Real-Time Data Exchange (RTDX)"
  75.         prop JSName :: "ENABLERTDX"
  76.         prop Visible :: 1
  77.         prop Writable :: 1
  78.         prop NoGen :: 0
  79.         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"})
  80.     }
  81.     global USERTEXECUTION :: = 0 { 
  82.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  83.         prop Label :: "Enable Real-Time Execution Control"
  84.         prop Visible :: 0
  85.         prop Writable :: 0
  86.         prop NoGen :: 0
  87.     }
  88.     global RTDXTYPE :: "JTAG" { 
  89.         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
  90.         prop Enum :: "JTAG,HSRTDX,Simulator"
  91.         prop Label :: "RTDX Mode"
  92.         prop JSName :: "MODE"
  93.         prop Visible :: 1
  94.         prop Writable :: self.USERTDX
  95.         prop NoGen :: 1
  96.         prop Set :: (self.RTDXTYPE = $1, if (RTDX.CALLBACKOBJ != nil) {RTDX.CALLBACKOBJ.call()} , "ok")
  97.     }
  98.     global DATAMEMSEG :: SDRAM { 
  99.         prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
  100.         prop MemberType :: MEM
  101.         prop MemberTest :: MEM.dataMember($1)
  102.         prop Label :: "RTDX Data Segment (.rtdx_data)"
  103.         prop JSName :: "RTDXDATASEG"
  104.         prop Visible :: 1
  105.         prop Writable :: self.USERTDX
  106.         prop NoGen :: 0
  107.     }
  108.     global BUFMEMSIZE :: = (256 + 2) * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE) { 
  109.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  110.         prop Style :: 0x02
  111.         prop Label :: "RTDX Buffer Size (MAUs)"
  112.         prop JSName :: "BUFSIZE"
  113.         prop Visible :: 1
  114.         prop Writable :: self.USERTDX
  115.         prop NoGen :: 0
  116.         prop Set :: (if (HST.RTDX == 0) {self.BUFMEMSIZE = $1, GlobalStatus.gDirty = 1, "ok"} else {if ($1 < (HST.MAXFRAMESET + 2) * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE)) {self.error("size (in MAUs) must be at least: (largest configured HST channel framesize in words + 2) * (MAUs per word)")} else {self.BUFMEMSIZE = $1, GlobalStatus.gDirty = 1, if (HST.LNKTYPE == "RTDX") {HST.MAXFRAMEALLOWED = (self.BUFMEMSIZE / (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE)) - 2, "ok"} else {"ok"}}})
  117.     }
  118.     global TEXTMEMSEG :: SDRAM { 
  119.         prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
  120.         prop MemberType :: MEM
  121.         prop MemberTest :: MEM.codeMember($1)
  122.         prop Label :: "RTDX Text Segment (.rtdx_text)"
  123.         prop Visible :: 0
  124.         prop Writable :: self.USERTDX
  125.         prop NoGen :: 1
  126.     }
  127.     global MASK :: 0 { 
  128.         prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
  129.         prop Format :: "0x%08x"
  130.         prop Style :: 0x02
  131.         prop Label :: "RTDX Interrupt Mask"
  132.         prop JSName :: "INTERRUPTMASK"
  133.         prop Visible :: 1
  134.         prop Writable :: self.USERTDX
  135.         prop NoGen :: 1
  136.         prop Set :: (self.MASK = $1, "ok")
  137.     }
  138.     global CALLBACKOBJ :: HWI { 
  139.         prop Visible :: 0
  140.         prop Writable :: 0
  141.         prop NoGen :: 1
  142.     }
  143.     inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} { 
  144.         prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
  145.         prop Label :: "comment"
  146.         prop JSName :: "comment"
  147.         prop Visible :: 1
  148.         prop Writable :: if self.iDelUser == "USER" {1} else {0}
  149.         prop NoGen :: 1
  150.     }
  151.     inst iIsUsed :: 0 { 
  152.         prop Visible :: 0
  153.         prop Writable :: 0
  154.         prop NoGen :: 1
  155.     }
  156.     inst iId :: 0 { 
  157.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  158.         prop Style :: 0x01
  159.         prop Visible :: 0
  160.         prop Writable :: 1
  161.         prop NoGen :: 1
  162.     }
  163.     inst iDelUser :: "USER" { 
  164.         prop Visible :: 0
  165.         prop Writable :: 0
  166.         prop NoGen :: 1
  167.     }
  168.     inst iDelMsg :: "ok" { 
  169.         prop Visible :: 0
  170.         prop Writable :: 0
  171.         prop NoGen :: 1
  172.     }
  173.     inst iChannelMode :: "output" { 
  174.         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
  175.         prop Label :: "Channel Mode"
  176.         prop JSName :: "channelMode"
  177.         prop Enum :: "input,output"
  178.         prop Visible :: 1
  179.         prop Writable :: 1
  180.         prop NoGen :: 0
  181.         prop Set :: (GlobalStatus.gDirty = 1, self.iChannelMode = $1, "ok")
  182.     }
  183. }
  184. type HST {
  185.     isa ObjectMgr
  186.     prop name :: "HST"
  187.     prop Label :: "HST - Host Channel Manager"
  188.     prop IsContainedIn :: IOF
  189.     prop FileStream :: 1
  190.     prop GlobalIcon :: 107
  191.     prop InstanceIcon :: 108
  192.     prop GlobalHelpTopic :: (104)
  193.     prop InstanceHelpTopic :: (204)
  194.     prop maxObjs :: (GBL.DSPWORDSIZE)
  195.     prop dataSize :: ($b = 0, scan ($i; HST) {if ($i.IsConfObj()) {$b += (12 + $i.framesize) * $i.numframes + 100 + (5 * 4)} }, $b)
  196.     prop InstancePropertyPage :: ("{B7240DEA-AA51-11cf-9BFE-0000C0AC14C8}")
  197.     prop GlobalPropertyPage :: ("{B7240DEB-AA51-11cf-9BFE-0000C0AC14C8}")
  198.     prop DependsOn :: "HWI"
  199.     prop localCreate :: (PIP.gNumEmbed += 1, if (self.gNumOf == 0) {(LNK_dataPump.Create("HST"))} , "ok")
  200.     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")
  201.     prop AllocType :: ("2, _globalAllocDesc, _memSeg, _placement, 
  202.       _dsmAllocDesc, _dsmMemSeg, _placement")
  203.     prop _globalAllocDesc :: ("%8t .%1L: {%12tn  %1U_A_TABBEG = .;n _%1U_A_TABBEG = .;n %2Sn %1U_A_TABEND = .;n _%1U_A_TABEND = .;n  %1U_A_TABLEN = (. - _%1U_A_TABBEG) / %3d;n _%1U_A_TABLEN = (. - _%1U_A_TABBEG) / %3d;%8tn }, name, _linkString, _objSize")
  204.     prop _dsmAllocDesc :: ("%8t .dsm: {}")
  205.     prop _placement :: (0x7fffffff / 2)
  206.     prop AllocInst :: ("1, _instAllocDesc, _objMemSeg, _placement")
  207.     prop _instAllocDesc :: ("/* %0s buffer */n.hst%2d: %3S, name, _objId, _alignString, _objAlign")
  208.     prop _alignString :: if self.bufalign > 1 {"align = 0x%4x {}"} else {""}
  209.     prop _objId :: self.iId
  210.     prop _objAlign :: self.bufalign
  211.     prop _objMemSeg :: self.bufseg
  212.     prop _linkString :: if (self.gNumOf + self.gNumEmbed) > 0 {"*(.%1L)"} else {"/* no %1U objects */"}
  213.     prop _memSeg :: HST.OBJMEMSEG
  214.     prop _dsmMemSeg :: HST.DSMBUFSEG
  215.     prop _objSize :: (5 * 4)
  216.     prop cGen :: 1
  217.     prop cHeaderName :: if self.gNumOf > 0 {"hst.h"} else {""}
  218.     prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far HST_Obj %0r;n"} else {"extern HST_Obj %0r;n"})
  219.     prop modifiable :: ((if self.iDelUser == "USER" {1} else {0}))
  220.     global gUser :: "USER" { 
  221.         prop Visible :: 0
  222.         prop Writable :: 0
  223.         prop NoGen :: 1
  224.     }
  225.     global gSetOf :: 3 { 
  226.         prop Visible :: 0
  227.         prop Writable :: 0
  228.         prop NoGen :: 1
  229.     }
  230.     global gNumOf :: 2 { 
  231.         prop Visible :: 0
  232.         prop Writable :: 0
  233.         prop NoGen :: 1
  234.     }
  235.     global gDirty :: 1 { 
  236.         prop Visible :: 0
  237.         prop Writable :: 0
  238.         prop NoGen :: 1
  239.     }
  240.     global gInitFlag :: 1 { 
  241.         prop Visible :: 0
  242.         prop Writable :: 0
  243.         prop NoGen :: 1
  244.     }
  245.     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) { 
  246.         prop Visible :: 0
  247.         prop Writable :: 0
  248.         prop NoGen :: 1
  249.     }
  250.     global gNumEmbed :: 0 { 
  251.         prop NoGen :: 1
  252.     }
  253.     global OBJMEMSEG :: SDRAM { 
  254.         prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
  255.         prop MemberType :: MEM
  256.         prop MemberTest :: MEM.dataMember($1)
  257.         prop Label :: "Object Memory"
  258.         prop JSName :: "OBJMEMSEG"
  259.         prop Visible :: 1
  260.         prop Writable :: 1
  261.         prop NoGen :: 1
  262.     }
  263.     global LNKTYPE :: "RTDX" { 
  264.         prop Label :: "Host Link Type"
  265.         prop JSName :: "HOSTLINKTYPE"
  266.         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
  267.         prop Enum :: "RTDX,NONE"
  268.         prop Visible :: 1
  269.         prop Writable :: 1
  270.         prop NoGen :: 1
  271.         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)) - 2, "ok"} else {self.LNKTYPE = $1, self.MAXFRAMEALLOWED = (RTDX.BUFMEMSIZE / (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE)) - 2, "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"}})
  272.     }
  273.     global RTDX :: = if self.LNKTYPE == "RTDX" {1} else {0} { 
  274.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  275.         prop Label :: "Use RTDX for host link"
  276.         prop Visible :: 0
  277.         prop Writable :: 0
  278.         prop NoGen :: 0
  279.     }
  280.     global DSM :: = if self.LNKTYPE == "Shared Memory" {1} else {0} { 
  281.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  282.         prop Label :: "Use Shared Memory for host link"
  283.         prop Visible :: 0
  284.         prop Writable :: 0
  285.         prop NoGen :: 0
  286.     }
  287.     global EVM54 :: = if self.LNKTYPE == "EVM54" {1} else {0} { 
  288.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  289.         prop Label :: "Use EVM54's I/O ports for host link"
  290.         prop Visible :: 0
  291.         prop Writable :: 0
  292.         prop NoGen :: 1
  293.     }
  294.     global NONE :: = if self.LNKTYPE == "NONE" {1} else {0} { 
  295.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  296.         prop Label :: "No host link"
  297.         prop Visible :: 0
  298.         prop Writable :: 0
  299.         prop NoGen :: 0
  300.     }
  301.     global MAXFRAMESET :: 64 { 
  302.         prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
  303.         prop Label :: "MAXFRAMESET"
  304.         prop Visible :: 0
  305.         prop Writable :: 1
  306.         prop NoGen :: 0
  307.     }
  308.     global MAXFRAMEALLOWED :: 256 { 
  309.         prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
  310.         prop Label :: "MAXFRAMEALLOWED"
  311.         prop Visible :: 0
  312.         prop Writable :: 1
  313.         prop NoGen :: 0
  314.     }
  315.     global DSMBUFSEG :: = self.OBJMEMSEG { 
  316.         prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
  317.         prop MemberType :: MEM
  318.         prop MemberTest :: MEM.dataMember($1)
  319.         prop Label :: "Shared Memory Segment"
  320.         prop Visible :: 0
  321.         prop Writable :: self.DSM
  322.         prop NoGen :: 0
  323.     }
  324.     global DSMMEMSIZE :: = 1024 { 
  325.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  326.         prop Style :: 0x01 | 0x02
  327.         prop Label :: "Shared Memory Frame Size (MAUs)"
  328.         prop Visible :: 0
  329.         prop Writable :: self.DSM
  330.         prop NoGen :: 0
  331.         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"}})
  332.     }
  333.     inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} { 
  334.         prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
  335.         prop Label :: "comment"
  336.         prop JSName :: "comment"
  337.         prop Visible :: 1
  338.         prop Writable :: if self.iDelUser == "USER" {1} else {0}
  339.         prop NoGen :: 1
  340.     }
  341.     inst iIsUsed :: 0 { 
  342.         prop Visible :: 0
  343.         prop Writable :: 0
  344.         prop NoGen :: 1
  345.     }
  346.     inst iId :: 0 { 
  347.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  348.         prop Style :: 0x01
  349.         prop Visible :: 0
  350.         prop Writable :: 1
  351.         prop NoGen :: 1
  352.     }
  353.     inst iDelUser :: "USER" { 
  354.         prop Visible :: 0
  355.         prop Writable :: 0
  356.         prop NoGen :: 1
  357.     }
  358.     inst iDelMsg :: "ok" { 
  359.         prop Visible :: 0
  360.         prop Writable :: 0
  361.         prop NoGen :: 1
  362.     }
  363.     inst mode :: "output" { 
  364.         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
  365.         prop JSName :: "mode"
  366.         prop Enum :: "input,output"
  367.         prop Visible :: 1
  368.         prop Writable :: self.modifiable()
  369.         prop NoGen :: 0
  370.     }
  371.     inst bufseg :: = self.OBJMEMSEG { 
  372.         prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
  373.         prop Label :: "bufseg"
  374.         prop JSName :: "bufSeg"
  375.         prop MemberType :: MEM
  376.         prop MemberTest :: MEM.dataMember($1)
  377.         prop Visible :: 1
  378.         prop Writable :: 1
  379.         prop NoGen :: 1
  380.     }
  381.     inst bufalign :: 4 { 
  382.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  383.         prop Style :: 0x01 | 0x02
  384.         prop JSName :: "bufAlign"
  385.         prop Visible :: 1
  386.         prop Writable :: self.modifiable()
  387.         prop NoGen :: 1
  388.         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"}}})
  389.     }
  390.     inst buf :: "<NULL>" { 
  391.         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
  392.         prop Visible :: 0
  393.         prop Writable :: 0
  394.         prop NoGen :: 0
  395.     }
  396.     inst framesize :: 0x80 { 
  397.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  398.         prop Label :: "framesize (words)"
  399.         prop JSName :: "frameSize"
  400.         prop Style :: 0x01 | 0x02
  401.         prop Visible :: 1
  402.         prop Writable :: 1
  403.         prop NoGen :: 0
  404.         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) - 2")} 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"}})
  405.     }
  406.     inst numframes :: 2 { 
  407.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  408.         prop Style :: 0x01
  409.         prop JSName :: "numFrames"
  410.         prop Visible :: 1
  411.         prop Writable :: self.modifiable()
  412.         prop NoGen :: 0
  413.         prop Set :: (if ($1 < 1) {self.error("Channels must contain at least 1 frame.")} else {GlobalStatus.gDirty = 1, self.numframes = $1, "ok"})
  414.     }
  415.     inst stsflg :: 0 { 
  416.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  417.         prop Label :: "statistics"
  418.         prop JSName :: "statistics"
  419.         prop Visible :: 1
  420.         prop Writable :: 1
  421.         prop NoGen :: 0
  422.     }
  423.     inst notify :: @_FXN_F_nop { 
  424.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  425.         prop JSName :: "notifyFxn"
  426.         prop Visible :: 1
  427.         prop Writable :: (if self.iDelUser == "DHL" || self.iDelUser != "USER" {0} else {1})
  428.         prop NoGen :: 0
  429.         prop TabName :: "Notify Function"
  430.     }
  431.     inst arg0 :: 0 { 
  432.         prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
  433.         prop JSName :: "arg0"
  434.         prop Visible :: 1
  435.         prop Writable :: (if self.iDelUser == "DHL" || self.iDelUser != "USER" {0} else {1})
  436.         prop NoGen :: 0
  437.         prop TabName :: "Notify Function"
  438.     }
  439.     inst arg1 :: 0 { 
  440.         prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
  441.         prop JSName :: "arg1"
  442.         prop Visible :: 1
  443.         prop Writable :: (if self.iDelUser == "DHL" || self.iDelUser != "USER" {0} else {1})
  444.         prop NoGen :: 0
  445.         prop TabName :: "Notify Function"
  446.     }
  447.     inst lnk :: = if self.RTDX {"RTDX"} else {"NOTRTDX"} { 
  448.         prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
  449.         prop Label :: "link type"
  450.         prop Visible :: 0
  451.         prop Writable :: 0
  452.         prop NoGen :: 0
  453.     }
  454.     inst iDHLAvailable :: 0 { 
  455.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  456.         prop Label :: "Make this channel available for a new DHL device"
  457.         prop JSName :: "availableForDHL"
  458.         prop Set :: (if (($1 == 0) && (self.iDHLAvailable == 1)) {DHL.gChannelsAvailable--} else {if (($1 == 1) && (self.iDHLAvailable == 0)) {DHL.gChannelsAvailable++} }, self.iDHLAvailable = $1, "ok")
  459.         prop Writable :: self.modifiable()
  460.         prop Visible :: 1
  461.         prop NoGen :: 1
  462.     }
  463.     inst bufFrameAlign :: = self.bufalign { 
  464.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  465.         prop Visible :: 0
  466.         prop Writable :: 0
  467.         prop NoGen :: 0
  468.     }
  469. }
  470. object LNK_dataPump :: IDL {
  471.     param iComment :: "This object cannot be deleted"
  472.     param iIsUsed :: 1
  473.     param iId :: 0
  474.     param iDelUser :: "HST"
  475.     param iDelMsg :: "This object cannot be deleted"
  476.     param function :: @LNK_F_dataPump
  477.     param cycles :: 0
  478.     param calibration :: 1
  479.     param Order :: 1
  480.     param iPri :: 0
  481. }
  482. object RTA_dispatcher :: IDL {
  483.     param iComment :: "This object cannot be deleted"
  484.     param iIsUsed :: 1
  485.     param iId :: 0
  486.     param iDelUser :: "HST"
  487.     param iDelMsg :: "This object cannot be deleted"
  488.     param function :: @RTA_F_dispatch
  489.     param cycles :: 0
  490.     param calibration :: 1
  491.     param Order :: 2
  492.     param iPri :: 0
  493. }
  494. object RTA_fromHost :: HST {
  495.     param iComment :: "Used to access LOG and STS data"
  496.     param iIsUsed :: 1
  497.     param iId :: 1
  498.     param iDelUser :: "HST"
  499.     param iDelMsg :: "This object cannot be deleted"
  500.     param mode :: "input"
  501.     param bufalign :: 4
  502.     param buf :: "<NULL>"
  503.     param framesize :: 4
  504.     param numframes :: 1
  505.     param stsflg :: 0
  506.     param notify :: @_FXN_F_nop
  507.     param arg0 :: 0
  508.     param arg1 :: 0
  509.     param iDHLAvailable :: 0
  510. }
  511. object RTA_toHost :: HST {
  512.     param iComment :: "Used to access LOG and STS data"
  513.     param iIsUsed :: 1
  514.     param iId :: 0
  515.     param iDelUser :: "HST"
  516.     param iDelMsg :: "This object cannot be deleted"
  517.     param mode :: "output"
  518.     param bufalign :: 4
  519.     param buf :: "<NULL>"
  520.     param framesize :: 64
  521.     param numframes :: 1
  522.     param stsflg :: 0
  523.     param notify :: @_FXN_F_nop
  524.     param arg0 :: 0
  525.     param arg1 :: 0
  526.     param iDHLAvailable :: 0
  527. }
  528. type HWI {
  529.     isa ObjectMgr
  530.     prop name :: "HWI"
  531.     prop Label :: "HWI - Hardware Interrupt Service Routine Manager"
  532.     prop IsContainedIn :: SCH
  533.     prop SortChildHierView :: 0
  534.     prop GlobalIcon :: 109
  535.     prop InstanceIcon :: 110
  536.     prop InstanceHelpTopic :: (205)
  537.     prop GlobalHelpTopic :: (105)
  538.     prop dataSize :: (0 * HWI.gNumOf)
  539.     prop localCanCreate :: (self.error("New hardware interrupt objects cannot be created"))
  540.     prop InstancePropertyPage :: ("{B7240DE6-AA51-11cf-9BFE-0000C0AC14C7}")
  541.     prop GlobalPropertyPage :: ("{B7240DE7-AA51-11cf-9BFE-0000C0AC14C7}")
  542.     prop DependsOn :: "GBL,OBJ,CLK,IDL,LCK,LOG,MBX,MEM,PIP,PRD,QUE,RTDX,SEM,STS,SYS"
  543.     prop AllocType :: (if self.ZEROTAB {"1, _stubsAllocDesc, _memSeg, _placement"} else {if ((MEM.ENABLELOADSEG) && (MEM.VECMEMSEG != MEM.LOADVECMEMSEG)) {"2, _stubsAllocDesc, _memSeg, _placement,
  544.     _vectAllocDesc, _loadvecSeg, _minplace"} else {"2, _stubsAllocDesc, _memSeg, _placement,
  545. _vectAllocDesc, _vecSeg, _minplace"}})
  546.     prop _stubsAllocDesc :: (if ((MEM.ENABLELOADSEG) && (MEM.STUBMEMSEG != MEM.LOADSTUBMEMSEG)) {"%8t .%1L: {} load > %2s, run, name, _loadstubSeg"} else {"%8t .%1L: {} , name"})
  547.     prop _vectAllocDesc :: (if ((MEM.ENABLELOADSEG) && (MEM.VECMEMSEG != MEM.LOADVECMEMSEG)) {"%8t .%1L_vec: {%12tn %1U_A_VECS = .;n *(.hwi_vec)%8tn } run > %2s align = 0x400, load , name, _vecSeg"} else {"%8t .%1L_vec: {%12tn %1U_A_VECS = .;n *(.hwi_vec)%8tn } align = 0x400, name"})
  548.     prop _placement :: (0x7fffffff / 2)
  549.     prop _minplace :: 0
  550.     prop GenLinkPrologue :: (if self.ZEROTAB {if ((MEM.ENABLELOADSEG) && (MEM.VECMEMSEG != MEM.LOADVECMEMSEG)) {"SECTIONS {%4tn .%1L_vec: {%8tn %1U_A_VECS = .;n *(.hwi_vec)%4tn }  load >  %2s, run = 0x0 %0tn}n , name, _loadvecSeg"} else {"SECTIONS {%4tn .%1L_vec: 0x0 {%8tn %1U_A_VECS = .;n *(.hwi_vec)%4tn }%0tn}n, name"}} else {if self.GENERATE_RESET_VEC {"SECTIONS {%4tn .%1L_reset: 0x0 {}%0tn}n, name"} else {""}})
  551.     prop localInit :: (if (RTDX.CALLBACKOBJ != nil) {self.error("HWI initialization failure.")} , RTDX.CALLBACKOBJ = HWI)
  552.     prop call :: (if (RTDX.USERTDX == 0) {HWI_RESERVED1.function = @HWI_unused, HWI_RESERVED1.iUseDispatcher = 0, if (HWI_INT9.iSource == JTAGRTDX9 && HWI_INT9.function == @_RTDX_Poll) {HWI_INT9.iSource = MCSP_0_Transmit, HWI_INT9.iReMappable = 1, HWI_INT9.function = @HWI_unused, HWI_INT9.iUseDispatcher = 0, HWI_INT9.iIntrMask = "self", HWI_INT9.IntrMask = 0x200, HWI_INT9.client = "USER"} , 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") {if (HWI_INT9.iSource == JTAGRTDX9 && HWI_INT9.function == @_RTDX_Poll) {HWI_INT9.iSource = MCSP_0_Transmit, HWI_INT9.iReMappable = 1, HWI_INT9.function = @HWI_unused, HWI_INT9.iUseDispatcher = 0, HWI_INT9.iIntrMask = "self", HWI_INT9.IntrMask = 0x200, HWI_INT9.client = "USER"} , 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 {HWI_INT9.iSource = JTAGRTDX9, HWI_INT9.iReMappable = 0, HWI_INT9.function = @_RTDX_Poll, HWI_INT9.iUseDispatcher = 1, HWI_INT9.iIntrMask = "self", HWI_INT9.IntrMask = 0x208, HWI_INT9.client = "RTDX", 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"} }})
  553.     prop _memSeg :: MEM.STUBMEMSEG
  554.     prop _loadstubSeg :: MEM.LOADSTUBMEMSEG
  555.     prop _linkString :: ($b = 0, scan ($a; HWI) {if ($a.monitor != "Nothing") {$b = 1} }, if ($b == 1) {"*(.hwi)"} else {"/* no HWI stubs are necessary */"})
  556.     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)
  557.     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)
  558.     prop _vecSeg :: MEM.VECMEMSEG
  559.     prop _loadvecSeg :: MEM.LOADVECMEMSEG
  560.     global gUser :: "USER" { 
  561.         prop Visible :: 0
  562.         prop Writable :: 0
  563.         prop NoGen :: 1
  564.     }
  565.     global gSetOf :: 65535 { 
  566.         prop Visible :: 0
  567.         prop Writable :: 0
  568.         prop NoGen :: 1
  569.     }
  570.     global gNumOf :: 16 { 
  571.         prop Visible :: 0
  572.         prop Writable :: 0
  573.         prop NoGen :: 1
  574.     }
  575.     global gDirty :: 1 { 
  576.         prop Visible :: 0
  577.         prop Writable :: 0
  578.         prop NoGen :: 1
  579.     }
  580.     global gInitFlag :: 1 { 
  581.         prop Visible :: 0
  582.         prop Writable :: 0
  583.         prop NoGen :: 1
  584.     }
  585.     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) { 
  586.         prop Visible :: 0
  587.         prop Writable :: 0
  588.         prop NoGen :: 1
  589.     }
  590.     global STUBMEMSEG :: SDRAM { 
  591.         prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
  592.         prop MemberType :: MEM
  593.         prop MemberTest :: MEM.codeMember($1)
  594.         prop Label :: "Function Stub Memory"
  595.         prop Visible :: 0
  596.         prop Writable :: 1
  597.         prop NoGen :: 1
  598.     }
  599.     global ZEROTAB :: = MEM.VECMEMSEG.base == 0 { 
  600.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  601.         prop Writable :: 0
  602.         prop Visible :: 0
  603.     }
  604.     global VECMEMSEG :: SDRAM { 
  605.         prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
  606.         prop MemberType :: MEM
  607.         prop Label :: "Interrupt Service Table Memory"
  608.         prop Visible :: 0
  609.         prop Writable :: 1
  610.         prop NoGen :: 1
  611.         prop MemberTest :: MEM.codeMember($1)
  612.         prop Set :: (self.VECMEMSEG = $1, if ($1.base == 0) {self.GENERATE_RESET_VEC = 0} , "ok")
  613.     }
  614.     global GENERATE_RESET_VEC :: 0 { 
  615.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  616.         prop Label :: "Generate RESET vector at address 0 "
  617.         prop JSName :: "RESETVECTOR"
  618.         prop Writable :: self.ZEROTAB == 0
  619.         prop Visible :: 1
  620.         prop NoGen :: 0
  621.     }
  622.     global EXT4_POLARITY :: "low-to-high" { 
  623.         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
  624.         prop Enum :: "low-to-high,high-to-low"
  625.         prop Label :: "External Interrupt Pin 4 Polarity"
  626.         prop JSName :: "EXTPIN4POLARITY"
  627.         prop Visible :: 1
  628.         prop Writable :: 1
  629.         prop NoGen :: 1
  630.     }
  631.     global EXT5_POLARITY :: "low-to-high" { 
  632.         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
  633.         prop Enum :: "low-to-high,high-to-low"
  634.         prop Label :: "External Interrupt Pin 5 Polarity"
  635.         prop JSName :: "EXTPIN5POLARITY"
  636.         prop Visible :: 1
  637.         prop Writable :: 1
  638.         prop NoGen :: 1
  639.     }
  640.     global EXT6_POLARITY :: "low-to-high" { 
  641.         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
  642.         prop Enum :: "low-to-high,high-to-low"
  643.         prop Label :: "External Interrupt Pin 6 Polarity"
  644.         prop JSName :: "EXTPIN6POLARITY"
  645.         prop Visible :: 1
  646.         prop Writable :: 1
  647.         prop NoGen :: 1
  648.     }
  649.     global EXT7_POLARITY :: "low-to-high" { 
  650.         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
  651.         prop Enum :: "low-to-high,high-to-low"
  652.         prop Label :: "External Interrupt Pin 7 Polarity"
  653.         prop JSName :: "EXTPIN7POLARITY"
  654.         prop Visible :: 1
  655.         prop Writable :: 1
  656.         prop NoGen :: 1
  657.     }
  658.     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 { 
  659.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  660.         prop Visible :: 0
  661.         prop Writable :: 0
  662.         prop NoGen :: 0
  663.     }
  664.     global INTRMULTLOW :: = (HWI_INT4.iSource.iIntrSelectNum) | (HWI_INT5.iSource.iIntrSelectNum << 5) | (HWI_INT6.iSource.iIntrSelectNum << 10) | (HWI_INT7.iSource.iIntrSelectNum << 16) | (HWI_INT8.iSource.iIntrSelectNum << 21) | (HWI_INT9.iSource.iIntrSelectNum << 26) { 
  665.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  666.         prop Style :: 0x02
  667.         prop Writable :: 0
  668.         prop Visible :: 0
  669.         prop NoGen :: 0
  670.     }
  671.     global INTRMULTHIGH :: = (HWI_INT10.iSource.iIntrSelectNum) | (HWI_INT11.iSource.iIntrSelectNum << 5) | (HWI_INT12.iSource.iIntrSelectNum << 10) | (HWI_INT13.iSource.iIntrSelectNum << 16) | (HWI_INT14.iSource.iIntrSelectNum << 21) | (HWI_INT15.iSource.iIntrSelectNum << 26) { 
  672.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  673.         prop Style :: 0x02
  674.         prop Writable :: 0
  675.         prop Visible :: 0
  676.         prop NoGen :: 0
  677.     }
  678.     inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} { 
  679.         prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
  680.         prop Label :: "comment"
  681.         prop JSName :: "comment"
  682.         prop Visible :: 1
  683.         prop Writable :: if self.iDelUser == "USER" {1} else {0}
  684.         prop NoGen :: 1
  685.     }
  686.     inst iIsUsed :: 0 { 
  687.         prop Visible :: 0
  688.         prop Writable :: 0
  689.         prop NoGen :: 1
  690.     }
  691.     inst iId :: 0 { 
  692.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  693.         prop Style :: 0x01
  694.         prop Visible :: 0
  695.         prop Writable :: 1
  696.         prop NoGen :: 1
  697.     }
  698.     inst iDelUser :: "USER" { 
  699.         prop Visible :: 0
  700.         prop Writable :: 0
  701.         prop NoGen :: 1
  702.     }
  703.     inst iDelMsg :: "ok" { 
  704.         prop Visible :: 0
  705.         prop Writable :: 0
  706.         prop NoGen :: 1
  707.     }
  708.     inst iSource :: Reset { 
  709.         prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
  710.         prop MemberType :: ISRC
  711.         prop MemberTest :: 1
  712.         prop Label :: "interrupt source"
  713.         prop JSName :: "interruptSource"
  714.         prop Visible :: 1
  715.         prop Writable :: self.iReMappable
  716.         prop NoGen :: 1
  717.         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, "ok"}}}}})
  718.     }
  719.     inst iReMappable :: 1 { 
  720.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  721.         prop Visible :: 0
  722.         prop Writable :: 0
  723.         prop NoGen :: 1
  724.     }
  725.     inst iIntrEnableMask :: 0 { 
  726.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  727.         prop Style :: 0x02
  728.         prop Visible :: 0
  729.         prop Writable :: 0
  730.         prop NoGen :: 1
  731.     }
  732.     inst function :: @HWI_unused { 
  733.         prop JSName :: "fxn"
  734.         prop Visible :: 1
  735.         prop Writable :: if ((self.function == @RESERVED) || (self.client != "USER")) {0} else {1}
  736.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  737.         prop NoGen :: 0
  738.         prop Set :: (self.function = $1, GlobalStatus.gDirty = 1, "ok")
  739.     }
  740.     inst iSTSObj :: HWI_RESETSTS { 
  741.         prop Visible :: 0
  742.         prop Writable :: 0
  743.         prop NoGen :: 1
  744.     }
  745.     inst monitor :: "Nothing" { 
  746.         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
  747.         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"
  748.         prop JSName :: "monitor"
  749.         prop Visible :: 1
  750.         prop Writable :: ((self.function != @HWI_unused && self.function != @RESERVED) && (self.iId != 0))
  751.         prop NoGen :: 0
  752.         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"})
  753.     }
  754.     inst saveAddr :: 0 { 
  755.         prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
  756.         prop Visible :: 0
  757.         prop Writable :: 0
  758.         prop NoGen :: 1
  759.     }
  760.     inst saveType :: "signed" { 
  761.         prop Visible :: 0
  762.         prop Writable :: 0
  763.         prop NoGen :: 1
  764.     }
  765.     inst addr :: 0 { 
  766.         prop JSName :: "addr"
  767.         prop Visible :: 1
  768.         prop Writable :: (if self.monitor == "Data Value" {1} else {0})
  769.         prop NoGen :: 0
  770.         prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
  771.         prop Format :: if GBL.DSPTYPE == 62 {"0x%08x"} else {"0x%04x"}
  772.         prop Set :: (self.addr = $1, self.saveAddr = $1, "ok")
  773.     }
  774.     inst dataType :: "signed" { 
  775.         prop Visible :: 1
  776.         prop Writable :: (if self.monitor == "Nothing" {0} else {1})
  777.         prop NoGen :: 0
  778.         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
  779.         prop Enum :: "signed,unsigned"
  780.         prop Label :: "type"
  781.         prop JSName :: "dataType"
  782.         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")})
  783.     }
  784.     inst operation :: "STS_add(*addr)" { 
  785.         prop Visible :: 1
  786.         prop Writable :: (if self.monitor == "Nothing" {0} else {1})
  787.         prop NoGen :: 0
  788.         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
  789.         prop JSName :: "operation"
  790.         prop Enum :: "STS_add(*addr),STS_delta(*addr),STS_add(-*addr),STS_delta(-*addr),STS_add(|*addr|),STS_delta(|*addr|)"
  791.         prop Set :: (if (self.monitor != "Nothing") {self.operation = $1, "ok"} else {self.error("The monitor field must set to modify this field")})
  792.     }
  793.     inst client :: "USER" { 
  794.         prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
  795.         prop Visible :: 0
  796.         prop Writable :: 0
  797.         prop NoGen :: 0
  798.     }
  799.     inst iUseDispatcher :: 0 { 
  800.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  801.         prop Label :: "Use Dispatcher"
  802.         prop JSName :: "useDispatcher"
  803.         prop Visible :: 1
  804.         prop Writable :: if (self.client == "USER") {1} else {0}
  805.         prop NoGen :: 0
  806.         prop TabName :: "Dispatcher"
  807.         prop Set :: (if (self == HWI_NMI) {self.error("HWI dispatcher can't be used for  NMI")} else {self.iUseDispatcher = $1, "ok"})
  808.     }
  809.     inst iArg :: 0 { 
  810.         prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
  811.         prop Label :: "Arg"
  812.         prop JSName :: "arg"
  813.         prop Visible :: 1
  814.         prop Writable :: if ((self.iUseDispatcher == 1) && (self.client == "USER")) {1} else {0}
  815.         prop NoGen :: 0
  816.         prop TabName :: "Dispatcher"
  817.         prop Set :: (self.iArg = $1, "ok")
  818.     }
  819.     inst iIntrMask :: "self" { 
  820.         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
  821.         prop Label :: "Interrupt Mask"
  822.         prop JSName :: "interruptMask"
  823.         prop Enum :: "all,none,self,bitmask"
  824.         prop Visible :: 1
  825.         prop Writable :: if (self.iUseDispatcher == 1) {1} else {0}
  826.         prop NoGen :: 1
  827.         prop TabName :: "Dispatcher"
  828.         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")
  829.     }
  830.     inst IntrMask :: (1 << self.iId) { 
  831.         prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
  832.         prop Format :: "0x%04x"
  833.         prop Style :: 0x02
  834.         prop Label :: "Interrupt Bit Mask"
  835.         prop JSName :: "interruptBitMask"
  836.         prop Visible :: 1
  837.         prop Writable :: if ((self.iUseDispatcher == 1) && (self.iIntrMask == "bitmask")) {1} else {0}
  838.         prop NoGen :: 0
  839.         prop TabName :: "Dispatcher"
  840.         prop Set :: (if ($1 > 0xffff) {self.error("Invalid Number")} else {self.IntrMask = $1, "ok"})
  841.     }
  842.     inst iCacheControl :: 1 { 
  843.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  844.         prop Label :: "Don't modify cache control"
  845.         prop JSName :: "cacheControl"
  846.         prop Visible :: 1
  847.         prop Writable :: if (self.iUseDispatcher == 1) {1} else {0}
  848.         prop NoGen :: 1
  849.         prop TabName :: "Dispatcher"
  850.         prop Set :: (if ($1 == 1) {self.iCCBitMask = 0x1} else {self.iCCBitMask = (self.iPCCBitMask | self.iDCCBitMask)}, self.iCacheControl = $1, "ok")
  851.     }
  852.     inst iPCCMask :: (if (GBL.DSPSUBTYPE == 6200 || GBL.DSPSUBTYPE == 6700) {"mapped"} else {"cache enable"}) { 
  853.         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
  854.         prop Enum :: "mapped,cache enable,cache freeze,cache bypass"
  855.         prop Label :: "Program Cache Control Mask"
  856.         prop JSName :: "progCacheMask"
  857.         prop Visible :: 1
  858.         prop Writable :: if ((self.iUseDispatcher == 1) && (self.iCacheControl == 0)) {1} else {0}
  859.         prop NoGen :: 1
  860.         prop TabName :: "Dispatcher"
  861.         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"})
  862.     }
  863.     inst iPCCBitMask :: 0x0000 { 
  864.         prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
  865.         prop Visible :: 0
  866.         prop Writable :: 0
  867.         prop NoGen :: 1
  868.     }
  869.     inst iDCCMask :: (if (GBL.DSPSUBTYPE == 6200 || GBL.DSPSUBTYPE == 6700) {"mapped"} else {"cache enable"}) { 
  870.         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
  871.         prop Enum :: "mapped,cache enable,cache freeze,cache bypass"
  872.         prop Label :: "Data Cache Control Mask"
  873.         prop JSName :: "dataCacheMask"
  874.         prop Visible :: 1
  875.         prop Writable :: if ((self.iUseDispatcher == 1) && (self.iCacheControl == 0)) {1} else {0}
  876.         prop NoGen :: 1
  877.         prop TabName :: "Dispatcher"
  878.         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"})
  879.     }
  880.     inst iDCCBitMask :: 0x0000 { 
  881.         prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
  882.         prop Visible :: 0
  883.         prop Writable :: 0
  884.         prop NoGen :: 1
  885.     }
  886.     inst iCCBitMask :: 1 { 
  887.         prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
  888.         prop Visible :: 0
  889.         prop Writable :: 0
  890.         prop NoGen :: 0
  891.     }
  892. }
  893. object HWI_RESET_STS :: STS {
  894.     param iComment :: "provides statistics for the RESET ISR"
  895.     param iIsUsed :: 0
  896.     param iId :: 0
  897.     param iDelUser :: "HWI"
  898.     param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
  899.     param prev :: 0
  900.     param format :: "%g"
  901.     param unittype :: "Not time based"
  902.     param operation :: "Nothing"
  903.     param iA :: 1
  904.     param iB :: 0
  905.     param iC :: 1
  906.     param prevhigh :: 0
  907.     param prevlow :: 0
  908. }
  909. object HWI_RESET :: HWI {
  910.     param iComment :: "defines function for the RESET ISR"
  911.     param iIsUsed :: 1
  912.     param iId :: 0
  913.     param iDelUser :: "HWI"
  914.     param iDelMsg :: "Hardware interrupt objects cannot be deleted"
  915.     param iSource :: Reset
  916.     param iReMappable :: 0
  917.     param iIntrEnableMask :: 1
  918.     param function :: @_c_int00
  919.     param iSTSObj :: HWI_RESET_STS
  920.     param monitor :: "Nothing"
  921.     param saveAddr :: 0
  922.     param saveType :: "signed"
  923.     param addr :: 0
  924.     param dataType :: "signed"
  925.     param operation :: "STS_add(*addr)"
  926.     param client :: "USER"
  927.     param iUseDispatcher :: 0
  928.     param iArg :: 0
  929.     param iIntrMask :: "self"
  930.     param IntrMask :: 1
  931.     param iCacheControl :: 1
  932.     param iPCCMask :: "cache enable"
  933.     param iPCCBitMask :: 0
  934.     param iDCCMask :: "cache enable"
  935.     param iDCCBitMask :: 0
  936.     param iCCBitMask :: 1
  937. }
  938. object HWI_NMI_STS :: STS {
  939.     param iComment :: "provides statistics for the NMI ISR"
  940.     param iIsUsed :: 0
  941.     param iId :: 0
  942.     param iDelUser :: "HWI"
  943.     param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
  944.     param prev :: 0
  945.     param format :: "%g"
  946.     param unittype :: "Not time based"
  947.     param operation :: "Nothing"
  948.     param iA :: 1
  949.     param iB :: 0
  950.     param iC :: 1
  951.     param prevhigh :: 0
  952.     param prevlow :: 0
  953. }
  954. object HWI_NMI :: HWI {
  955.     param iComment :: "defines function for the NMI ISR"
  956.     param iIsUsed :: 1
  957.     param iId :: 1
  958.     param iDelUser :: "HWI"
  959.     param iDelMsg :: "Hardware interrupt objects cannot be deleted"
  960.     param iSource :: Non_Maskable
  961.     param iReMappable :: 0
  962.     param iIntrEnableMask :: 2
  963.     param function :: @HWI_unused
  964.     param iSTSObj :: HWI_NMI_STS
  965.     param monitor :: "Nothing"
  966.     param saveAddr :: 0
  967.     param saveType :: "signed"
  968.     param addr :: 0
  969.     param dataType :: "signed"
  970.     param operation :: "STS_add(*addr)"
  971.     param client :: "USER"
  972.     param iUseDispatcher :: 0
  973.     param iArg :: 0
  974.     param iIntrMask :: "self"
  975.     param IntrMask :: 2
  976.     param iCacheControl :: 1
  977.     param iPCCMask :: "cache enable"
  978.     param iPCCBitMask :: 0
  979.     param iDCCMask :: "cache enable"
  980.     param iDCCBitMask :: 0
  981.     param iCCBitMask :: 1
  982. }
  983. object HWI_RESERVED0_STS :: STS {
  984.     param iComment :: "This STS object is being used by a HWI object and cannot be deleted"
  985.     param iIsUsed :: 0
  986.     param iId :: 0
  987.     param iDelUser :: "HWI"
  988.     param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
  989.     param prev :: 0
  990.     param format :: "%g"
  991.     param unittype :: "Not time based"
  992.     param operation :: "Nothing"
  993.     param iA :: 1
  994.     param iB :: 0
  995.     param iC :: 1
  996.     param prevhigh :: 0
  997.     param prevlow :: 0
  998. }
  999. object HWI_RESERVED0 :: HWI {
  1000.     param iComment :: "RESERVED for RTDX"
  1001.     param iIsUsed :: 1
  1002.     param iId :: 2
  1003.     param iDelUser :: "HWI"
  1004.     param iDelMsg :: "Hardware interrupt objects cannot be deleted"
  1005.     param iSource :: Reserved
  1006.     param iReMappable :: 0
  1007.     param iIntrEnableMask :: 4
  1008.     param function :: @RESERVED
  1009.     param iSTSObj :: HWI_RESERVED0_STS
  1010.     param monitor :: "Nothing"
  1011.     param saveAddr :: 0
  1012.     param saveType :: "signed"
  1013.     param addr :: 0
  1014.     param dataType :: "signed"
  1015.     param operation :: "STS_add(*addr)"
  1016.     param client :: "RTDX"
  1017.     param iUseDispatcher :: 0
  1018.     param iArg :: 0
  1019.     param iIntrMask :: "self"
  1020.     param IntrMask :: 4
  1021.     param iCacheControl :: 1
  1022.     param iPCCMask :: "cache enable"
  1023.     param iPCCBitMask :: 0
  1024.     param iDCCMask :: "cache enable"
  1025.     param iDCCBitMask :: 0
  1026.     param iCCBitMask :: 1
  1027. }
  1028. object HWI_RESERVED1_STS :: STS {
  1029.     param iComment :: "This STS object is being used by a HWI object and cannot be deleted"
  1030.     param iIsUsed :: 0
  1031.     param iId :: 0
  1032.     param iDelUser :: "HWI"
  1033.     param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
  1034.     param prev :: 0
  1035.     param format :: "%g"
  1036.     param unittype :: "Not time based"
  1037.     param operation :: "Nothing"
  1038.     param iA :: 1
  1039.     param iB :: 0
  1040.     param iC :: 1
  1041.     param prevhigh :: 0
  1042.     param prevlow :: 0
  1043. }
  1044. object HWI_RESERVED1 :: HWI {
  1045.     param iComment :: "RESERVED for RTDX"
  1046.     param iIsUsed :: 1
  1047.     param iId :: 3
  1048.     param iDelUser :: "HWI"
  1049.     param iDelMsg :: "Hardware interrupt objects cannot be deleted"
  1050.     param iSource :: Reserved
  1051.     param iReMappable :: 0
  1052.     param iIntrEnableMask :: 8
  1053.     param function :: @_RTDX_Poll
  1054.     param iSTSObj :: HWI_RESERVED1_STS
  1055.     param monitor :: "Nothing"
  1056.     param saveAddr :: 0
  1057.     param saveType :: "signed"
  1058.     param addr :: 0
  1059.     param dataType :: "signed"
  1060.     param operation :: "STS_add(*addr)"
  1061.     param client :: "RTDX"
  1062.     param iUseDispatcher :: 1
  1063.     param iArg :: 0
  1064.     param iIntrMask :: "self"
  1065.     param IntrMask :: 8
  1066.     param iCacheControl :: 1
  1067.     param iPCCMask :: "cache enable"
  1068.     param iPCCBitMask :: 0
  1069.     param iDCCMask :: "cache enable"
  1070.     param iDCCBitMask :: 0
  1071.     param iCCBitMask :: 1
  1072. }
  1073. object HWI_INT4_STS :: STS {
  1074.     param iComment :: "provides statistics for the INT4 ISR"
  1075.     param iIsUsed :: 0
  1076.     param iId :: 0
  1077.     param iDelUser :: "HWI"
  1078.     param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
  1079.     param prev :: 0
  1080.     param format :: "%g"
  1081.     param unittype :: "Not time based"
  1082.     param operation :: "Nothing"
  1083.     param iA :: 1
  1084.     param iB :: 0
  1085.     param iC :: 1
  1086.     param prevhigh :: 0
  1087.     param prevlow :: 0
  1088. }
  1089. object HWI_INT4 :: HWI {
  1090.     param iComment :: "defines the INT4 Interrupt"
  1091.     param iIsUsed :: 1
  1092.     param iId :: 4
  1093.     param iDelUser :: "HWI"
  1094.     param iDelMsg :: "Hardware interrupt objects cannot be deleted"
  1095.     param iSource :: External_Pin_4
  1096.     param iReMappable :: 1
  1097.     param iIntrEnableMask :: 16
  1098.     param function :: @HWI_unused
  1099.     param iSTSObj :: HWI_INT4_STS
  1100.     param monitor :: "Nothing"
  1101.     param saveAddr :: 0
  1102.     param saveType :: "signed"
  1103.     param addr :: 0
  1104.     param dataType :: "signed"
  1105.     param operation :: "STS_add(*addr)"
  1106.     param client :: "USER"
  1107.     param iUseDispatcher :: 0
  1108.     param iArg :: 0
  1109.     param iIntrMask :: "self"
  1110.     param IntrMask :: 16
  1111.     param iCacheControl :: 1
  1112.     param iPCCMask :: "cache enable"
  1113.     param iPCCBitMask :: 0
  1114.     param iDCCMask :: "cache enable"
  1115.     param iDCCBitMask :: 0
  1116.     param iCCBitMask :: 1
  1117. }
  1118. object HWI_INT5_STS :: STS {
  1119.     param iComment :: "provides statistics for the INT5 ISR"
  1120.     param iIsUsed :: 0
  1121.     param iId :: 0
  1122.     param iDelUser :: "HWI"
  1123.     param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
  1124.     param prev :: 0
  1125.     param format :: "%g"
  1126.     param unittype :: "Not time based"
  1127.     param operation :: "Nothing"
  1128.     param iA :: 1
  1129.     param iB :: 0
  1130.     param iC :: 1
  1131.     param prevhigh :: 0
  1132.     param prevlow :: 0
  1133. }
  1134. object HWI_INT5 :: HWI {
  1135.     param iComment :: "defines the INT5 Interrupt"
  1136.     param iIsUsed :: 1
  1137.     param iId :: 5
  1138.     param iDelUser :: "HWI"
  1139.     param iDelMsg :: "Hardware interrupt objects cannot be deleted"
  1140.     param iSource :: External_Pin_5
  1141.     param iReMappable :: 1
  1142.     param iIntrEnableMask :: 32
  1143.     param function :: @HWI_unused
  1144.     param iSTSObj :: HWI_INT5_STS
  1145.     param monitor :: "Nothing"
  1146.     param saveAddr :: 0
  1147.     param saveType :: "signed"
  1148.     param addr :: 0
  1149.     param dataType :: "signed"
  1150.     param operation :: "STS_add(*addr)"
  1151.     param client :: "USER"
  1152.     param iUseDispatcher :: 0
  1153.     param iArg :: 0
  1154.     param iIntrMask :: "self"
  1155.     param IntrMask :: 32
  1156.     param iCacheControl :: 1
  1157.     param iPCCMask :: "cache enable"
  1158.     param iPCCBitMask :: 0
  1159.     param iDCCMask :: "cache enable"
  1160.     param iDCCBitMask :: 0
  1161.     param iCCBitMask :: 1
  1162. }
  1163. object HWI_INT6_STS :: STS {
  1164.     param iComment :: "provides statistics for the INT6 ISR"
  1165.     param iIsUsed :: 0
  1166.     param iId :: 0
  1167.     param iDelUser :: "HWI"
  1168.     param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
  1169.     param prev :: 0
  1170.     param format :: "%g"
  1171.     param unittype :: "Not time based"
  1172.     param operation :: "Nothing"
  1173.     param iA :: 1
  1174.     param iB :: 0
  1175.     param iC :: 1
  1176.     param prevhigh :: 0
  1177.     param prevlow :: 0
  1178. }
  1179. object HWI_INT6 :: HWI {
  1180.     param iComment :: "defines the INT6 Interrupt"
  1181.     param iIsUsed :: 1
  1182.     param iId :: 6
  1183.     param iDelUser :: "HWI"
  1184.     param iDelMsg :: "Hardware interrupt objects cannot be deleted"
  1185.     param iSource :: External_Pin_6
  1186.     param iReMappable :: 1
  1187.     param iIntrEnableMask :: 64
  1188.     param function :: @HWI_unused
  1189.     param iSTSObj :: HWI_INT6_STS
  1190.     param monitor :: "Nothing"
  1191.     param saveAddr :: 0
  1192.     param saveType :: "signed"
  1193.     param addr :: 0
  1194.     param dataType :: "signed"
  1195.     param operation :: "STS_add(*addr)"
  1196.     param client :: "USER"
  1197.     param iUseDispatcher :: 0
  1198.     param iArg :: 0
  1199.     param iIntrMask :: "self"
  1200.     param IntrMask :: 64
  1201.     param iCacheControl :: 1
  1202.     param iPCCMask :: "cache enable"
  1203.     param iPCCBitMask :: 0
  1204.     param iDCCMask :: "cache enable"
  1205.     param iDCCBitMask :: 0
  1206.     param iCCBitMask :: 1
  1207. }
  1208. object HWI_INT7_STS :: STS {
  1209.     param iComment :: "provides statistics for the INT7 ISR"
  1210.     param iIsUsed :: 0
  1211.     param iId :: 0
  1212.     param iDelUser :: "HWI"
  1213.     param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
  1214.     param prev :: 0
  1215.     param format :: "%g"
  1216.     param unittype :: "Not time based"
  1217.     param operation :: "Nothing"
  1218.     param iA :: 1
  1219.     param iB :: 0
  1220.     param iC :: 1
  1221.     param prevhigh :: 0
  1222.     param prevlow :: 0
  1223. }
  1224. object HWI_INT7 :: HWI {
  1225.     param iComment :: "defines the INT7 Interrupt"
  1226.     param iIsUsed :: 1
  1227.     param iId :: 7
  1228.     param iDelUser :: "HWI"
  1229.     param iDelMsg :: "Hardware interrupt objects cannot be deleted"
  1230.     param iSource :: External_Pin_7
  1231.     param iReMappable :: 1
  1232.     param iIntrEnableMask :: 128
  1233.     param function :: @HWI_unused
  1234.     param iSTSObj :: HWI_INT7_STS
  1235.     param monitor :: "Nothing"
  1236.     param saveAddr :: 0
  1237.     param saveType :: "signed"
  1238.     param addr :: 0
  1239.     param dataType :: "signed"
  1240.     param operation :: "STS_add(*addr)"
  1241.     param client :: "USER"
  1242.     param iUseDispatcher :: 0
  1243.     param iArg :: 0
  1244.     param iIntrMask :: "self"
  1245.     param IntrMask :: 128
  1246.     param iCacheControl :: 1
  1247.     param iPCCMask :: "cache enable"
  1248.     param iPCCBitMask :: 0
  1249.     param iDCCMask :: "cache enable"
  1250.     param iDCCBitMask :: 0
  1251.     param iCCBitMask :: 1
  1252. }
  1253. object HWI_INT8_STS :: STS {
  1254.     param iComment :: "provides statistics for the INT8 ISR"
  1255.     param iIsUsed :: 0
  1256.     param iId :: 0
  1257.     param iDelUser :: "HWI"
  1258.     param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
  1259.     param prev :: 0
  1260.     param format :: "%g"
  1261.     param unittype :: "Not time based"
  1262.     param operation :: "Nothing"
  1263.     param iA :: 1
  1264.     param iB :: 0
  1265.     param iC :: 1
  1266.     param prevhigh :: 0
  1267.     param prevlow :: 0
  1268. }
  1269. object HWI_INT8 :: HWI {
  1270.     param iComment :: "defines the INT8 Interrupt"
  1271.     param iIsUsed :: 1
  1272.     param iId :: 8
  1273.     param iDelUser :: "HWI"
  1274.     param iDelMsg :: "Hardware interrupt objects cannot be deleted"
  1275.     param iSource :: EDMA_Controller
  1276.     param iReMappable :: 1
  1277.     param iIntrEnableMask :: 256
  1278.     param function :: @HWI_unused
  1279.     param iSTSObj :: HWI_INT8_STS
  1280.     param monitor :: "Nothing"
  1281.     param saveAddr :: 0
  1282.     param saveType :: "signed"
  1283.     param addr :: 0
  1284.     param dataType :: "signed"
  1285.     param operation :: "STS_add(*addr)"
  1286.     param client :: "USER"
  1287.     param iUseDispatcher :: 0
  1288.     param iArg :: 0
  1289.     param iIntrMask :: "self"
  1290.     param IntrMask :: 256
  1291.     param iCacheControl :: 1
  1292.     param iPCCMask :: "cache enable"
  1293.     param iPCCBitMask :: 0
  1294.     param iDCCMask :: "cache enable"
  1295.     param iDCCBitMask :: 0
  1296.     param iCCBitMask :: 1
  1297. }
  1298. object HWI_INT9_STS :: STS {
  1299.     param iComment :: "provides statistics for the INT9 ISR"
  1300.     param iIsUsed :: 0
  1301.     param iId :: 0
  1302.     param iDelUser :: "HWI"
  1303.     param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
  1304.     param prev :: 0
  1305.     param format :: "%g"
  1306.     param unittype :: "Not time based"
  1307.     param operation :: "Nothing"
  1308.     param iA :: 1
  1309.     param iB :: 0
  1310.     param iC :: 1
  1311.     param prevhigh :: 0
  1312.     param prevlow :: 0
  1313. }
  1314. object HWI_INT9 :: HWI {
  1315.     param iComment :: "defines the INT9 Interrupt"
  1316.     param iIsUsed :: 1
  1317.     param iId :: 9
  1318.     param iDelUser :: "HWI"
  1319.     param iDelMsg :: "Hardware interrupt objects cannot be deleted"
  1320.     param iSource :: JTAGRTDX9
  1321.     param iReMappable :: 0
  1322.     param iIntrEnableMask :: 520
  1323.     param function :: @_RTDX_Poll
  1324.     param iSTSObj :: HWI_INT9_STS
  1325.     param monitor :: "Nothing"
  1326.     param saveAddr :: 0
  1327.     param saveType :: "signed"
  1328.     param addr :: 0
  1329.     param dataType :: "signed"
  1330.     param operation :: "STS_add(*addr)"
  1331.     param client :: "RTDX"
  1332.     param iUseDispatcher :: 1
  1333.     param iArg :: 0
  1334.     param iIntrMask :: "self"
  1335.     param IntrMask :: 520
  1336.     param iCacheControl :: 1
  1337.     param iPCCMask :: "cache enable"
  1338.     param iPCCBitMask :: 0
  1339.     param iDCCMask :: "cache enable"
  1340.     param iDCCBitMask :: 0
  1341.     param iCCBitMask :: 1
  1342. }
  1343. object HWI_INT10_STS :: STS {
  1344.     param iComment :: "provides statistics for the INT10 ISR"
  1345.     param iIsUsed :: 0
  1346.     param iId :: 0
  1347.     param iDelUser :: "HWI"
  1348.     param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
  1349.     param prev :: 0
  1350.     param format :: "%g"
  1351.     param unittype :: "Not time based"
  1352.     param operation :: "Nothing"
  1353.     param iA :: 1
  1354.     param iB :: 0
  1355.     param iC :: 1
  1356.     param prevhigh :: 0
  1357.     param prevlow :: 0
  1358. }
  1359. object HWI_INT10 :: HWI {
  1360.     param iComment :: "defines the INT10 Interrupt"
  1361.     param iIsUsed :: 1
  1362.     param iId :: 10
  1363.     param iDelUser :: "HWI"
  1364.     param iDelMsg :: "Hardware interrupt objects cannot be deleted"
  1365.     param iSource :: EMIF_SDRAM_Timer
  1366.     param iReMappable :: 1
  1367.     param iIntrEnableMask :: 1024
  1368.     param function :: @HWI_unused
  1369.     param iSTSObj :: HWI_INT10_STS
  1370.     param monitor :: "Nothing"
  1371.     param saveAddr :: 0
  1372.     param saveType :: "signed"
  1373.     param addr :: 0
  1374.     param dataType :: "signed"
  1375.     param operation :: "STS_add(*addr)"
  1376.     param client :: "USER"
  1377.     param iUseDispatcher :: 0
  1378.     param iArg :: 0
  1379.     param iIntrMask :: "self"
  1380.     param IntrMask :: 1024
  1381.     param iCacheControl :: 1
  1382.     param iPCCMask :: "cache enable"
  1383.     param iPCCBitMask :: 0
  1384.     param iDCCMask :: "cache enable"
  1385.     param iDCCBitMask :: 0
  1386.     param iCCBitMask :: 1
  1387. }
  1388. object HWI_INT11_STS :: STS {
  1389.     param iComment :: "provides statistics for the INT11 ISR"
  1390.     param iIsUsed :: 0
  1391.     param iId :: 0
  1392.     param iDelUser :: "HWI"
  1393.     param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
  1394.     param prev :: 0
  1395.     param format :: "%g"
  1396.     param unittype :: "Not time based"
  1397.     param operation :: "Nothing"
  1398.     param iA :: 1
  1399.     param iB :: 0
  1400.     param iC :: 1
  1401.     param prevhigh :: 0
  1402.     param prevlow :: 0
  1403. }
  1404. object HWI_INT11 :: HWI {
  1405.     param iComment :: "defines the INT11 Interrupt"
  1406.     param iIsUsed :: 1
  1407.     param iId :: 11
  1408.     param iDelUser :: "HWI"
  1409.     param iDelMsg :: "Hardware interrupt objects cannot be deleted"
  1410.     param iSource :: MCSP_0_Receive
  1411.     param iReMappable :: 1
  1412.     param iIntrEnableMask :: 2048
  1413.     param function :: @HWI_unused
  1414.     param iSTSObj :: HWI_INT11_STS
  1415.     param monitor :: "Nothing"
  1416.     param saveAddr :: 0
  1417.     param saveType :: "signed"
  1418.     param addr :: 0
  1419.     param dataType :: "signed"
  1420.     param operation :: "STS_add(*addr)"
  1421.     param client :: "USER"
  1422.     param iUseDispatcher :: 0
  1423.     param iArg :: 0
  1424.     param iIntrMask :: "self"
  1425.     param IntrMask :: 2048
  1426.     param iCacheControl :: 1
  1427.     param iPCCMask :: "cache enable"
  1428.     param iPCCBitMask :: 0
  1429.     param iDCCMask :: "cache enable"
  1430.     param iDCCBitMask :: 0
  1431.     param iCCBitMask :: 1
  1432. }
  1433. object HWI_INT12_STS :: STS {
  1434.     param iComment :: "provides statistics for the INT12 ISR"
  1435.     param iIsUsed :: 0
  1436.     param iId :: 0
  1437.     param iDelUser :: "HWI"
  1438.     param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
  1439.     param prev :: 0
  1440.     param format :: "%g"
  1441.     param unittype :: "Not time based"
  1442.     param operation :: "Nothing"
  1443.     param iA :: 1
  1444.     param iB :: 0
  1445.     param iC :: 1
  1446.     param prevhigh :: 0
  1447.     param prevlow :: 0
  1448. }
  1449. object HWI_INT12 :: HWI {
  1450.     param iComment :: "defines the INT12 Interrupt"
  1451.     param iIsUsed :: 1
  1452.     param iId :: 12
  1453.     param iDelUser :: "HWI"
  1454.     param iDelMsg :: "Hardware interrupt objects cannot be deleted"
  1455.     param iSource :: MCSP_1_Transmit
  1456.     param iReMappable :: 1
  1457.     param iIntrEnableMask :: 4096
  1458.     param function :: @HWI_unused
  1459.     param iSTSObj :: HWI_INT12_STS
  1460.     param monitor :: "Nothing"
  1461.     param saveAddr :: 0
  1462.     param saveType :: "signed"
  1463.     param addr :: 0
  1464.     param dataType :: "signed"
  1465.     param operation :: "STS_add(*addr)"
  1466.     param client :: "USER"
  1467.     param iUseDispatcher :: 0
  1468.     param iArg :: 0
  1469.     param iIntrMask :: "self"
  1470.     param IntrMask :: 4096
  1471.     param iCacheControl :: 1
  1472.     param iPCCMask :: "cache enable"
  1473.     param iPCCBitMask :: 0
  1474.     param iDCCMask :: "cache enable"
  1475.     param iDCCBitMask :: 0
  1476.     param iCCBitMask :: 1
  1477. }
  1478. object HWI_INT13_STS :: STS {
  1479.     param iComment :: "provides statistics for the INT13 ISR"
  1480.     param iIsUsed :: 0
  1481.     param iId :: 0
  1482.     param iDelUser :: "HWI"
  1483.     param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
  1484.     param prev :: 0
  1485.     param format :: "%g"
  1486.     param unittype :: "Not time based"
  1487.     param operation :: "Nothing"
  1488.     param iA :: 1
  1489.     param iB :: 0
  1490.     param iC :: 1
  1491.     param prevhigh :: 0
  1492.     param prevlow :: 0
  1493. }
  1494. object HWI_INT13 :: HWI {
  1495.     param iComment :: "defines the INT13 Interrupt"
  1496.     param iIsUsed :: 1
  1497.     param iId :: 13
  1498.     param iDelUser :: "HWI"
  1499.     param iDelMsg :: "Hardware interrupt objects cannot be deleted"
  1500.     param iSource :: Host_Port_Host_to_DSP
  1501.     param iReMappable :: 1
  1502.     param iIntrEnableMask :: 8192
  1503.     param function :: @HWI_unused
  1504.     param iSTSObj :: HWI_INT13_STS
  1505.     param monitor :: "Nothing"
  1506.     param saveAddr :: 0
  1507.     param saveType :: "signed"
  1508.     param addr :: 0
  1509.     param dataType :: "signed"
  1510.     param operation :: "STS_add(*addr)"
  1511.     param client :: "USER"
  1512.     param iUseDispatcher :: 0
  1513.     param iArg :: 0
  1514.     param iIntrMask :: "self"
  1515.     param IntrMask :: 8192
  1516.     param iCacheControl :: 1
  1517.     param iPCCMask :: "cache enable"
  1518.     param iPCCBitMask :: 0
  1519.     param iDCCMask :: "cache enable"
  1520.     param iDCCBitMask :: 0
  1521.     param iCCBitMask :: 1
  1522. }
  1523. object HWI_INT14_STS :: STS {
  1524.     param iComment :: "provides statistics for the INT14 ISR"
  1525.     param iIsUsed :: 0
  1526.     param iId :: 0
  1527.     param iDelUser :: "HWI"
  1528.     param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
  1529.     param prev :: 0
  1530.     param format :: "%g"
  1531.     param unittype :: "Not time based"
  1532.     param operation :: "Nothing"
  1533.     param iA :: 1
  1534.     param iB :: 0
  1535.     param iC :: 1
  1536.     param prevhigh :: 0
  1537.     param prevlow :: 0
  1538. }
  1539. object HWI_INT14 :: HWI {
  1540.     param iComment :: "defines the INT14 Interrupt"
  1541.     param iIsUsed :: 1
  1542.     param iId :: 14
  1543.     param iDelUser :: "HWI"
  1544.     param iDelMsg :: "Hardware interrupt objects cannot be deleted"
  1545.     param iSource :: Timer_0
  1546.     param iReMappable :: 1
  1547.     param iIntrEnableMask :: 16384
  1548.     param function :: @CLK_F_isr
  1549.     param iSTSObj :: HWI_INT14_STS
  1550.     param monitor :: "Nothing"
  1551.     param saveAddr :: 0
  1552.     param saveType :: "signed"
  1553.     param addr :: 0
  1554.     param dataType :: "signed"
  1555.     param operation :: "STS_add(*addr)"
  1556.     param client :: "CLK"
  1557.     param iUseDispatcher :: 1
  1558.     param iArg :: @CLK_A_TABBEG
  1559.     param iIntrMask :: "self"
  1560.     param IntrMask :: 16384
  1561.     param iCacheControl :: 1
  1562.     param iPCCMask :: "cache enable"
  1563.     param iPCCBitMask :: 0
  1564.     param iDCCMask :: "cache enable"
  1565.     param iDCCBitMask :: 0
  1566.     param iCCBitMask :: 1
  1567. }
  1568. object HWI_INT15_STS :: STS {
  1569.     param iComment :: "provides statistics for the INT15 ISR"
  1570.     param iIsUsed :: 0
  1571.     param iId :: 0
  1572.     param iDelUser :: "HWI"
  1573.     param iDelMsg :: "This STS object is being used by a HWI object and cannot be deleted"
  1574.     param prev :: 0
  1575.     param format :: "%g"
  1576.     param unittype :: "Not time based"
  1577.     param operation :: "Nothing"
  1578.     param iA :: 1
  1579.     param iB :: 0
  1580.     param iC :: 1
  1581.     param prevhigh :: 0
  1582.     param prevlow :: 0
  1583. }
  1584. object HWI_INT15 :: HWI {
  1585.     param iComment :: "defines the INT15 Interrupt"
  1586.     param iIsUsed :: 1
  1587.     param iId :: 15
  1588.     param iDelUser :: "HWI"
  1589.     param iDelMsg :: "Hardware interrupt objects cannot be deleted"
  1590.     param iSource :: Timer_1
  1591.     param iReMappable :: 1
  1592.     param iIntrEnableMask :: 32768
  1593.     param function :: @HWI_unused
  1594.     param iSTSObj :: HWI_INT15_STS
  1595.     param monitor :: "Nothing"
  1596.     param saveAddr :: 0
  1597.     param saveType :: "signed"
  1598.     param addr :: 0
  1599.     param dataType :: "signed"
  1600.     param operation :: "STS_add(*addr)"
  1601.     param client :: "USER"
  1602.     param iUseDispatcher :: 0
  1603.     param iArg :: 0
  1604.     param iIntrMask :: "self"
  1605.     param IntrMask :: 32768
  1606.     param iCacheControl :: 1
  1607.     param iPCCMask :: "cache enable"
  1608.     param iPCCBitMask :: 0
  1609.     param iDCCMask :: "cache enable"
  1610.     param iDCCBitMask :: 0
  1611.     param iCCBitMask :: 1
  1612. }
  1613. object HWI_UNUSED :: HWI {
  1614.     param iComment :: "a dummy DSP interrupt for unused sources"
  1615.     param iIsUsed :: 0
  1616.     param iId :: 16
  1617.     param iDelUser :: "HWI"
  1618.     param iDelMsg :: "Hardware interrupt objects cannot be deleted"
  1619.     param iSource :: Reset
  1620.     param iReMappable :: 1
  1621.     param iIntrEnableMask :: 0
  1622.     param function :: @HWI_unused
  1623.     param iSTSObj :: HWI_INT15_STS
  1624.     param monitor :: "Nothing"
  1625.     param saveAddr :: 0
  1626.     param saveType :: "signed"
  1627.     param addr :: 0
  1628.     param dataType :: "signed"
  1629.     param operation :: "STS_add(*addr)"
  1630.     param client :: "USER"
  1631.     param iUseDispatcher :: 0
  1632.     param iArg :: 0
  1633.     param iIntrMask :: "self"
  1634.     param IntrMask :: 65536
  1635.     param iCacheControl :: 1
  1636.     param iPCCMask :: "cache enable"
  1637.     param iPCCBitMask :: 0
  1638.     param iDCCMask :: "cache enable"
  1639.     param iDCCBitMask :: 0
  1640.     param iCCBitMask :: 1
  1641. }
  1642. type SWI {
  1643.     isa ObjectMgr
  1644.     prop name :: "SWI"
  1645.     prop Label :: "SWI - Software Interrupt Manager"
  1646.     prop IsContainedIn :: SCH
  1647.     prop GlobalIcon :: 123
  1648.     prop InstanceIcon :: 124
  1649.     prop InstanceHelpTopic :: (211)
  1650.     prop GlobalHelpTopic :: (111)
  1651.     prop HighTimeBased :: (if CLK.HIRES == 1 {1} else {0})
  1652.     prop LowTimeBased :: (if CLK.HIRES == 1 {0} else {1})
  1653.     prop STSGetMaxFmt :: (if (SWI.STSUNITS == "raw") {if CLK.HIRES {"%g inst"} else {"%g ints"}} else {if SWI.STSUNITS == "microseconds" {"%.1f us"} else {"%.2f ms"}})
  1654.     prop STSGetSumFmt :: (SWI.STSGetMaxFmt())
  1655.     prop STSGetAvgFmt :: (if (SWI.STSUNITS == "raw") {if CLK.HIRES {"%.2f inst"} else {"%.2f ints"}} else {if SWI.STSUNITS == "microseconds" {"%.1f us"} else {"%.2f ms"}})
  1656.     prop STSFilterMax :: ($a = if (CLK.HIRES) {$1 * CLK.INSTRPERCLK} else {$1}, $a = $a * (CLK.TDDR + 1), $a)
  1657.     prop STSFilterSum :: (SWI.STSFilterMax($1))
  1658.     prop GetPriority :: (self.pri)
  1659.     prop GenLinkPrologue :: ("SECTIONS {%4tn.%1L: {%8tn %1U_A_TABBEG = .;n %4Sn %1U_A_TABEND = .;n %1U_A_TABLEN = (. - %1U_A_TABBEG) / %2d;%4tn} > %3s%5s, name, objSize, memSeg, linkString, pageString")
  1660.     prop GenLinkEpilogue :: ("%0t}n")
  1661.     prop linkString :: if self.gNumOf > 0 {"*(.%1L)"} else {"/* no %1U objects */"}
  1662.     prop pageString :: if GBL.DSPTYPE == 62 {""} else {if GBL.DSPTYPE == 55 {""} else {" PAGE 1"}}
  1663.     prop memSeg :: SWI.OBJMEMSEG
  1664.     prop objSize :: if GBL.DSPTYPE == 55 {(2 * (11 * 4))} else {(11 * 4)}
  1665.     prop maxObjs :: (32767)
  1666.     prop dataSize :: ((11 * 4) * SWI.gNumOf)
  1667.     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"})
  1668.     prop localCreate :: (STS.gNumEmbed += 1, SWI.EXECFXN = @SWI_F_iexec, SWI.RUNFXN = @SWI_F_run, "ok")
  1669.     prop localDelete :: (STS.gNumEmbed -= 1, if (self.gNumOf == 1) {SWI.EXECFXN = @FXN_F_nop, SWI.RUNFXN = @FXN_F_nop} , "ok")
  1670.     prop SortByField :: "pri"
  1671.     prop SortGroups :: 15
  1672.     prop InstancePropertyPage :: ("{B7240DEC-AA51-11cf-9BFE-0000C0AC14C7}")
  1673.     prop GlobalPropertyPage :: ("{B7240DED-AA51-11cf-9BFE-0000C0AC14C7}")
  1674.     prop DependsOn :: "HWI,SIO"
  1675.     prop cGen :: 1
  1676.     prop cHeaderName :: if self.gNumOf > 0 {"swi.h"} else {""}
  1677.     prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far SWI_Obj %0r;n"} else {"extern SWI_Obj %0r;n"})
  1678.     global gUser :: "USER" { 
  1679.         prop Visible :: 0
  1680.         prop Writable :: 0
  1681.         prop NoGen :: 1
  1682.     }
  1683.     global gSetOf :: 0 { 
  1684.         prop Visible :: 0
  1685.         prop Writable :: 0
  1686.         prop NoGen :: 1
  1687.     }
  1688.     global gNumOf :: 1 { 
  1689.         prop Visible :: 0
  1690.         prop Writable :: 0
  1691.         prop NoGen :: 1
  1692.     }
  1693.     global gDirty :: 1 { 
  1694.         prop Visible :: 0
  1695.         prop Writable :: 0
  1696.         prop NoGen :: 1
  1697.     }
  1698.     global gInitFlag :: 1 { 
  1699.         prop Visible :: 0
  1700.         prop Writable :: 0
  1701.         prop NoGen :: 1
  1702.     }
  1703.     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) { 
  1704.         prop Visible :: 0
  1705.         prop Writable :: 0
  1706.         prop NoGen :: 1
  1707.     }
  1708.     global EHOOKFXN :: @GBL_NULL { 
  1709.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  1710.         prop Label :: "Enable Scheduler and Return to Idle Function"
  1711.         prop Visible :: 0
  1712.         prop Writable :: 1
  1713.         prop NoGen :: 0
  1714.     }
  1715.     global IHOOKFXN :: @GBL_NULL { 
  1716.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  1717.         prop Label :: "Exit Scheduler and Return to Idle Function"
  1718.         prop Visible :: 0
  1719.         prop Writable :: 1
  1720.         prop NoGen :: 0
  1721.     }
  1722.     global EXECFXN :: @SWI_F_iexec { 
  1723.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  1724.         prop Label :: "Configured SWI executive"
  1725.         prop Visible :: 0
  1726.         prop Writable :: 0
  1727.         prop NoGen :: 0
  1728.     }
  1729.     global RUNFXN :: @SWI_F_run { 
  1730.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  1731.         prop Label :: "Configured SWI executive body"
  1732.         prop Visible :: 0
  1733.         prop Writable :: 0
  1734.         prop NoGen :: 0
  1735.     }
  1736.     global OBJMEMSEG :: SDRAM { 
  1737.         prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
  1738.         prop MemberType :: MEM
  1739.         prop MemberTest :: MEM.dataMember($1)
  1740.         prop Label :: "Object Memory"
  1741.         prop JSName :: "OBJMEMSEG"
  1742.         prop Visible :: 1
  1743.         prop Writable :: 1
  1744.         prop NoGen :: 1
  1745.     }
  1746.     global STSUNITS :: "raw" { 
  1747.         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
  1748.         prop Enum :: "raw,milliseconds,microseconds"
  1749.         prop Label :: "Statistics Units"
  1750.         prop Visible :: 0
  1751.         prop Writable :: 1
  1752.         prop NoGen :: 1
  1753.     }
  1754.     inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} { 
  1755.         prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
  1756.         prop Label :: "comment"
  1757.         prop JSName :: "comment"
  1758.         prop Visible :: 1
  1759.         prop Writable :: if self.iDelUser == "USER" {1} else {0}
  1760.         prop NoGen :: 1
  1761.     }
  1762.     inst iIsUsed :: 0 { 
  1763.         prop Visible :: 0
  1764.         prop Writable :: 0
  1765.         prop NoGen :: 1
  1766.     }
  1767.     inst iId :: 0 { 
  1768.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  1769.         prop Style :: 0x01
  1770.         prop Visible :: 0
  1771.         prop Writable :: 1
  1772.         prop NoGen :: 1
  1773.     }
  1774.     inst iDelUser :: "USER" { 
  1775.         prop Visible :: 0
  1776.         prop Writable :: 0
  1777.         prop NoGen :: 1
  1778.     }
  1779.     inst iDelMsg :: "ok" { 
  1780.         prop Visible :: 0
  1781.         prop Writable :: 0
  1782.         prop NoGen :: 1
  1783.     }
  1784.     inst priority :: = (self.pri + 1) { 
  1785.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  1786.         prop Label :: "priority"
  1787.         prop JSName :: ""
  1788.         prop Visible :: 0
  1789.         prop Writable :: 0
  1790.         prop NoGen :: 1
  1791.     }
  1792.     inst function :: @_FXN_F_nop { 
  1793.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  1794.         prop JSName :: "fxn"
  1795.         prop Visible :: 1
  1796.         prop Writable :: (if self.iDelUser == "USER" {1} else {0})
  1797.         prop NoGen :: 0
  1798.     }
  1799.     inst pri :: 1 { 
  1800.         prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
  1801.         prop Enum :: "0,1,2,3,4,5,6,7,8,9,10,11,12,13,14"
  1802.         prop Label :: "priority"
  1803.         prop JSName :: "priority"
  1804.         prop Visible :: 1
  1805.         prop Writable :: 1
  1806.         prop NoGen :: 0
  1807.         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"}}}})
  1808.     }
  1809.     inst mailbox :: 0 { 
  1810.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  1811.         prop Style :: 0x01 | 0x02
  1812.         prop JSName :: "mailbox"
  1813.         prop Visible :: 1
  1814.         prop Writable :: (if self.iDelUser == "USER" {1} else {0})
  1815.         prop NoGen :: 0
  1816.     }
  1817.     inst arg0 :: 0 { 
  1818.         prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
  1819.         prop JSName :: "arg0"
  1820.         prop Visible :: 1
  1821.         prop Writable :: (if self.iDelUser == "USER" {1} else {0})
  1822.         prop NoGen :: 0
  1823.     }
  1824.     inst arg1 :: 0 { 
  1825.         prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
  1826.         prop JSName :: "arg1"
  1827.         prop Visible :: 1
  1828.         prop Writable :: (if self.iDelUser == "USER" {1} else {0})
  1829.         prop NoGen :: 0
  1830.     }
  1831.     inst dorta :: 1 { 
  1832.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  1833.         prop Visible :: 0
  1834.         prop Writable :: 0
  1835.         prop NoGen :: 0
  1836.     }
  1837.     inst Order :: 0 { 
  1838.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  1839.         prop JSName :: "order"
  1840.         prop NoGen :: 1
  1841.         prop Writable :: 1
  1842.     }
  1843. }
  1844. type TSK {
  1845.     isa ObjectMgr
  1846.     prop name :: "TSK"
  1847.     prop Label :: "TSK - Task Manager"
  1848.     prop IsConfMod :: self.USETSK
  1849.     prop IsContainedIn :: SCH
  1850.     prop DependsOn :: "SWI,HOOK"
  1851.     prop GlobalIcon :: 143
  1852.     prop InstanceIcon :: 144
  1853.     prop GlobalHelpTopic :: (314)
  1854.     prop InstanceHelpTopic :: (414)
  1855.     prop InstancePropertyPage :: ("{473C4A64-B1A8-11d0-9885-0020AFEE33C6}")
  1856.     prop GlobalPropertyPage :: ("{473C4A65-B1A8-11d0-9885-0020AFEE33C6}")
  1857.     prop SortByField :: "iPRI"
  1858.     prop SortGroups :: 17
  1859.     prop AllocType :: (if (self.USETSK) {"1,    _bssAllocDesc, _bssmemSeg, _placement"} else {""})
  1860.     prop _objAllocDesc :: ("%8t .TSK$obj: {}")
  1861.     prop _bssAllocDesc :: ("%8t .tsk: {%12tn *(.tsk)%8tn }")
  1862.     prop _bssmemSeg :: self.OBJMEMSEG
  1863.     prop _objmemSeg :: MEM.CFGOBJSEG
  1864.     prop AllocInst :: (if self.iAUTOSTK {"1, _instStackDesc, _instStackSeg, _placement"} else {"0"})
  1865.     prop _instStackDesc :: (if (GBL.DSPTYPE == 40) {"%8t .%0s$stk: fill = 0xC0FFEE {%12tn %0s$stack = .;n . += %1d;%8tn }, _instStackSize"} else {"%8t .%0s$stk: {%12tn *(.%0s$stk)%8tn }"})
  1866.     prop _self :: self
  1867.     prop _instStackSize :: self.iSTKSZ * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE)
  1868.     prop _instStackSeg :: self.iSTKSEG
  1869.     prop _placement :: (0x7fffffff / 2)
  1870.     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")})
  1871.     prop HighTimeBased :: (if CLK.HIRES == 1 {1} else {0})
  1872.     prop LowTimeBased :: (if CLK.HIRES == 1 {0} else {1})
  1873.     prop STSGetMaxFmt :: (if (TSK.STSUNITS == "raw") {if CLK.HIRES {"%g inst"} else {"%g ints"}} else {if TSK.STSUNITS == "microseconds" {"%.1f us"} else {"%.2f ms"}})
  1874.     prop STSGetSumFmt :: (TSK.STSGetMaxFmt())
  1875.     prop STSGetAvgFmt :: (if (TSK.STSUNITS == "raw") {if CLK.HIRES {"%.2f inst"} else {"%.2f ints"}} else {if TSK.STSUNITS == "microseconds" {"%.1f us"} else {"%.2f ms"}})
  1876.     prop STSFilterMax :: ($a = if (CLK.HIRES) {$1 * CLK.INSTRPERCLK} else {$1}, $a = $a * (CLK.TDDR + 1), $a)
  1877.     prop STSFilterSum :: (TSK.STSFilterMax($1))
  1878.     prop localCreate :: (STS.gNumEmbed += 1, "ok")
  1879.     prop localCanCreate :: ($e = "ok", if (TSK.USETSK != 1) {$e = self.error("TSK manager not enabled")} , $e)
  1880.     prop localDelete :: (STS.gNumEmbed -= 1, "ok")
  1881.     prop GenLinkPrologue :: (if (self.USETSK == 0) {"_KNL_swi = 0;"} )
  1882.     prop cGen :: 1
  1883.     prop cHeaderName :: if self.gNumOf > 0 {"tsk.h"} else {""}
  1884.     prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far TSK_Obj %0r;n"} else {"extern TSK_Obj %0r;n"})
  1885.     prop _objId :: self.iId
  1886.     prop dataSize :: ($d = 0, scan ($i; TSK) {$d += ($i.iSTKSZ + (3 + 21) * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE))}, $d)
  1887.     prop minStackSize :: ($a = self.STACKSIZE, scan ($i; TSK) {if ($i.STACKSIZE < $a) {$a = $i.STACKSIZE} }, $a)
  1888.     prop maxObjs :: (32767)
  1889.     prop GetPriority :: (self.iPRI)
  1890.     global gUser :: "USER" { 
  1891.         prop Visible :: 0
  1892.         prop Writable :: 0
  1893.         prop NoGen :: 1
  1894.     }
  1895.     global gSetOf :: 0 { 
  1896.         prop Visible :: 0
  1897.         prop Writable :: 0
  1898.         prop NoGen :: 1
  1899.     }
  1900.     global gNumOf :: 2 { 
  1901.         prop Visible :: 0
  1902.         prop Writable :: 0
  1903.         prop NoGen :: 1
  1904.     }
  1905.     global gDirty :: 1 { 
  1906.         prop Visible :: 0
  1907.         prop Writable :: 0
  1908.         prop NoGen :: 1
  1909.     }
  1910.     global gInitFlag :: 1 { 
  1911.         prop Visible :: 0
  1912.         prop Writable :: 0
  1913.         prop NoGen :: 1
  1914.     }
  1915.     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) { 
  1916.         prop Visible :: 0
  1917.         prop Writable :: 0
  1918.         prop NoGen :: 1
  1919.     }
  1920.     global USETSK :: 1 { 
  1921.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  1922.         prop Label :: "Enable TSK Manager"
  1923.         prop JSName :: "ENABLETSK"
  1924.         prop Visible :: 1
  1925.         prop Writable :: if GBL.DSPSUBTYPE == 0x55DA200 {0} else {1}
  1926.         prop NoGen :: 1
  1927.         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 = @FXN_F_nop, 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 = "No Memory Heaps Are Allocated for Dynamic TSK creation"} , $e} else {$e}})
  1928.     }
  1929.     global OBJMEMSEG :: SDRAM { 
  1930.         prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
  1931.         prop JSName :: "OBJMEMSEG"
  1932.         prop MemberType :: MEM
  1933.         prop MemberTest :: MEM.dataNullMember($1)
  1934.         prop Label :: "Object Memory"
  1935.         prop Visible :: 1
  1936.         prop Writable :: self.USETSK
  1937.         prop NoGen :: 1
  1938.     }
  1939.     global CALLBACKOBJ :: nil { 
  1940.         prop Visible :: 0
  1941.         prop Writable :: 0
  1942.         prop NoGen :: 1
  1943.     }
  1944.     global STACKSIZE :: 1024 { 
  1945.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  1946.         prop Style :: 0x01
  1947.         prop Label :: "Default stack size (MAUs)"
  1948.         prop JSName :: "STACKSIZE"
  1949.         prop Visible :: 1
  1950.         prop Writable :: self.USETSK
  1951.     }
  1952.     global STACKSEG :: SDRAM { 
  1953.         prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
  1954.         prop MemberType :: MEM
  1955.         prop MemberTest :: MEM.dataNullMember($1) && $1.iAllocHeap
  1956.         prop Label :: "Stack segment for dynamic tasks"
  1957.         prop JSName :: "STACKSEG"
  1958.         prop Visible :: 1
  1959.         prop Writable :: self.USETSK && (MEM.NOHEAPS == 0)
  1960.         prop Set :: (if (self.STACKSEG.iReqHeapCount > 0) {self.STACKSEG.iReqHeapCount--} , self.STACKSEG = $1, self.STACKSEG.iReqHeapCount++, "ok")
  1961.     }
  1962.     global PRIORITY :: 1 { 
  1963.         prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
  1964.         prop JSName :: "PRIORITY"
  1965.         prop Enum :: "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15"
  1966.         prop Label :: "Default task priority"
  1967.         prop Visible :: 1
  1968.         prop Writable :: self.USETSK
  1969.     }
  1970.     global CREATEFXN :: @_FXN_F_nop { 
  1971.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  1972.         prop Label :: "Create function"
  1973.         prop JSName :: "CREATEFXN"
  1974.         prop Visible :: 1
  1975.         prop Writable :: self.USETSK
  1976.         prop TabName :: "Function Hooks"
  1977.         prop Set :: (self.CREATEFXN = $1, HOOK_KNL.createFxn = self.CREATEFXN, "ok")
  1978.         prop NoGen :: 1
  1979.     }
  1980.     global VCREATEFXN :: = if HOOK_KNL.iIsUsed == 1 {@__HOOK_doCreate} else {self.CREATEFXN} { 
  1981.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  1982.         prop Visible :: 0
  1983.     }
  1984.     global DELETEFXN :: @_FXN_F_nop { 
  1985.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  1986.         prop Label :: "Delete function"
  1987.         prop JSName :: "DELETEFXN"
  1988.         prop Visible :: 1
  1989.         prop Writable :: self.USETSK
  1990.         prop TabName :: "Function Hooks"
  1991.         prop Set :: (self.DELETEFXN = $1, HOOK_KNL.deleteFxn = self.DELETEFXN, "ok")
  1992.         prop NoGen :: 1
  1993.     }
  1994.     global VDELETEFXN :: = if HOOK_KNL.iIsUsed == 1 {@__HOOK_doDelete} else {self.DELETEFXN} { 
  1995.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  1996.         prop Visible :: 0
  1997.     }
  1998.     global EXITFXN :: @_FXN_F_nop { 
  1999.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  2000.         prop Label :: "Exit function"
  2001.         prop JSName :: "EXITFXN"
  2002.         prop Visible :: 1
  2003.         prop Writable :: self.USETSK
  2004.         prop TabName :: "Function Hooks"
  2005.         prop Set :: (self.EXITFXN = $1, HOOK_KNL.exitFxn = self.EXITFXN, "ok")
  2006.         prop NoGen :: 1
  2007.     }
  2008.     global VEXITFXN :: = if HOOK_KNL.iIsUsed == 1 {@__HOOK_doExit} else {self.EXITFXN} { 
  2009.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  2010.         prop Visible :: 0
  2011.     }
  2012.     global DOSWITCH :: 0 { 
  2013.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  2014.         prop Label :: "Call switch function"
  2015.         prop JSName :: "CALLSWITCHFXN"
  2016.         prop Writable :: self.USETSK
  2017.         prop Visible :: 1
  2018.         prop NoGen :: 1
  2019.         prop Set :: (self.DOSWITCH = $1, HOOK_KNL.callSwitchFxn = self.DOSWITCH, "ok")
  2020.         prop TabName :: "Function Hooks"
  2021.     }
  2022.     global VSWFXN :: @_FXN_F_nop { 
  2023.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  2024.         prop Label :: "Switch function"
  2025.         prop JSName :: "SWITCHFXN"
  2026.         prop Visible :: 1
  2027.         prop NoGen :: 1
  2028.         prop Writable :: self.DOSWITCH && self.USETSK
  2029.         prop Set :: (self.VSWFXN = $1, HOOK_KNL.switchFxn = self.VSWFXN, "ok")
  2030.         prop TabName :: "Function Hooks"
  2031.     }
  2032.     global SWITCHFXN :: = if self.DOSWITCH {(if HOOK_KNL.iIsUsed == 1 {@__HOOK_doSwitch} else {self.VSWFXN})} else {0} { 
  2033.         prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
  2034.         prop JSName :: ""
  2035.         prop TabName :: "Function Hooks"
  2036.     }
  2037.     global DOREADY :: 0 { 
  2038.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  2039.         prop Label :: "Call ready function"
  2040.         prop JSName :: "CALLREADYFXN"
  2041.         prop Writable :: self.USETSK
  2042.         prop Visible :: 1
  2043.         prop NoGen :: 1
  2044.         prop Set :: (self.DOREADY = $1, HOOK_KNL.callReadyFxn = self.DOREADY, "ok")
  2045.         prop TabName :: "Function Hooks"
  2046.     }
  2047.     global VRDYFXN :: @_FXN_F_nop { 
  2048.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  2049.         prop Label :: "Ready function"
  2050.         prop JSName :: "READYFXN"
  2051.         prop Visible :: 1
  2052.         prop Writable :: self.DOREADY && self.USETSK
  2053.         prop NoGen :: 1
  2054.         prop Set :: (self.VRDYFXN = $1, HOOK_KNL.readyFxn = self.VRDYFXN, "ok")
  2055.         prop TabName :: "Function Hooks"
  2056.     }
  2057.     global READYFXN :: = if self.DOREADY {(if HOOK_KNL.iIsUsed == 1 {@__HOOK_doReady} else {self.VRDYFXN})} else {0} { 
  2058.         prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
  2059.         prop JSName :: ""
  2060.         prop TabName :: "Function Hooks"
  2061.     }
  2062.     global NUM_HOOKS :: = HOOK.gNumOf { 
  2063.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  2064.         prop Visible :: 0
  2065.     }
  2066.     global STSUNITS :: "raw" { 
  2067.         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
  2068.         prop Enum :: "raw,milliseconds,microseconds"
  2069.         prop Label :: "Statistics Units"
  2070.         prop Visible :: 0
  2071.         prop Writable :: self.USETSK
  2072.         prop NoGen :: 1
  2073.     }
  2074.     global TSKTICK :: "PRD" { 
  2075.         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
  2076.         prop Enum :: "PRD,User"
  2077.         prop Label :: "TSK tick driven by"
  2078.         prop JSName :: "DRIVETSKTICK"
  2079.         prop Visible :: 1
  2080.         prop Writable :: self.USETSK
  2081.         prop NoGen :: 1
  2082.         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 = @_FXN_F_nop, 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")
  2083.     }
  2084.     inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} { 
  2085.         prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
  2086.         prop Label :: "comment"
  2087.         prop JSName :: "comment"
  2088.         prop Visible :: 1
  2089.         prop Writable :: if self.iDelUser == "USER" {1} else {0}
  2090.         prop NoGen :: 1
  2091.     }
  2092.     inst iIsUsed :: 0 { 
  2093.         prop Visible :: 0
  2094.         prop Writable :: 0
  2095.         prop NoGen :: 1
  2096.     }
  2097.     inst iId :: 0 { 
  2098.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  2099.         prop Style :: 0x01
  2100.         prop Visible :: 0
  2101.         prop Writable :: 1
  2102.         prop NoGen :: 1
  2103.     }
  2104.     inst iDelUser :: "USER" { 
  2105.         prop Visible :: 0
  2106.         prop Writable :: 0
  2107.         prop NoGen :: 1
  2108.     }
  2109.     inst iDelMsg :: "ok" { 
  2110.         prop Visible :: 0
  2111.         prop Writable :: 0
  2112.         prop NoGen :: 1
  2113.     }
  2114.     inst iFXN :: @_FXN_F_nop { 
  2115.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  2116.         prop Label :: "Task function"
  2117.         prop JSName :: "fxn"
  2118.         prop Visible :: 1
  2119.         prop Writable :: if self.iDelUser == "TSK" {0} else {1}
  2120.         prop TabName :: "Function"
  2121.     }
  2122.     inst iARG0 :: 0 { 
  2123.         prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
  2124.         prop Label :: "Task function argument 0"
  2125.         prop JSName :: "arg0"
  2126.         prop Visible :: 1
  2127.         prop Writable :: if self.iDelUser == "TSK" {0} else {1}
  2128.         prop TabName :: "Function"
  2129.     }
  2130.     inst iARG1 :: 0 { 
  2131.         prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
  2132.         prop Label :: "Task function argument 1"
  2133.         prop JSName :: "arg1"
  2134.         prop Visible :: 1
  2135.         prop Writable :: if self.iDelUser == "TSK" {0} else {1}
  2136.         prop TabName :: "Function"
  2137.     }
  2138.     inst iARG2 :: 0 { 
  2139.         prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
  2140.         prop Label :: "Task function argument 2"
  2141.         prop JSName :: "arg2"
  2142.         prop Visible :: 1
  2143.         prop Writable :: if self.iDelUser == "TSK" {0} else {1}
  2144.         prop TabName :: "Function"
  2145.     }
  2146.     inst iARG3 :: 0 { 
  2147.         prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
  2148.         prop Label :: "Task function argument 3"
  2149.         prop JSName :: "arg3"
  2150.         prop Visible :: 1
  2151.         prop Writable :: if self.iDelUser == "TSK" {0} else {1}
  2152.         prop TabName :: "Function"
  2153.     }
  2154.     inst iARG4 :: 0 { 
  2155.         prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
  2156.         prop Label :: "Task function argument 4"
  2157.         prop JSName :: "arg4"
  2158.         prop Visible :: 1
  2159.         prop Writable :: if self.iDelUser == "TSK" {0} else {1}
  2160.         prop TabName :: "Function"
  2161.     }
  2162.     inst iARG5 :: 0 { 
  2163.         prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
  2164.         prop Label :: "Task function argument 5"
  2165.         prop JSName :: "arg5"
  2166.         prop Visible :: 1
  2167.         prop Writable :: if self.iDelUser == "TSK" {0} else {1}
  2168.         prop TabName :: "Function"
  2169.     }
  2170.     inst iARG6 :: 0 { 
  2171.         prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
  2172.         prop Label :: "Task function argument 6"
  2173.         prop JSName :: "arg6"
  2174.         prop Visible :: 1
  2175.         prop Writable :: if self.iDelUser == "TSK" {0} else {1}
  2176.         prop TabName :: "Function"
  2177.     }
  2178.     inst iARG7 :: 0 { 
  2179.         prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
  2180.         prop Label :: "Task function argument 7"
  2181.         prop JSName :: "arg7"
  2182.         prop Visible :: 1
  2183.         prop Writable :: if self.iDelUser == "TSK" {0} else {1}
  2184.         prop TabName :: "Function"
  2185.     }
  2186.     inst iAUTOSTK :: 1 { 
  2187.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  2188.         prop Label :: "Automatically allocate stack"
  2189.         prop JSName :: "autoAllocateStack"
  2190.         prop Set :: (if (($1 == 1) && (self.iAUTOSTK == 0)) {self.iSTKSZ = TSK.STACKSIZE} , self.iAUTOSTK = $1, "ok")
  2191.         prop Visible :: 1
  2192.         prop Writable :: if self.iDelUser == "TSK" {0} else {1}
  2193.     }
  2194.     inst iMANSTK :: @null { 
  2195.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  2196.         prop Label :: "Manually allocated stack"
  2197.         prop JSName :: "manualStack"
  2198.         prop Visible :: 1
  2199.         prop Writable :: self.iAUTOSTK == 0
  2200.     }
  2201.     inst iSTKSZ :: TSK.STACKSIZE { 
  2202.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  2203.         prop Style :: 0x01
  2204.         prop Label :: "Stack size (MAUs)"
  2205.         prop JSName :: "stackSize"
  2206.         prop Visible :: 1
  2207.         prop Writable :: 1
  2208.         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"})
  2209.     }
  2210.     inst iSTKSEG :: = self.OBJMEMSEG { 
  2211.         prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
  2212.         prop MemberType :: MEM
  2213.         prop MemberTest :: $1 == MEM_NULL || MEM.dataMember($1)
  2214.         prop Label :: "Stack Memory Segment"
  2215.         prop JSName :: "stackMemSeg"
  2216.         prop Visible :: 1
  2217.         prop Writable :: 1
  2218.     }
  2219.     inst iPRI :: TSK.PRIORITY { 
  2220.         prop Label :: "Priority"
  2221.         prop JSName :: "priority"
  2222.         prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
  2223.         prop Enum :: "-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15"
  2224.         prop Visible :: 1
  2225.         prop Writable :: 1
  2226.         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"}})
  2227.     }
  2228.     inst iENV :: 0 { 
  2229.         prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
  2230.         prop Label :: "Environment pointer"
  2231.         prop JSName :: "envPointer"
  2232.         prop Visible :: 1
  2233.         prop Writable :: self.iDelUser != "TSK"
  2234.         prop TabName :: "Advanced"
  2235.     }
  2236.     inst iEXITFLAG :: 1 { 
  2237.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  2238.         prop Label :: "Don't shut down system while this task is still running"
  2239.         prop JSName :: "exitFlag"
  2240.         prop Visible :: 1
  2241.         prop Writable :: 1
  2242.         prop TabName :: "Advanced"
  2243.     }
  2244.     inst iUSETSKNAME :: 0 { 
  2245.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  2246.         prop Label :: "Allocate Task Name on Target"
  2247.         prop JSName :: "allocateTaskName"
  2248.         prop Visible :: 1
  2249.         prop Writable :: 1
  2250.         prop TabName :: "Advanced"
  2251.     }
  2252.     inst iSTATREG :: = GBL.CACHE { 
  2253.         prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
  2254.         prop Format :: "0x%08x"
  2255.         prop Label :: "Initial Status Register value"
  2256.         prop Visible :: 0
  2257.         prop Writable :: 1
  2258.     }
  2259.     inst Order :: 0 { 
  2260.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  2261.         prop JSName :: "order"
  2262.         prop NoGen :: 1
  2263.         prop Writable :: 1
  2264.     }
  2265. }
  2266. object TSK_idle :: TSK {
  2267.     param iComment :: "This is the idle task; it only runs when no other task is ready"
  2268.     param iIsUsed :: 1
  2269.     param iId :: 0
  2270.     param iDelUser :: "TSK"
  2271.     param iDelMsg :: "This task executes all IDL functions and cannot be deleted"
  2272.     param iFXN :: @IDL_F_loop
  2273.     param iARG0 :: 0
  2274.     param iARG1 :: 0
  2275.     param iARG2 :: 0
  2276.     param iARG3 :: 0
  2277.     param iARG4 :: 0
  2278.     param iARG5 :: 0
  2279.     param iARG6 :: 0
  2280.     param iARG7 :: 0
  2281.     param iAUTOSTK :: 1
  2282.     param iMANSTK :: @null
  2283.     param iSTKSZ :: 1024
  2284.     param iSTKSEG :: SDRAM
  2285.     param iPRI :: 0
  2286.     param iENV :: 0
  2287.     param iEXITFLAG :: 1
  2288.     param iUSETSKNAME :: 0
  2289.     param Order :: 1
  2290. }
  2291. object KNL_swi :: SWI {
  2292.     param iComment :: "This Software Interrupt calls the TSK scheduler"
  2293.     param iIsUsed :: 1
  2294.     param iId :: 0
  2295.     param iDelUser :: "TSK"
  2296.     param iDelMsg :: "This object cannot be deleted in DSP/BIOS."
  2297.     param function :: @_KNL_run
  2298.     param pri :: 0
  2299.     param mailbox :: 0
  2300.     param arg0 :: 0
  2301.     param arg1 :: 0
  2302.     param dorta :: 1
  2303.     param Order :: 2
  2304. }
  2305. type IDL {
  2306.     isa ObjectMgr
  2307.     prop Label :: "IDL - Idle Function Manager"
  2308.     prop name :: "IDL"
  2309.     prop IsContainedIn :: SCH
  2310.     prop GlobalIcon :: 111
  2311.     prop InstanceIcon :: 112
  2312.     prop GlobalHelpTopic :: (106)
  2313.     prop InstanceHelpTopic :: (206)
  2314.     prop InstancePropertyPage :: ("{586735F1-770B-11d0-A61F-0000C070F3E9}")
  2315.     prop GlobalPropertyPage :: ("{586735F0-770B-11d0-A61F-0000C070F3E9}")
  2316.     prop GenLinkPrologue :: ("SECTIONS {%4tn.%1L: {%8tn %1U_A_TABBEG = .;n %3Sn %1U_A_TABEND = .;n %1U_A_TABLEN = (. - %1U_A_TABBEG) / %2d;, name, _objSize, _linkString")
  2317.     prop GenLinkEpilogue :: ("%8t %1U_A_CALBEG = .;n %4Sn %1U_A_CALEND = .;n %1U_A_CALLEN = (. - %1U_A_CALBEG) / %2d;%4tn} > %3s%5s%0tn}n%6Sn, name, _objSize, _memSeg, _linkCalString, _pageString, _nilBusyObj")
  2318.     prop _linkString :: "*(.%1L)"
  2319.     prop _linkCalString :: "*(.%1Lcal)"
  2320.     prop _pageString :: if GBL.DSPTYPE == 62 {""} else {if GBL.DSPTYPE == 55 {""} else {" PAGE 1"}}
  2321.     prop _nilBusyObj :: (if ((IDL.USEIDLBUSYOBJ == 0) && (GBL.ROM == 1)) {"IDL_busyObj = 0;n"} else {""})
  2322.     prop _memSeg :: IDL.OBJMEMSEG
  2323.     prop _objSize :: if GBL.DSPTYPE == 55 {(2 * (2 * 4))} else {(2 * 4)}
  2324.     prop dataSize :: ((2 * 4) * (IDL.gNumOf + 1))
  2325.     prop maxObjs :: (32767)
  2326.     prop SortByField :: "iPri"
  2327.     prop SortGroups :: 1
  2328.     prop idlFxnSum :: ($a = 0, scan ($i; IDL) {$a += $i.cycles}, $a)
  2329.     global gUser :: "USER" { 
  2330.         prop Visible :: 0
  2331.         prop Writable :: 0
  2332.         prop NoGen :: 1
  2333.     }
  2334.     global gSetOf :: 0 { 
  2335.         prop Visible :: 0
  2336.         prop Writable :: 0
  2337.         prop NoGen :: 1
  2338.     }
  2339.     global gNumOf :: 3 { 
  2340.         prop Visible :: 0
  2341.         prop Writable :: 0
  2342.         prop NoGen :: 1
  2343.     }
  2344.     global gDirty :: 1 { 
  2345.         prop Visible :: 0
  2346.         prop Writable :: 0
  2347.         prop NoGen :: 1
  2348.     }
  2349.     global gInitFlag :: 1 { 
  2350.         prop Visible :: 0
  2351.         prop Writable :: 0
  2352.         prop NoGen :: 1
  2353.     }
  2354.     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) { 
  2355.         prop Visible :: 0
  2356.         prop Writable :: 0
  2357.         prop NoGen :: 1
  2358.     }
  2359.     global OBJMEMSEG :: SDRAM { 
  2360.         prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
  2361.         prop MemberType :: MEM
  2362.         prop MemberTest :: MEM.dataMember($1)
  2363.         prop Label :: "Object Memory"
  2364.         prop JSName :: "OBJMEMSEG"
  2365.         prop Visible :: 1
  2366.         prop Writable :: 1
  2367.         prop NoGen :: 1
  2368.     }
  2369.     global AUTOCALCULATE :: 1 { 
  2370.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  2371.         prop Label :: "Auto calculate idle loop instruction count"
  2372.         prop JSName :: "AUTOCALCULATE"
  2373.         prop Visible :: 1
  2374.         prop Writable :: CLK.USETIMER
  2375.         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 instuction count")} else {self.AUTOCALCULATE = $1, "ok"}})
  2376.         prop NoGen :: 1
  2377.     }
  2378.     global USECLKIDLTIME :: = IDL.AUTOCALCULATE { 
  2379.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  2380.         prop Visible :: 0
  2381.         prop Writable :: 0
  2382.         prop NoGen :: 0
  2383.     }
  2384.     global USEIDLBUSYOBJ :: 1 { 
  2385.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  2386.         prop Visible :: 0
  2387.         prop Writable :: 0
  2388.         prop NoGen :: 1
  2389.     }
  2390.     global CALIBRFXN :: = (if (IDL.AUTOCALCULATE == 1) {if TSK.USETSK {(if GBL.DSPSUBTYPE == 5502 {@IDL_F_stub5502} else {@IDL_F_stub})} else {if (GBL.DSPSUBTYPE == 5502) {@IDL_F_calibrate5502} else {@IDL_F_calibrate}}} else {@GBL_NULL}) { 
  2391.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  2392.         prop Label :: "Idle Loop Auto-Calibrate Function"
  2393.         prop Visible :: 0
  2394.         prop Writable :: 1
  2395.         prop NoGen :: 0
  2396.     }
  2397.     global CALIBRERROR :: = (if (GBL.DSPTYPE == 62 && IDL.CALIBRFXN == @IDL_F_stub) {6} else {0}) { 
  2398.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  2399.         prop Label :: "Idle Loop Auto-Calibrate Error"
  2400.         prop Visible :: 0
  2401.         prop Writable :: 1
  2402.         prop NoGen :: 1
  2403.     }
  2404.     global LOOPOVERHEAD :: 0 { 
  2405.         prop Label :: "Idle Loop Instruction Count"
  2406.         prop JSName :: "LOOPINSTCOUNT"
  2407.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  2408.         prop Visible :: 1
  2409.         prop Writable :: self.AUTOCALCULATE == 0
  2410.         prop NoGen :: 1
  2411.     }
  2412.     inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} { 
  2413.         prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
  2414.         prop Label :: "comment"
  2415.         prop JSName :: "comment"
  2416.         prop Visible :: 1
  2417.         prop Writable :: if self.iDelUser == "USER" {1} else {0}
  2418.         prop NoGen :: 1
  2419.     }
  2420.     inst iIsUsed :: 0 { 
  2421.         prop Visible :: 0
  2422.         prop Writable :: 0
  2423.         prop NoGen :: 1
  2424.     }
  2425.     inst iId :: 0 { 
  2426.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  2427.         prop Style :: 0x01
  2428.         prop Visible :: 0
  2429.         prop Writable :: 1
  2430.         prop NoGen :: 1
  2431.     }
  2432.     inst iDelUser :: "USER" { 
  2433.         prop Visible :: 0
  2434.         prop Writable :: 0
  2435.         prop NoGen :: 1
  2436.     }
  2437.     inst iDelMsg :: "ok" { 
  2438.         prop Visible :: 0
  2439.         prop Writable :: 0
  2440.         prop NoGen :: 1
  2441.     }
  2442.     inst function :: @_FXN_F_nop { 
  2443.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  2444.         prop JSName :: "fxn"
  2445.         prop Visible :: 1
  2446.         prop Writable :: (if self.iDelUser == "USER" {1} else {0})
  2447.         prop NoGen :: 0
  2448.     }
  2449.     inst cycles :: 0 { 
  2450.         prop Label :: "CPU cycles"
  2451.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  2452.         prop Visible :: 0
  2453.         prop Writable :: if (self.iDelUser == "USER") {1} else {0}
  2454.         prop NoGen :: 1
  2455.     }
  2456.     inst calibration :: 1 { 
  2457.         prop Label :: "Include in CPU load calibration"
  2458.         prop JSName :: "calibration"
  2459.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  2460.         prop Visible :: 1
  2461.         prop Writable :: if (self.iDelUser == "USER") {1} else {0}
  2462.         prop NoGen :: 0
  2463.     }
  2464.     inst Order :: 0 { 
  2465.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  2466.         prop JSName :: "order"
  2467.         prop NoGen :: 1
  2468.         prop Writable :: 1
  2469.     }
  2470.     inst iPri :: 0 { 
  2471.         prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
  2472.         prop Visible :: 0
  2473.         prop NoGen :: 1
  2474.     }
  2475. }
  2476. object IDL_cpuLoad :: IDL {
  2477.     param iComment :: "This object is required by the system to acquire CPU load data"
  2478.     param iIsUsed :: 1
  2479.     param iId :: 0
  2480.     param iDelUser :: "IDL"
  2481.     param iDelMsg :: "This object is required to compute CPU load and can't be deleted"
  2482.     param function :: @IDL_F_busy
  2483.     param cycles :: 0
  2484.     param calibration :: 1
  2485.     param Order :: 3
  2486.     param iPri :: 0
  2487. }
  2488. object IDL_busyObj :: STS {
  2489.     param iComment :: "This object is required by the system to accumulate CPU load statistics"
  2490.     param iIsUsed :: 1
  2491.     param iId :: 0
  2492.     param iDelUser :: "IDL"
  2493.     param iDelMsg :: "This object is required to accumulate CPU load data and can't be deleted"
  2494.     param prev :: 0
  2495.     param format :: "%g"
  2496.     param unittype :: "Not time based"
  2497.     param operation :: "Nothing"
  2498.     param iA :: 1
  2499.     param iB :: 0
  2500.     param iC :: 1
  2501.     param prevhigh :: 0
  2502.     param prevlow :: 0
  2503. }
  2504. type ISRC {
  2505.     isa ObjectMgr
  2506.     prop name :: "ISRC"
  2507.     prop Label :: "ISRC - Interrupt Sources"
  2508.     prop IsConfMod :: 1
  2509.     prop Visible :: 0
  2510.     prop InstancePropertyPage :: ("{91BA37C0-98C3-11d1-988B-0020AFEE33C6}")
  2511.     prop GlobalPropertyPage :: ("{91BA37C1-98C3-11d1-988B-0020AFEE33C6}")
  2512.     global gUser :: "USER" { 
  2513.         prop Visible :: 0
  2514.         prop Writable :: 0
  2515.         prop NoGen :: 1
  2516.     }
  2517.     global gSetOf :: 0 { 
  2518.         prop Visible :: 0
  2519.         prop Writable :: 0
  2520.         prop NoGen :: 1
  2521.     }
  2522.     global gNumOf :: 0 { 
  2523.         prop Visible :: 0
  2524.         prop Writable :: 0
  2525.         prop NoGen :: 1
  2526.     }
  2527.     global gDirty :: 0 { 
  2528.         prop Visible :: 0
  2529.         prop Writable :: 0
  2530.         prop NoGen :: 1
  2531.     }
  2532.     global gInitFlag :: 1 { 
  2533.         prop Visible :: 0
  2534.         prop Writable :: 0
  2535.         prop NoGen :: 1
  2536.     }
  2537.     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) { 
  2538.         prop Visible :: 0
  2539.         prop Writable :: 0
  2540.         prop NoGen :: 1
  2541.     }
  2542.     inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} { 
  2543.         prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
  2544.         prop Label :: "comment"
  2545.         prop JSName :: "comment"
  2546.         prop Visible :: 1
  2547.         prop Writable :: if self.iDelUser == "USER" {1} else {0}
  2548.         prop NoGen :: 1
  2549.     }
  2550.     inst iIsUsed :: 0 { 
  2551.         prop Visible :: 0
  2552.         prop Writable :: 0
  2553.         prop NoGen :: 1
  2554.     }
  2555.     inst iId :: 0 { 
  2556.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  2557.         prop Style :: 0x01
  2558.         prop Visible :: 0
  2559.         prop Writable :: 1
  2560.         prop NoGen :: 1
  2561.     }
  2562.     inst iDelUser :: "USER" { 
  2563.         prop Visible :: 0
  2564.         prop Writable :: 0
  2565.         prop NoGen :: 1
  2566.     }
  2567.     inst iDelMsg :: "ok" { 
  2568.         prop Visible :: 0
  2569.         prop Writable :: 0
  2570.         prop NoGen :: 1
  2571.     }
  2572.     inst iHwi :: HWI_UNUSED { 
  2573.         prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
  2574.         prop MemberType :: HWI
  2575.         prop MemberTest :: 1
  2576.         prop Visible :: 1
  2577.         prop Writable :: 1
  2578.         prop NoGen :: 1
  2579.     }
  2580.     inst iIntrSelectNum :: 0 { 
  2581.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  2582.         prop Visible :: 0
  2583.         prop Writable :: 0
  2584.         prop NoGen :: 1
  2585.     }
  2586. }
  2587. object Reset :: ISRC {
  2588.     param iComment :: "<add comments here>"
  2589.     param iIsUsed :: 0
  2590.     param iId :: 0
  2591.     param iDelUser :: "USER"
  2592.     param iDelMsg :: "ok"
  2593.     param iHwi :: HWI_RESET
  2594.     param iIntrSelectNum :: -1
  2595. }
  2596. object Non_Maskable :: ISRC {
  2597.     param iComment :: "<add comments here>"
  2598.     param iIsUsed :: 0
  2599.     param iId :: 0
  2600.     param iDelUser :: "USER"
  2601.     param iDelMsg :: "ok"
  2602.     param iHwi :: HWI_NMI
  2603.     param iIntrSelectNum :: -1
  2604. }
  2605. object Reserved :: ISRC {
  2606.     param iComment :: "<add comments here>"
  2607.     param iIsUsed :: 0
  2608.     param iId :: 0
  2609.     param iDelUser :: "USER"
  2610.     param iDelMsg :: "ok"
  2611.     param iHwi :: HWI_RESERVED0
  2612.     param iIntrSelectNum :: -1
  2613. }
  2614. object Host_Port_Host_to_DSP :: ISRC {
  2615.     param iComment :: "<add comments here>"
  2616.     param iIsUsed :: 0
  2617.     param iId :: 0
  2618.     param iDelUser :: "USER"
  2619.     param iDelMsg :: "ok"
  2620.     param iHwi :: HWI_INT13
  2621.     param iIntrSelectNum :: 0
  2622. }
  2623. object Timer_0 :: ISRC {
  2624.     param iComment :: "<add comments here>"
  2625.     param iIsUsed :: 0
  2626.     param iId :: 0
  2627.     param iDelUser :: "USER"
  2628.     param iDelMsg :: "ok"
  2629.     param iHwi :: HWI_INT14
  2630.     param iIntrSelectNum :: 1
  2631. }
  2632. object Timer_1 :: ISRC {
  2633.     param iComment :: "<add comments here>"
  2634.     param iIsUsed :: 0
  2635.     param iId :: 0
  2636.     param iDelUser :: "USER"
  2637.     param iDelMsg :: "ok"
  2638.     param iHwi :: HWI_INT15
  2639.     param iIntrSelectNum :: 2
  2640. }
  2641. object EMIF_SDRAM_Timer :: ISRC {
  2642.     param iComment :: "<add comments here>"
  2643.     param iIsUsed :: 0
  2644.     param iId :: 0
  2645.     param iDelUser :: "USER"
  2646.     param iDelMsg :: "ok"
  2647.     param iHwi :: HWI_INT10
  2648.     param iIntrSelectNum :: 3
  2649. }
  2650. object External_Pin_4 :: ISRC {
  2651.     param iComment :: "<add comments here>"
  2652.     param iIsUsed :: 0
  2653.     param iId :: 0
  2654.     param iDelUser :: "USER"
  2655.     param iDelMsg :: "ok"
  2656.     param iHwi :: HWI_INT4
  2657.     param iIntrSelectNum :: 4
  2658. }
  2659. object External_Pin_5 :: ISRC {
  2660.     param iComment :: "<add comments here>"
  2661.     param iIsUsed :: 0
  2662.     param iId :: 0
  2663.     param iDelUser :: "USER"