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

DSP编程

开发平台:

C/C++

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