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

DSP编程

开发平台:

C/C++

  1. }
  2. object EMIF_SDRAM_Timer :: ISRC {
  3.     param iComment :: "<add comments here>"
  4.     param iIsUsed :: 0
  5.     param iId :: 0
  6.     param iDelUser :: "USER"
  7.     param iDelMsg :: "ok"
  8.     param iHwi :: HWI_INT10
  9.     param iIntrSelectNum :: 3
  10. }
  11. object External_Pin_4 :: ISRC {
  12.     param iComment :: "<add comments here>"
  13.     param iIsUsed :: 0
  14.     param iId :: 0
  15.     param iDelUser :: "USER"
  16.     param iDelMsg :: "ok"
  17.     param iHwi :: HWI_INT4
  18.     param iIntrSelectNum :: 4
  19. }
  20. object External_Pin_5 :: ISRC {
  21.     param iComment :: "<add comments here>"
  22.     param iIsUsed :: 0
  23.     param iId :: 0
  24.     param iDelUser :: "USER"
  25.     param iDelMsg :: "ok"
  26.     param iHwi :: HWI_INT5
  27.     param iIntrSelectNum :: 5
  28. }
  29. object External_Pin_6 :: ISRC {
  30.     param iComment :: "<add comments here>"
  31.     param iIsUsed :: 0
  32.     param iId :: 0
  33.     param iDelUser :: "USER"
  34.     param iDelMsg :: "ok"
  35.     param iHwi :: HWI_INT6
  36.     param iIntrSelectNum :: 6
  37. }
  38. object External_Pin_7 :: ISRC {
  39.     param iComment :: "<add comments here>"
  40.     param iIsUsed :: 0
  41.     param iId :: 0
  42.     param iDelUser :: "USER"
  43.     param iDelMsg :: "ok"
  44.     param iHwi :: HWI_INT7
  45.     param iIntrSelectNum :: 7
  46. }
  47. object EDMA_Controller :: ISRC {
  48.     param iComment :: "<add comments here>"
  49.     param iIsUsed :: 0
  50.     param iId :: 0
  51.     param iDelUser :: "USER"
  52.     param iDelMsg :: "ok"
  53.     param iHwi :: HWI_INT8
  54.     param iIntrSelectNum :: 8
  55. }
  56. object HSRTDX11 :: ISRC {
  57.     param iComment :: "<add comments here>"
  58.     param iIsUsed :: 0
  59.     param iId :: 0
  60.     param iDelUser :: "USER"
  61.     param iDelMsg :: "ok"
  62.     param iHwi :: HWI_INT11
  63.     param iIntrSelectNum :: 10
  64. }
  65. object HSRTDX12 :: ISRC {
  66.     param iComment :: "<add comments here>"
  67.     param iIsUsed :: 0
  68.     param iId :: 0
  69.     param iDelUser :: "USER"
  70.     param iDelMsg :: "ok"
  71.     param iHwi :: HWI_INT12
  72.     param iIntrSelectNum :: 11
  73. }
  74. object MCSP_0_Transmit :: ISRC {
  75.     param iComment :: "<add comments here>"
  76.     param iIsUsed :: 0
  77.     param iId :: 0
  78.     param iDelUser :: "USER"
  79.     param iDelMsg :: "ok"
  80.     param iHwi :: HWI_UNUSED
  81.     param iIntrSelectNum :: 12
  82. }
  83. object MCSP_0_Receive :: ISRC {
  84.     param iComment :: "<add comments here>"
  85.     param iIsUsed :: 0
  86.     param iId :: 0
  87.     param iDelUser :: "USER"
  88.     param iDelMsg :: "ok"
  89.     param iHwi :: HWI_UNUSED
  90.     param iIntrSelectNum :: 13
  91. }
  92. object MCSP_1_Transmit :: ISRC {
  93.     param iComment :: "<add comments here>"
  94.     param iIsUsed :: 0
  95.     param iId :: 0
  96.     param iDelUser :: "USER"
  97.     param iDelMsg :: "ok"
  98.     param iHwi :: HWI_UNUSED
  99.     param iIntrSelectNum :: 14
  100. }
  101. object MCSP_1_Receive :: ISRC {
  102.     param iComment :: "<add comments here>"
  103.     param iIsUsed :: 0
  104.     param iId :: 0
  105.     param iDelUser :: "USER"
  106.     param iDelMsg :: "ok"
  107.     param iHwi :: HWI_UNUSED
  108.     param iIntrSelectNum :: 15
  109. }
  110. object HPI_PCI_to_DSP :: ISRC {
  111.     param iComment :: "<add comments here>"
  112.     param iIsUsed :: 0
  113.     param iId :: 0
  114.     param iDelUser :: "USER"
  115.     param iDelMsg :: "ok"
  116.     param iHwi :: HWI_UNUSED
  117.     param iIntrSelectNum :: 0
  118. }
  119. object EMIFA_SDRAM_Timer :: ISRC {
  120.     param iComment :: "<add comments here>"
  121.     param iIsUsed :: 0
  122.     param iId :: 0
  123.     param iDelUser :: "USER"
  124.     param iDelMsg :: "ok"
  125.     param iHwi :: HWI_UNUSED
  126.     param iIntrSelectNum :: 3
  127. }
  128. object GPIO_Interrupt_4 :: ISRC {
  129.     param iComment :: "<add comments here>"
  130.     param iIsUsed :: 0
  131.     param iId :: 0
  132.     param iDelUser :: "USER"
  133.     param iDelMsg :: "ok"
  134.     param iHwi :: HWI_INT4
  135.     param iIntrSelectNum :: 4
  136. }
  137. object GPIO_Interrupt_5 :: ISRC {
  138.     param iComment :: "<add comments here>"
  139.     param iIsUsed :: 0
  140.     param iId :: 0
  141.     param iDelUser :: "USER"
  142.     param iDelMsg :: "ok"
  143.     param iHwi :: HWI_INT5
  144.     param iIntrSelectNum :: 5
  145. }
  146. object GPIO_Interrupt_6 :: ISRC {
  147.     param iComment :: "<add comments here>"
  148.     param iIsUsed :: 0
  149.     param iId :: 0
  150.     param iDelUser :: "USER"
  151.     param iDelMsg :: "ok"
  152.     param iHwi :: HWI_INT6
  153.     param iIntrSelectNum :: 6
  154. }
  155. object GPIO_Interrupt_7 :: ISRC {
  156.     param iComment :: "<add comments here>"
  157.     param iIsUsed :: 0
  158.     param iId :: 0
  159.     param iDelUser :: "USER"
  160.     param iDelMsg :: "ok"
  161.     param iHwi :: HWI_INT7
  162.     param iIntrSelectNum :: 7
  163. }
  164. object EDMA_Interrupt :: ISRC {
  165.     param iComment :: "<add comments here>"
  166.     param iIsUsed :: 0
  167.     param iId :: 0
  168.     param iDelUser :: "USER"
  169.     param iDelMsg :: "ok"
  170.     param iHwi :: HWI_INT8
  171.     param iIntrSelectNum :: 8
  172. }
  173. object JTAGRTDX9 :: ISRC {
  174.     param iComment :: "<add comments here>"
  175.     param iIsUsed :: 0
  176.     param iId :: 0
  177.     param iDelUser :: "USER"
  178.     param iDelMsg :: "ok"
  179.     param iHwi :: HWI_UNUSED
  180.     param iIntrSelectNum :: 9
  181. }
  182. object EMU_DTDMA :: ISRC {
  183.     param iComment :: "<add comments here>"
  184.     param iIsUsed :: 0
  185.     param iId :: 0
  186.     param iDelUser :: "USER"
  187.     param iDelMsg :: "ok"
  188.     param iHwi :: HWI_INT9
  189.     param iIntrSelectNum :: 9
  190. }
  191. object EMU_RTDX_RX :: ISRC {
  192.     param iComment :: "<add comments here>"
  193.     param iIsUsed :: 0
  194.     param iId :: 0
  195.     param iDelUser :: "USER"
  196.     param iDelMsg :: "ok"
  197.     param iHwi :: HWI_INT10
  198.     param iIntrSelectNum :: 10
  199. }
  200. object EMU_RTDX_TX :: ISRC {
  201.     param iComment :: "<add comments here>"
  202.     param iIsUsed :: 0
  203.     param iId :: 0
  204.     param iDelUser :: "USER"
  205.     param iDelMsg :: "ok"
  206.     param iHwi :: HWI_INT11
  207.     param iIntrSelectNum :: 11
  208. }
  209. object GPIO_Interrupt_0 :: ISRC {
  210.     param iComment :: "<add comments here>"
  211.     param iIsUsed :: 0
  212.     param iId :: 0
  213.     param iDelUser :: "USER"
  214.     param iDelMsg :: "ok"
  215.     param iHwi :: HWI_UNUSED
  216.     param iIntrSelectNum :: 16
  217. }
  218. object MCSP_2_Transmit :: ISRC {
  219.     param iComment :: "<add comments here>"
  220.     param iIsUsed :: 0
  221.     param iId :: 0
  222.     param iDelUser :: "USER"
  223.     param iDelMsg :: "ok"
  224.     param iHwi :: HWI_UNUSED
  225.     param iIntrSelectNum :: 17
  226. }
  227. object MCSP_2_Receive :: ISRC {
  228.     param iComment :: "<add comments here>"
  229.     param iIsUsed :: 0
  230.     param iId :: 0
  231.     param iDelUser :: "USER"
  232.     param iDelMsg :: "ok"
  233.     param iHwi :: HWI_UNUSED
  234.     param iIntrSelectNum :: 18
  235. }
  236. object Timer_2 :: ISRC {
  237.     param iComment :: "<add comments here>"
  238.     param iIsUsed :: 0
  239.     param iId :: 0
  240.     param iDelUser :: "USER"
  241.     param iDelMsg :: "ok"
  242.     param iHwi :: HWI_UNUSED
  243.     param iIntrSelectNum :: 19
  244. }
  245. object EMIFB_SDRAM_Timer :: ISRC {
  246.     param iComment :: "<add comments here>"
  247.     param iIsUsed :: 0
  248.     param iId :: 0
  249.     param iDelUser :: "USER"
  250.     param iDelMsg :: "ok"
  251.     param iHwi :: HWI_UNUSED
  252.     param iIntrSelectNum :: 20
  253. }
  254. object PCI_WAKEUP :: ISRC {
  255.     param iComment :: "<add comments here>"
  256.     param iIsUsed :: 0
  257.     param iId :: 0
  258.     param iDelUser :: "USER"
  259.     param iDelMsg :: "ok"
  260.     param iHwi :: HWI_UNUSED
  261.     param iIntrSelectNum :: 21
  262. }
  263. object ICINT0 :: ISRC {
  264.     param iComment :: "<add comments here>"
  265.     param iIsUsed :: 0
  266.     param iId :: 0
  267.     param iDelUser :: "USER"
  268.     param iDelMsg :: "ok"
  269.     param iHwi :: HWI_UNUSED
  270.     param iIntrSelectNum :: 22
  271. }
  272. object UTOPIA_Interrupt :: ISRC {
  273.     param iComment :: "<add comments here>"
  274.     param iIsUsed :: 0
  275.     param iId :: 0
  276.     param iDelUser :: "USER"
  277.     param iDelMsg :: "ok"
  278.     param iHwi :: HWI_UNUSED
  279.     param iIntrSelectNum :: 23
  280. }
  281. object EMAC_MDIO_INT :: ISRC {
  282.     param iComment :: "<add comments here>"
  283.     param iIsUsed :: 0
  284.     param iId :: 0
  285.     param iDelUser :: "USER"
  286.     param iDelMsg :: "ok"
  287.     param iHwi :: HWI_UNUSED
  288.     param iIntrSelectNum :: 24
  289. }
  290. object VPINT0 :: ISRC {
  291.     param iComment :: "<add comments here>"
  292.     param iIsUsed :: 0
  293.     param iId :: 0
  294.     param iDelUser :: "USER"
  295.     param iDelMsg :: "ok"
  296.     param iHwi :: HWI_UNUSED
  297.     param iIntrSelectNum :: 25
  298. }
  299. object VPINT1 :: ISRC {
  300.     param iComment :: "<add comments here>"
  301.     param iIsUsed :: 0
  302.     param iId :: 0
  303.     param iDelUser :: "USER"
  304.     param iDelMsg :: "ok"
  305.     param iHwi :: HWI_UNUSED
  306.     param iIntrSelectNum :: 26
  307. }
  308. object VPINT2 :: ISRC {
  309.     param iComment :: "<add comments here>"
  310.     param iIsUsed :: 0
  311.     param iId :: 0
  312.     param iDelUser :: "USER"
  313.     param iDelMsg :: "ok"
  314.     param iHwi :: HWI_UNUSED
  315.     param iIntrSelectNum :: 27
  316. }
  317. object AXINT0 :: ISRC {
  318.     param iComment :: "<add comments here>"
  319.     param iIsUsed :: 0
  320.     param iId :: 0
  321.     param iDelUser :: "USER"
  322.     param iDelMsg :: "ok"
  323.     param iHwi :: HWI_UNUSED
  324.     param iIntrSelectNum :: 28
  325. }
  326. object ARINT0 :: ISRC {
  327.     param iComment :: "<add comments here>"
  328.     param iIsUsed :: 0
  329.     param iId :: 0
  330.     param iDelUser :: "USER"
  331.     param iDelMsg :: "ok"
  332.     param iHwi :: HWI_UNUSED
  333.     param iIntrSelectNum :: 29
  334. }
  335. type LOG {
  336.     isa ObjectMgr
  337.     prop name :: "LOG"
  338.     prop Label :: "LOG - Event Log Manager"
  339.     prop IsContainedIn :: INS
  340.     prop GlobalIcon :: 113
  341.     prop InstanceIcon :: 114
  342.     prop InstanceHelpTopic :: (207)
  343.     prop GlobalHelpTopic :: (107)
  344.     prop InstancePropertyPage :: ("{B7240DE8-AA51-11cf-9BFE-0000C0AC14C7}")
  345.     prop GlobalPropertyPage :: ("{B7240DE9-AA51-11cf-9BFE-0000C0AC14C7}")
  346.     prop maxObjs :: (32767)
  347.     prop AllocType :: ("2, _globalAllocDesc, _memSeg, _placement, _printfAllocDesc, _memSeg, _placement")
  348.     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")
  349.     prop _printfAllocDesc :: ("%8t .printf (COPY): {}")
  350.     prop _placement :: (0x7fffffff / 2)
  351.     prop AllocInst :: ("1, _instAllocDesc, _objMemSeg, _placement")
  352.     prop _fillValue :: if GBL.DSPWORDSIZE == 16 {0xffff} else {0xffffffff}
  353.     prop _instAllocDesc :: ("%8t /* %0s buffer */n .%0s$buf: align = 0x%1x fill = 0x%2x {}, _objAlign, _fillValue")
  354.     prop _objSize :: if GBL.DSPTYPE == 55 {(2 * (6 * 4))} else {(6 * 4)}
  355.     prop _memSeg :: LOG.OBJMEMSEG
  356.     prop _linkString :: if self.gNumOf > 0 {"*(.%1L)"} else {"/* no %1U objects */"}
  357.     prop _objAlign :: if GBL.DSPTYPE == 55 {self.buflen * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE) * 2} else {self.buflen * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE)}
  358.     prop _objMemSeg :: self.bufseg
  359.     prop LogType :: self.iType
  360.     prop LogFormat :: self.iFormat
  361.     prop cGen :: 1
  362.     prop cHeaderName :: if self.gNumOf > 0 {"log.h"} else {""}
  363.     prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far LOG_Obj %0r;n"} else {"extern LOG_Obj %0r;n"})
  364.     prop dataSize :: ($d = 0, scan ($i; LOG) {if ($i.IsConfObj()) {$d += $i.buflen} , $d += (6 * 4)}, $d)
  365.     global gUser :: "USER" { 
  366.         prop Visible :: 0
  367.         prop Writable :: 0
  368.         prop NoGen :: 1
  369.     }
  370.     global gSetOf :: 0 { 
  371.         prop Visible :: 0
  372.         prop Writable :: 0
  373.         prop NoGen :: 1
  374.     }
  375.     global gNumOf :: 1 { 
  376.         prop Visible :: 0
  377.         prop Writable :: 0
  378.         prop NoGen :: 1
  379.     }
  380.     global gDirty :: 0 { 
  381.         prop Visible :: 0
  382.         prop Writable :: 0
  383.         prop NoGen :: 1
  384.     }
  385.     global gInitFlag :: 1 { 
  386.         prop Visible :: 0
  387.         prop Writable :: 0
  388.         prop NoGen :: 1
  389.     }
  390.     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) { 
  391.         prop Visible :: 0
  392.         prop Writable :: 0
  393.         prop NoGen :: 1
  394.     }
  395.     global OBJMEMSEG :: ISRAM { 
  396.         prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
  397.         prop MemberType :: MEM
  398.         prop MemberTest :: MEM.dataMember($1)
  399.         prop Label :: "Object Memory"
  400.         prop JSName :: "OBJMEMSEG"
  401.         prop Visible :: 1
  402.         prop Writable :: 1
  403.         prop NoGen :: 1
  404.     }
  405.     global ENABLED :: 1 { 
  406.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  407.         prop Label :: "Compile in logging"
  408.         prop Visible :: 0
  409.         prop Writable :: 0
  410.         prop NoGen :: 0
  411.     }
  412.     inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} { 
  413.         prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
  414.         prop Label :: "comment"
  415.         prop JSName :: "comment"
  416.         prop Visible :: 1
  417.         prop Writable :: if self.iDelUser == "USER" {1} else {0}
  418.         prop NoGen :: 1
  419.     }
  420.     inst iIsUsed :: 0 { 
  421.         prop Visible :: 0
  422.         prop Writable :: 0
  423.         prop NoGen :: 1
  424.     }
  425.     inst iId :: 0 { 
  426.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  427.         prop Style :: 0x01
  428.         prop Visible :: 0
  429.         prop Writable :: 1
  430.         prop NoGen :: 1
  431.     }
  432.     inst iDelUser :: "USER" { 
  433.         prop Visible :: 0
  434.         prop Writable :: 0
  435.         prop NoGen :: 1
  436.     }
  437.     inst iDelMsg :: "ok" { 
  438.         prop Visible :: 0
  439.         prop Writable :: 0
  440.         prop NoGen :: 1
  441.     }
  442.     inst bufseg :: = self.OBJMEMSEG { 
  443.         prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
  444.         prop MemberType :: MEM
  445.         prop MemberTest :: MEM.dataMember($1)
  446.         prop Label :: "bufseg"
  447.         prop JSName :: "bufSeg"
  448.         prop Visible :: 1
  449.         prop Writable :: 1
  450.         prop NoGen :: 0
  451.     }
  452.     inst buflen :: 64 { 
  453.         prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
  454.         prop Enum :: "0,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768"
  455.         prop Label :: "buflen (words)"
  456.         prop JSName :: "bufLen"
  457.         prop Visible :: 1
  458.         prop Writable :: 1
  459.         prop NoGen :: 0
  460.         prop Set :: (GlobalStatus.gDirty = 1, self.buflen = $1, "ok")
  461.     }
  462.     inst logtype :: "circular" { 
  463.         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
  464.         prop Enum :: "circular,fixed"
  465.         prop Label :: "logtype"
  466.         prop JSName :: "logType"
  467.         prop Visible :: 1
  468.         prop Writable :: 1
  469.         prop NoGen :: 0
  470.     }
  471.     inst iType :: "printf" { 
  472.         prop Label :: "datatype"
  473.         prop JSName :: "dataType"
  474.         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
  475.         prop Enum :: "printf,raw data"
  476.         prop Visible :: 1
  477.         prop Writable :: if self.iType == "system" {0} else {1}
  478.         prop NoGen :: 1
  479.     }
  480.     inst iFormat :: "0x%x, 0x%x, 0x%x" { 
  481.         prop Label :: "format"
  482.         prop JSName :: "format"
  483.         prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
  484.         prop Visible :: 1
  485.         prop Writable :: if self.iType == "raw data" {1} else {0}
  486.         prop NoGen :: 1
  487.     }
  488. }
  489. object LOG_system :: LOG {
  490.     param iComment :: "This object is required by the system to accumulate execution trace information"
  491.     param iIsUsed :: 1
  492.     param iId :: 0
  493.     param iDelUser :: "LOG"
  494.     param iDelMsg :: "LOG_system is a system log and cannot be deleted."
  495.     param buflen :: 64
  496.     param logtype :: "circular"
  497.     param iType :: "system"
  498.     param iFormat :: "0x%x, 0x%x, 0x%x"
  499. }
  500. type PIP {
  501.     isa ObjectMgr
  502.     prop Label :: "PIP - Buffered Pipe Manager"
  503.     prop IsContainedIn :: IOF
  504.     prop GlobalIcon :: 117
  505.     prop InstanceIcon :: 118
  506.     prop GlobalHelpTopic :: (109)
  507.     prop InstanceHelpTopic :: (209)
  508.     prop name :: "PIP"
  509.     prop maxObjs :: (32767)
  510.     prop dataSize :: ($b = 0, scan ($i; PIP) {if ($i.IsConfObj()) {$b += (12 + $i.framesize) * $i.numframes + 100} }, $b)
  511.     prop InstancePropertyPage :: ("{B7240DF0-AA51-11cf-9BFE-0000C0AC14C8}")
  512.     prop GlobalPropertyPage :: ("{B7240DF1-AA51-11cf-9BFE-0000C0AC14C8}")
  513.     prop localCreate :: ("ok")
  514.     prop AllocType :: ("1, _globalAllocDesc, _memSeg, _placement")
  515.     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")
  516.     prop AllocInst :: ("1, _instAllocDesc, _objMemSeg, _placement")
  517.     prop _instAllocDesc :: (if self.bufalign > 1 {"%8t /* %0s buffer */n .pip%1d: align = 0x%2x {}, _objId, _objAlign"} else {"%8t /* %0s buffer */n .pip%1d: {}, _objId"})
  518.     prop _placement :: (0x7fffffff / 2)
  519.     prop _objId :: self.iId
  520.     prop _objAlign :: self.bufalign * 4
  521.     prop _objMemSeg :: self.bufseg
  522.     prop _linkString :: if (self.gNumOf + self.gNumEmbed) > 0 {"*(.%1L)"} else {"/* no %1U objects */"}
  523.     prop _memSeg :: PIP.OBJMEMSEG
  524.     prop _objSize :: 100
  525.     prop mkId :: (self.iId = self.gNextId++, self.gNumOf++, self.iId)
  526.     prop cGen :: 1
  527.     prop cHeaderName :: if self.gNumOf > 0 {"pip.h"} else {""}
  528.     prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far PIP_Obj %0r;n"} else {"extern PIP_Obj %0r;n"})
  529.     global gUser :: "USER" { 
  530.         prop Visible :: 0
  531.         prop Writable :: 0
  532.         prop NoGen :: 1
  533.     }
  534.     global gSetOf :: 0 { 
  535.         prop Visible :: 0
  536.         prop Writable :: 0
  537.         prop NoGen :: 1
  538.     }
  539.     global gNumOf :: 0 { 
  540.         prop Visible :: 0
  541.         prop Writable :: 0
  542.         prop NoGen :: 1
  543.     }
  544.     global gDirty :: 0 { 
  545.         prop Visible :: 0
  546.         prop Writable :: 0
  547.         prop NoGen :: 1
  548.     }
  549.     global gInitFlag :: 1 { 
  550.         prop Visible :: 0
  551.         prop Writable :: 0
  552.         prop NoGen :: 1
  553.     }
  554.     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) { 
  555.         prop Visible :: 0
  556.         prop Writable :: 0
  557.         prop NoGen :: 1
  558.     }
  559.     global OBJMEMSEG :: ISRAM { 
  560.         prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
  561.         prop MemberType :: MEM
  562.         prop MemberTest :: MEM.dataMember($1)
  563.         prop Label :: "Object Memory"
  564.         prop JSName :: "OBJMEMSEG"
  565.         prop Visible :: 1
  566.         prop Writable :: 1
  567.         prop NoGen :: 1
  568.     }
  569.     global gNumEmbed :: 2 { 
  570.         prop NoGen :: 0
  571.     }
  572.     global gNextId :: 0
  573.     inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} { 
  574.         prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
  575.         prop Label :: "comment"
  576.         prop JSName :: "comment"
  577.         prop Visible :: 1
  578.         prop Writable :: if self.iDelUser == "USER" {1} else {0}
  579.         prop NoGen :: 1
  580.     }
  581.     inst iIsUsed :: 0 { 
  582.         prop Visible :: 0
  583.         prop Writable :: 0
  584.         prop NoGen :: 1
  585.     }
  586.     inst iId :: 0 { 
  587.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  588.         prop Style :: 0x01
  589.         prop Visible :: 0
  590.         prop Writable :: 1
  591.         prop NoGen :: 1
  592.     }
  593.     inst iDelUser :: "USER" { 
  594.         prop Visible :: 0
  595.         prop Writable :: 0
  596.         prop NoGen :: 1
  597.     }
  598.     inst iDelMsg :: "ok" { 
  599.         prop Visible :: 0
  600.         prop Writable :: 0
  601.         prop NoGen :: 1
  602.     }
  603.     inst bufseg :: = self.OBJMEMSEG { 
  604.         prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
  605.         prop JSName :: "bufSeg"
  606.         prop MemberType :: MEM
  607.         prop MemberTest :: MEM.dataMember($1)
  608.         prop Visible :: 1
  609.         prop Writable :: (if self.iDelUser == "USER" {1} else {0})
  610.         prop NoGen :: 1
  611.     }
  612.     inst bufalign :: 1 { 
  613.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  614.         prop JSName :: "bufAlign"
  615.         prop Style :: 0x01 | 0x02
  616.         prop Visible :: 1
  617.         prop Writable :: (if self.iDelUser == "USER" {1} else {0})
  618.         prop NoGen :: 1
  619.         prop Set :: ($e = "ok", if ($1 == 0) {$e = self.error("Cannot set align value to 0")} else {self.bufalign = $1}, $e)
  620.     }
  621.     inst buf :: "<NULL>" { 
  622.         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
  623.         prop Visible :: 0
  624.         prop Writable :: 0
  625.         prop NoGen :: 0
  626.     }
  627.     inst framesize :: 8 { 
  628.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  629.         prop Label :: "framesize (words)"
  630.         prop JSName :: "frameSize"
  631.         prop Style :: if GBL.DSPTYPE == 62 {0x02} else {0x01 | 0x02}
  632.         prop Visible :: 1
  633.         prop Writable :: (if self.iDelUser == "USER" {1} else {0})
  634.         prop NoGen :: 0
  635.         prop Set :: (if ($1 < 1) {self.error("framesize must be >= 1.")} else {GlobalStatus.gDirty = 1, self.framesize = $1, "ok"})
  636.     }
  637.     inst numframes :: 2 { 
  638.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  639.         prop Style :: 0x01
  640.         prop JSName :: "numFrames"
  641.         prop Visible :: 1
  642.         prop Writable :: (if self.iDelUser == "USER" {1} else {0})
  643.         prop NoGen :: 0
  644.         prop Set :: (if ($1 < 1) {self.error("Pipes must contain at least 1 frame.")} else {GlobalStatus.gDirty = 1, self.numframes = $1, "ok"})
  645.     }
  646.     inst monitor :: "reader" { 
  647.         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
  648.         prop JSName :: "monitor"
  649.         prop Enum :: "reader,writer,none"
  650.         prop Visible :: 1
  651.         prop Writable :: 1
  652.         prop NoGen :: 0
  653.     }
  654.     inst notifyWriter :: @_FXN_F_nop { 
  655.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  656.         prop JSName :: "notifyWriterFxn"
  657.         prop Visible :: 1
  658.         prop Writable :: (if self.iDelUser == "USER" {1} else {0})
  659.         prop NoGen :: 0
  660.         prop TabName :: "Notify Functions"
  661.     }
  662.     inst nwarg0 :: 0 { 
  663.         prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
  664.         prop JSName :: "notifyWriterArg0"
  665.         prop Visible :: 1
  666.         prop Writable :: (if self.iDelUser == "USER" {1} else {0})
  667.         prop NoGen :: 0
  668.         prop TabName :: "Notify Functions"
  669.     }
  670.     inst nwarg1 :: 0 { 
  671.         prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
  672.         prop JSName :: "notifyWriterArg1"
  673.         prop Visible :: 1
  674.         prop Writable :: (if self.iDelUser == "USER" {1} else {0})
  675.         prop NoGen :: 0
  676.         prop TabName :: "Notify Functions"
  677.     }
  678.     inst notifyReader :: @_FXN_F_nop { 
  679.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  680.         prop JSName :: "notifyReaderFxn"
  681.         prop Visible :: 1
  682.         prop Writable :: (if self.iDelUser == "USER" {1} else {0})
  683.         prop NoGen :: 0
  684.         prop TabName :: "Notify Functions"
  685.     }
  686.     inst nrarg0 :: 0 { 
  687.         prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
  688.         prop JSName :: "notifyReaderArg0"
  689.         prop Visible :: 1
  690.         prop Writable :: (if self.iDelUser == "USER" {1} else {0})
  691.         prop NoGen :: 0
  692.         prop TabName :: "Notify Functions"
  693.     }
  694.     inst nrarg1 :: 0 { 
  695.         prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
  696.         prop JSName :: "notifyReaderArg1"
  697.         prop Visible :: 1
  698.         prop Writable :: (if self.iDelUser == "USER" {1} else {0})
  699.         prop NoGen :: 0
  700.         prop TabName :: "Notify Functions"
  701.     }
  702.     inst bufFrameAlign :: = self._objAlign { 
  703.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  704.         prop Visible :: 0
  705.         prop Writable :: 0
  706.         prop NoGen :: 0
  707.     }
  708. }
  709. type SEM {
  710.     isa ObjectMgr
  711.     prop name :: "SEM"
  712.     prop Label :: "SEM - Semaphore Manager"
  713.     prop IsContainedIn :: SYN
  714.     prop GlobalIcon :: 137
  715.     prop InstanceIcon :: 138
  716.     prop GlobalHelpTopic :: (310)
  717.     prop InstanceHelpTopic :: (410)
  718.     prop InstancePropertyPage :: ("{D01ACC04-38DD-11d1-988B-0020AFEE33C6}")
  719.     prop GlobalPropertyPage :: ("{D01ACC05-38DD-11d1-988B-0020AFEE33C6}")
  720.     prop maxObjs :: (32767)
  721.     prop AllocType :: (if (self.gNumOf > 0) {"1, _globalAllocDesc, _memSeg, _placement"} )
  722.     prop _globalAllocDesc :: ("%8t .sem: {}")
  723.     prop _placement :: (0x7fffffff / 2)
  724.     prop _memSeg :: self.OBJMEMSEG
  725.     prop dataSize :: ((8 + 3) * SEM.gNumOf * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE))
  726.     prop cGen :: 1
  727.     prop cHeaderName :: if self.gNumOf > 0 {"sem.h"} else {""}
  728.     prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far SEM_Obj %0r;n"} else {"extern SEM_Obj %0r;n"})
  729.     global gUser :: "USER" { 
  730.         prop Visible :: 0
  731.         prop Writable :: 0
  732.         prop NoGen :: 1
  733.     }
  734.     global gSetOf :: 0 { 
  735.         prop Visible :: 0
  736.         prop Writable :: 0
  737.         prop NoGen :: 1
  738.     }
  739.     global gNumOf :: 0 { 
  740.         prop Visible :: 0
  741.         prop Writable :: 0
  742.         prop NoGen :: 1
  743.     }
  744.     global gDirty :: 0 { 
  745.         prop Visible :: 0
  746.         prop Writable :: 0
  747.         prop NoGen :: 1
  748.     }
  749.     global gInitFlag :: 1 { 
  750.         prop Visible :: 0
  751.         prop Writable :: 0
  752.         prop NoGen :: 1
  753.     }
  754.     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) { 
  755.         prop Visible :: 0
  756.         prop Writable :: 0
  757.         prop NoGen :: 1
  758.     }
  759.     global CALLBACKOBJ :: nil { 
  760.         prop Visible :: 0
  761.         prop Writable :: 0
  762.         prop NoGen :: 1
  763.     }
  764.     global OBJMEMSEG :: ISRAM { 
  765.         prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
  766.         prop MemberType :: MEM
  767.         prop MemberTest :: MEM.dataMember($1)
  768.         prop Label :: "Object Memory"
  769.         prop JSName :: "OBJMEMSEG"
  770.         prop Visible :: 1
  771.         prop Writable :: 1
  772.         prop NoGen :: 1
  773.     }
  774.     inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} { 
  775.         prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
  776.         prop Label :: "comment"
  777.         prop JSName :: "comment"
  778.         prop Visible :: 1
  779.         prop Writable :: if self.iDelUser == "USER" {1} else {0}
  780.         prop NoGen :: 1
  781.     }
  782.     inst iIsUsed :: 0 { 
  783.         prop Visible :: 0
  784.         prop Writable :: 0
  785.         prop NoGen :: 1
  786.     }
  787.     inst iId :: 0 { 
  788.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  789.         prop Style :: 0x01
  790.         prop Visible :: 0
  791.         prop Writable :: 1
  792.         prop NoGen :: 1
  793.     }
  794.     inst iDelUser :: "USER" { 
  795.         prop Visible :: 0
  796.         prop Writable :: 0
  797.         prop NoGen :: 1
  798.     }
  799.     inst iDelMsg :: "ok" { 
  800.         prop Visible :: 0
  801.         prop Writable :: 0
  802.         prop NoGen :: 1
  803.     }
  804.     inst iCount :: 0 { 
  805.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  806.         prop Style :: 0x02
  807.         prop Label :: "Initial semaphore count"
  808.         prop JSName :: "count"
  809.         prop Visible :: 1
  810.         prop Writable :: 1
  811.     }
  812. }
  813. type MBX {
  814.     isa ObjectMgr
  815.     prop name :: "MBX"
  816.     prop Label :: "MBX - Mailbox Manager"
  817.     prop IsContainedIn :: SYN
  818.     prop GlobalIcon :: 131
  819.     prop InstanceIcon :: 132
  820.     prop GlobalHelpTopic :: (307)
  821.     prop InstanceHelpTopic :: (407)
  822.     prop InstancePropertyPage :: ("{0EB45D44-38C1-11d1-988B-0020AFEE33C6}")
  823.     prop GlobalPropertyPage :: ("{0EB45D45-38C1-11d1-988B-0020AFEE33C6}")
  824.     prop maxObjs :: (32767)
  825.     prop AllocType :: (if (self.gNumOf > 0) {"1, _bssAllocDesc, _memSeg, _placement"} )
  826.     prop _bssAllocDesc :: ("%8t .mbx: {}")
  827.     prop _placement :: (0x7fffffff / 2)
  828.     prop _memSeg :: self.OBJMEMSEG
  829.     prop AllocInst :: ("1 _instAllocDesc, _instMemSeg, _placement")
  830.     prop _instAllocDesc :: ("%8t .%0s$que: align = 0x4 {%12tn %0s$queElems = .;n . += %1d;%8tn }, _qElemSize")
  831.     prop _instMemSeg :: self.iMbxSeg
  832.     prop _qElemSize :: (if ((GBL.DSPTYPE == 55) || (GBL.DSPTYPE == 28)) {$a = self.iMsgSize, if ($a & 0x1) {$a += 1} , (2 + $a) * self.iMbxLength * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE) * 2} else {(2 + self.iMsgSize) * self.iMbxLength * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE)})
  833.     prop dataSize :: ($d = 0, scan ($i; MBX) {$d += (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE) * (($i.iMsgSize + 2) * $i.iMbxLength + 29)}, $d)
  834.     prop cGen :: 1
  835.     prop cHeaderName :: if self.gNumOf > 0 {"mbx.h"} else {""}
  836.     prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far MBX_Obj %0r;n"} else {"extern MBX_Obj %0r;n"})
  837.     global gUser :: "USER" { 
  838.         prop Visible :: 0
  839.         prop Writable :: 0
  840.         prop NoGen :: 1
  841.     }
  842.     global gSetOf :: 0 { 
  843.         prop Visible :: 0
  844.         prop Writable :: 0
  845.         prop NoGen :: 1
  846.     }
  847.     global gNumOf :: 0 { 
  848.         prop Visible :: 0
  849.         prop Writable :: 0
  850.         prop NoGen :: 1
  851.     }
  852.     global gDirty :: 0 { 
  853.         prop Visible :: 0
  854.         prop Writable :: 0
  855.         prop NoGen :: 1
  856.     }
  857.     global gInitFlag :: 1 { 
  858.         prop Visible :: 0
  859.         prop Writable :: 0
  860.         prop NoGen :: 1
  861.     }
  862.     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) { 
  863.         prop Visible :: 0
  864.         prop Writable :: 0
  865.         prop NoGen :: 1
  866.     }
  867.     global CALLBACKOBJ :: nil { 
  868.         prop Visible :: 0
  869.         prop Writable :: 0
  870.         prop NoGen :: 1
  871.     }
  872.     global OBJMEMSEG :: ISRAM { 
  873.         prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
  874.         prop MemberType :: MEM
  875.         prop MemberTest :: MEM.dataMember($1)
  876.         prop Label :: "Object Memory"
  877.         prop JSName :: "OBJMEMSEG"
  878.         prop Visible :: 1
  879.         prop Writable :: 1
  880.         prop NoGen :: 1
  881.     }
  882.     inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} { 
  883.         prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
  884.         prop Label :: "comment"
  885.         prop JSName :: "comment"
  886.         prop Visible :: 1
  887.         prop Writable :: if self.iDelUser == "USER" {1} else {0}
  888.         prop NoGen :: 1
  889.     }
  890.     inst iIsUsed :: 0 { 
  891.         prop Visible :: 0
  892.         prop Writable :: 0
  893.         prop NoGen :: 1
  894.     }
  895.     inst iId :: 0 { 
  896.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  897.         prop Style :: 0x01
  898.         prop Visible :: 0
  899.         prop Writable :: 1
  900.         prop NoGen :: 1
  901.     }
  902.     inst iDelUser :: "USER" { 
  903.         prop Visible :: 0
  904.         prop Writable :: 0
  905.         prop NoGen :: 1
  906.     }
  907.     inst iDelMsg :: "ok" { 
  908.         prop Visible :: 0
  909.         prop Writable :: 0
  910.         prop NoGen :: 1
  911.     }
  912.     inst iMsgSize :: 1 { 
  913.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  914.         prop Style :: 0x02
  915.         prop Label :: "Message Size"
  916.         prop JSName :: "messageSize"
  917.         prop Visible :: 1
  918.         prop Writable :: 1
  919.         prop Set :: (if ($1 == 0) {self.error("Message size cannot be zero")} else {GlobalStatus.gDirty = 1, self.iMsgSize = $1, "ok"})
  920.     }
  921.     inst iMbxLength :: 1 { 
  922.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  923.         prop Style :: 0x02
  924.         prop Label :: "Mailbox Length"
  925.         prop JSName :: "length"
  926.         prop Visible :: 1
  927.         prop Writable :: 1
  928.         prop Set :: (if ($1 == 0) {self.error("Mailbox length cannot be zero")} else {GlobalStatus.gDirty = 1, self.iMbxLength = $1, "ok"})
  929.     }
  930.     inst iMbxSeg :: MBX.OBJMEMSEG { 
  931.         prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
  932.         prop MemberType :: MEM
  933.         prop MemberTest :: MEM.dataMember($1)
  934.         prop Label :: "Element memory segment"
  935.         prop JSName :: "elementSeg"
  936.         prop Visible :: 1
  937.         prop Writable :: 1
  938.     }
  939. }
  940. type QUE {
  941.     isa ObjectMgr
  942.     prop name :: "QUE"
  943.     prop Label :: "QUE - Atomic Queue Manager"
  944.     prop IsContainedIn :: SYN
  945.     prop GlobalIcon :: 133
  946.     prop InstanceIcon :: 134
  947.     prop IsConfMod :: 1
  948.     prop GlobalHelpTopic :: (309)
  949.     prop InstanceHelpTopic :: (409)
  950.     prop InstancePropertyPage :: ("{D01ACC01-38DD-11d1-988B-0020AFEE33C6}")
  951.     prop GlobalPropertyPage :: ("{D01ACC02-38DD-11d1-988B-0020AFEE33C6}")
  952.     prop maxObjs :: (32767)
  953.     prop AllocType :: (if (self.gNumOf > 0) {"1, _globalAllocDesc, _memSeg, _placement"} )
  954.     prop _globalAllocDesc :: ("%8t .que: {}")
  955.     prop _placement :: (0x7fffffff / 2)
  956.     prop _memSeg :: self.OBJMEMSEG
  957.     prop dataSize :: (2 * QUE.gNumOf * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE))
  958.     prop cGen :: 1
  959.     prop cHeaderName :: if self.gNumOf > 0 {"que.h"} else {""}
  960.     prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far QUE_Obj %0r;n"} else {"extern QUE_Obj %0r;n"})
  961.     global gUser :: "USER" { 
  962.         prop Visible :: 0
  963.         prop Writable :: 0
  964.         prop NoGen :: 1
  965.     }
  966.     global gSetOf :: 0 { 
  967.         prop Visible :: 0
  968.         prop Writable :: 0
  969.         prop NoGen :: 1
  970.     }
  971.     global gNumOf :: 0 { 
  972.         prop Visible :: 0
  973.         prop Writable :: 0
  974.         prop NoGen :: 1
  975.     }
  976.     global gDirty :: 0 { 
  977.         prop Visible :: 0
  978.         prop Writable :: 0
  979.         prop NoGen :: 1
  980.     }
  981.     global gInitFlag :: 1 { 
  982.         prop Visible :: 0
  983.         prop Writable :: 0
  984.         prop NoGen :: 1
  985.     }
  986.     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) { 
  987.         prop Visible :: 0
  988.         prop Writable :: 0
  989.         prop NoGen :: 1
  990.     }
  991.     global CALLBACKOBJ :: nil { 
  992.         prop Visible :: 0
  993.         prop Writable :: 0
  994.         prop NoGen :: 1
  995.     }
  996.     global OBJMEMSEG :: ISRAM { 
  997.         prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
  998.         prop MemberType :: MEM
  999.         prop MemberTest :: MEM.dataMember($1)
  1000.         prop Label :: "Object Memory"
  1001.         prop JSName :: "OBJMEMSEG"
  1002.         prop Visible :: 1
  1003.         prop Writable :: 1
  1004.         prop NoGen :: 1
  1005.     }
  1006.     inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} { 
  1007.         prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
  1008.         prop Label :: "comment"
  1009.         prop JSName :: "comment"
  1010.         prop Visible :: 1
  1011.         prop Writable :: if self.iDelUser == "USER" {1} else {0}
  1012.         prop NoGen :: 1
  1013.     }
  1014.     inst iIsUsed :: 0 { 
  1015.         prop Visible :: 0
  1016.         prop Writable :: 0
  1017.         prop NoGen :: 1
  1018.     }
  1019.     inst iId :: 0 { 
  1020.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  1021.         prop Style :: 0x01
  1022.         prop Visible :: 0
  1023.         prop Writable :: 1
  1024.         prop NoGen :: 1
  1025.     }
  1026.     inst iDelUser :: "USER" { 
  1027.         prop Visible :: 0
  1028.         prop Writable :: 0
  1029.         prop NoGen :: 1
  1030.     }
  1031.     inst iDelMsg :: "ok" { 
  1032.         prop Visible :: 0
  1033.         prop Writable :: 0
  1034.         prop NoGen :: 1
  1035.     }
  1036. }
  1037. type LCK {
  1038.     isa ObjectMgr
  1039.     prop name :: "LCK"
  1040.     prop Label :: "LCK - Resource Lock Manager"
  1041.     prop IsContainedIn :: SYN
  1042.     prop GlobalIcon :: 129
  1043.     prop InstanceIcon :: 130
  1044.     prop IsConfMod :: 1
  1045.     prop GlobalHelpTopic :: (306)
  1046.     prop InstanceHelpTopic :: (406)
  1047.     prop InstancePropertyPage :: ("{0EB45D40-38C1-11d1-988B-0020AFEE33C6}")
  1048.     prop GlobalPropertyPage :: ("{0EB45D41-38C1-11d1-988B-0020AFEE33C6}")
  1049.     prop maxObjs :: (32767)
  1050.     prop AllocType :: (if (self.gNumOf > 0) {"1, _bssAllocDesc, _memSeg, _placement"} )
  1051.     prop _bssAllocDesc :: ("%8t .lck: {}")
  1052.     prop _objAllocDesc :: ("%8t .LCK$obj: {}")
  1053.     prop _placement :: (0x7fffffff / 2)
  1054.     prop _memSeg :: self.OBJMEMSEG
  1055.     prop dataSize :: ((8 + 2) * LCK.gNumOf * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE))
  1056.     prop cGen :: 1
  1057.     prop cHeaderName :: if self.gNumOf > 0 {"lck.h"} else {""}
  1058.     prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far LCK_Obj %0r;n"} else {"extern LCK_Obj %0r;n"})
  1059.     global gUser :: "USER" { 
  1060.         prop Visible :: 0
  1061.         prop Writable :: 0
  1062.         prop NoGen :: 1
  1063.     }
  1064.     global gSetOf :: 0 { 
  1065.         prop Visible :: 0
  1066.         prop Writable :: 0
  1067.         prop NoGen :: 1
  1068.     }
  1069.     global gNumOf :: 0 { 
  1070.         prop Visible :: 0
  1071.         prop Writable :: 0
  1072.         prop NoGen :: 1
  1073.     }
  1074.     global gDirty :: 0 { 
  1075.         prop Visible :: 0
  1076.         prop Writable :: 0
  1077.         prop NoGen :: 1
  1078.     }
  1079.     global gInitFlag :: 1 { 
  1080.         prop Visible :: 0
  1081.         prop Writable :: 0
  1082.         prop NoGen :: 1
  1083.     }
  1084.     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) { 
  1085.         prop Visible :: 0
  1086.         prop Writable :: 0
  1087.         prop NoGen :: 1
  1088.     }
  1089.     global CALLBACKOBJ :: nil { 
  1090.         prop Visible :: 0
  1091.         prop Writable :: 0
  1092.         prop NoGen :: 1
  1093.     }
  1094.     global OBJMEMSEG :: ISRAM { 
  1095.         prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
  1096.         prop MemberType :: MEM
  1097.         prop MemberTest :: MEM.dataMember($1)
  1098.         prop Label :: "Object Memory"
  1099.         prop JSName :: "OBJMEMSEG"
  1100.         prop Visible :: 1
  1101.         prop Writable :: 1
  1102.         prop NoGen :: 1
  1103.     }
  1104.     inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} { 
  1105.         prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
  1106.         prop Label :: "comment"
  1107.         prop JSName :: "comment"
  1108.         prop Visible :: 1
  1109.         prop Writable :: if self.iDelUser == "USER" {1} else {0}
  1110.         prop NoGen :: 1
  1111.     }
  1112.     inst iIsUsed :: 0 { 
  1113.         prop Visible :: 0
  1114.         prop Writable :: 0
  1115.         prop NoGen :: 1
  1116.     }
  1117.     inst iId :: 0 { 
  1118.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  1119.         prop Style :: 0x01
  1120.         prop Visible :: 0
  1121.         prop Writable :: 1
  1122.         prop NoGen :: 1
  1123.     }
  1124.     inst iDelUser :: "USER" { 
  1125.         prop Visible :: 0
  1126.         prop Writable :: 0
  1127.         prop NoGen :: 1
  1128.     }
  1129.     inst iDelMsg :: "ok" { 
  1130.         prop Visible :: 0
  1131.         prop Writable :: 0
  1132.         prop NoGen :: 1
  1133.     }
  1134. }
  1135. type SIO {
  1136.     isa ObjectMgr
  1137.     prop name :: "SIO"
  1138.     prop Label :: "SIO - Stream Input and Output Manager"
  1139.     prop IsContainedIn :: IOF
  1140.     prop GlobalIcon :: 139
  1141.     prop InstanceIcon :: 140
  1142.     prop GlobalHelpTopic :: (311)
  1143.     prop InstanceHelpTopic :: (411)
  1144.     prop InstancePropertyPage :: ("{7C4C9A60-763E-11d1-988B-0020AFEE33C6}")
  1145.     prop GlobalPropertyPage :: ("{7C4C9A61-763E-11d1-988B-0020AFEE33C6}")
  1146.     prop DependsOn :: "DEV,UDEV,DGN,DHL,DPI"
  1147.     prop maxObjs :: (32767)
  1148.     prop AllocType :: (if (self.gNumOf > 0) {"2, _bssAllocDesc, _memSeg, _placement,
  1149.           _objAllocDesc, _memSeg, _placement"} )
  1150.     prop _bssAllocDesc :: ("%8t .SIO$bss: {%12tn *(.SIO$bss)%8tn }")
  1151.     prop _objAllocDesc :: ("%8t .SIO$obj: {%12tn *(.SIO$obj)%8tn }")
  1152.     prop _placement :: (0x7fffffff / 2)
  1153.     prop _memSeg :: self.OBJMEMSEG
  1154.     prop AllocInst :: ("1, _instBufDesc, _instBufSeg, _placement")
  1155.     prop _instBufDesc :: (if self.iAlign > 1 {"%8t .%0s$bufs: align = 0x%1x {}, _objAlign"} else {"%8t .%0s$bufs: {}"})
  1156.     prop _objAlign :: self.iAlign
  1157.     prop _instBufSeg :: self.iBufSegid
  1158.     prop defDev :: ($h = nil, $i = nil, $j = nil, scan ($h; nil) {if ($h.isDriver == 1) {scan ($i; $h) {if ($j == nil && $i.iIsTerminal != 0 && $i.iIsVirtual == 0) {$j = $i, break} }} }, $j)
  1159.     prop devList :: ($h = nil, $i = nil, $j = nil, scan ($h; nil) {if ($h.isDriver == 1) {scan ($i; $h) {if ($j == nil && $i.iIsTerminal != 0 && $i.iIsVirtual == 0) {$j = $i, scan ($a; DIO) {if ($a == $i) {$i.numTimeUse++} }, break} }} }, $j)
  1160.     prop setDev :: ($h = nil, $i = nil, $j = nil, scan ($h; nil) {if ($h.isDriver == 1) {scan ($i; $h) {if ($i == $1) {$j = $i} }} }, $j)
  1161.     prop localCanCreate :: (if (self.defDev == nil) {self.error("A driver device must be created before creating a stream.")} else {"ok"})
  1162.     prop localDelete :: (scan ($a; DIO) {if ($a == self.iDevice) {self.iDevice.numTimeUse--} }, "ok")
  1163.     prop cGen :: 1
  1164.     prop cHeaderName :: if self.gNumOf > 0 {"sio.h"} else {""}
  1165.     prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far SIO_Obj %0r;n"} else {"extern SIO_Obj %0r;n"})
  1166.     global gUser :: "USER" { 
  1167.         prop Visible :: 0
  1168.         prop Writable :: 0
  1169.         prop NoGen :: 1
  1170.     }
  1171.     global gSetOf :: 0 { 
  1172.         prop Visible :: 0
  1173.         prop Writable :: 0
  1174.         prop NoGen :: 1
  1175.     }
  1176.     global gNumOf :: 0 { 
  1177.         prop Visible :: 0
  1178.         prop Writable :: 0
  1179.         prop NoGen :: 1
  1180.     }
  1181.     global gDirty :: 0 { 
  1182.         prop Visible :: 0
  1183.         prop Writable :: 0
  1184.         prop NoGen :: 1
  1185.     }
  1186.     global gInitFlag :: 1 { 
  1187.         prop Visible :: 0
  1188.         prop Writable :: 0
  1189.         prop NoGen :: 1
  1190.     }
  1191.     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) { 
  1192.         prop Visible :: 0
  1193.         prop Writable :: 0
  1194.         prop NoGen :: 1
  1195.     }
  1196.     global gNumEmbed :: 0 { 
  1197.         prop NoGen :: 1
  1198.     }
  1199.     global OBJMEMSEG :: ISRAM { 
  1200.         prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
  1201.         prop MemberType :: MEM
  1202.         prop MemberTest :: MEM.dataMember($1)
  1203.         prop Label :: "Object Memory"
  1204.         prop JSName :: "OBJMEMSEG"
  1205.         prop Visible :: 1
  1206.         prop Writable :: 1
  1207.         prop NoGen :: 1
  1208.     }
  1209.     global USEISSUERECLAIM :: 0 { 
  1210.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  1211.         prop Label :: "Use Only Issue/Reclaim Model"
  1212.         prop JSName :: "USEISSUERECLAIM"
  1213.         prop Visible :: 1
  1214.         prop Writable :: 1
  1215.         prop NoGen :: 1
  1216.         prop Set :: (self.USEISSUERECLAIM = $1, if ($1 == 1) {scan ($i; SIO) {$i.iModelName = "Issue/Reclaim"}} , "ok")
  1217.     }
  1218.     inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} { 
  1219.         prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
  1220.         prop Label :: "comment"
  1221.         prop JSName :: "comment"
  1222.         prop Visible :: 1
  1223.         prop Writable :: if self.iDelUser == "USER" {1} else {0}
  1224.         prop NoGen :: 1
  1225.     }
  1226.     inst iIsUsed :: 0 { 
  1227.         prop Visible :: 0
  1228.         prop Writable :: 0
  1229.         prop NoGen :: 1
  1230.     }
  1231.     inst iId :: 0 { 
  1232.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  1233.         prop Style :: 0x01
  1234.         prop Visible :: 0
  1235.         prop Writable :: 1
  1236.         prop NoGen :: 1
  1237.     }
  1238.     inst iDelUser :: "USER" { 
  1239.         prop Visible :: 0
  1240.         prop Writable :: 0
  1241.         prop NoGen :: 1
  1242.     }
  1243.     inst iDelMsg :: "ok" { 
  1244.         prop Visible :: 0
  1245.         prop Writable :: 0
  1246.         prop NoGen :: 1
  1247.     }
  1248.     inst iDevice :: SIO.devList { 
  1249.         prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
  1250.         prop TypeTest :: $1.isDriver == 1
  1251.         prop MemberTest :: $1.driverType != "DEV_IOMTYPE"
  1252.         prop Label :: "Device"
  1253.         prop JSName :: "deviceName"
  1254.         prop Set :: (if (($1.iIsTerminal == 0) && (self.iDevCtrlParam == "")) {self.error("To select a stacking device, enter first a terminal device in Device Control String")} else {if ($1.iIsVirtual == 1) {self.error("The device you have selected is a virtual instance, you must select a non-virtual device")} else {scan ($a; DIO) {if ($a == self.iDevice) {self.iDevice.numTimeUse--} }, scan ($b; DIO) {if ($b == $1) {$1.numTimeUse++} }, self.iDevice = self.setDev($1), "ok"}})
  1255.         prop Visible :: 1
  1256.         prop Writable :: 1
  1257.     }
  1258.     inst iDevCtrlParam :: "" { 
  1259.         prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
  1260.         prop Label :: "Device Control String"
  1261.         prop JSName :: "controlParameter"
  1262.         prop Visible :: 1
  1263.         prop Writable :: 1
  1264.     }
  1265.     inst iDevId :: = self.iDevice.iDevId
  1266.     inst iFxns :: = self.iDevice.iFxns
  1267.     inst iMode :: "input" { 
  1268.         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
  1269.         prop Enum :: "input,output"
  1270.         prop Label :: "Mode"
  1271.         prop JSName :: "mode"
  1272.         prop Visible :: 1
  1273.         prop Writable :: 1
  1274.     }
  1275.     inst iBufsize :: 0x80 { 
  1276.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  1277.         prop Style :: 0x02
  1278.         prop Label :: "Buffer size"
  1279.         prop JSName :: "bufSize"
  1280.         prop Visible :: 1
  1281.         prop Writable :: 1
  1282.     }
  1283.     inst iNbufs :: 2 { 
  1284.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  1285.         prop Style :: 0x01
  1286.         prop Label :: "Number of buffers"
  1287.         prop JSName :: "numBufs"
  1288.         prop Visible :: 1
  1289.         prop Writable :: 1
  1290.     }
  1291.     inst iBufSegid :: = self.OBJMEMSEG { 
  1292.         prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
  1293.         prop MemberType :: MEM
  1294.         prop MemberTest :: MEM.dataMember($1)
  1295.         prop Label :: "Place buffers in memory segment"
  1296.         prop JSName :: "bufSegId"
  1297.         prop Visible :: 1
  1298.         prop Writable :: self.iAllocBuf == 1
  1299.     }
  1300.     inst iAlign :: 1 { 
  1301.         prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
  1302.         prop Enum :: "1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768"
  1303.         prop Label :: "Buffer alignment"
  1304.         prop JSName :: "bufAlign"
  1305.         prop Visible :: 1
  1306.         prop Writable :: self.iAllocBuf == 1
  1307.     }
  1308.     inst iFlush :: 0 { 
  1309.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  1310.         prop Label :: "Flush"
  1311.         prop JSName :: "flush"
  1312.         prop Visible :: 1
  1313.         prop Writable :: 1
  1314.     }
  1315.     inst iModelName :: "Standard" { 
  1316.         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
  1317.         prop Enum :: "Standard,Issue/Reclaim"
  1318.         prop Label :: "Model"
  1319.         prop JSName :: "modelName"
  1320.         prop Visible :: 1
  1321.         prop Writable :: 1
  1322.         prop NoGen :: 1
  1323.         prop Set :: ($e = "ok", if (self.USEISSUERECLAIM == 1) {if ($1 == "Standard") {$e = self.error("SIO Issue/Reclaim model support selected")} else {self.iModel = if $1 == "Standard" {"SIO_STANDARD"} else {"SIO_ISSUERECLAIM"}, self.iModelName = $1}} else {self.iModel = if $1 == "Standard" {"SIO_STANDARD"} else {"SIO_ISSUERECLAIM"}, self.iModelName = $1}, $e)
  1324.     }
  1325.     inst iAllocBuf :: = self.iSaveAllocBuf { 
  1326.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  1327.         prop Label :: "Allocate Static Buffer(s)"
  1328.         prop JSName :: "allocStaticBuf"
  1329.         prop Visible :: 1
  1330.         prop Writable :: 1
  1331.         prop Set :: (self.iSaveAllocBuf = $1, "ok")
  1332.     }
  1333.     inst iSaveAllocBuf :: 0 { 
  1334.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  1335.         prop NoGen :: 1
  1336.     }
  1337.     inst iModel :: "SIO_STANDARD" { 
  1338.         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
  1339.         prop Enum :: "SIO_STANDARD,SIO_ISSUERECLAIM"
  1340.         prop Visible :: 0
  1341.         prop Writable :: 0
  1342.     }
  1343.     inst iTimeout :: = if self.iModel == "SIO_ISSUERECLAIM" {self.iSaveTimeout} else {-1} { 
  1344.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  1345.         prop Label :: "Timeout for I/O operation"
  1346.         prop JSName :: "timeout"
  1347.         prop Visible :: 1
  1348.         prop Writable :: self.iModel == "SIO_ISSUERECLAIM"
  1349.         prop Set :: (self.iSaveTimeout = $1, "ok")
  1350.     }
  1351.     inst iSaveTimeout :: -1 { 
  1352.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  1353.         prop NoGen :: 1
  1354.     }
  1355.     inst useCallBackFxn :: 0 { 
  1356.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  1357.         prop Label :: "use callback function"
  1358.         prop JSName :: "useCallBackFxn"
  1359.         prop Visible :: 1
  1360.         prop Writable :: 1
  1361.         prop NoGen :: 0
  1362.         prop TabName :: "Callback"
  1363.     }
  1364.     inst callBackFxn :: @_FXN_F_nop { 
  1365.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  1366.         prop Label :: "callback function"
  1367.         prop JSName :: "callBackFxn"
  1368.         prop Visible :: 1
  1369.         prop Writable :: self.useCallBackFxn
  1370.         prop NoGen :: 0
  1371.         prop TabName :: "Callback"
  1372.     }
  1373.     inst arg0 :: 0 { 
  1374.         prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
  1375.         prop Label :: "argument 0"
  1376.         prop JSName :: "arg0"
  1377.         prop Visible :: 1
  1378.         prop Writable :: self.useCallBackFxn
  1379.         prop NoGen :: 0
  1380.         prop TabName :: "Callback"
  1381.     }
  1382.     inst arg1 :: 0 { 
  1383.         prop Type :: "{E91790E0-0456-11d2-B8D0-006008BDB66F}"
  1384.         prop Label :: "argument 1"
  1385.         prop JSName :: "arg1"
  1386.         prop Visible :: 1
  1387.         prop Writable :: self.useCallBackFxn
  1388.         prop NoGen :: 0
  1389.         prop TabName :: "Callback"
  1390.     }
  1391. }
  1392. type STS {
  1393.     isa ObjectMgr
  1394.     prop name :: "STS"
  1395.     prop Label :: "STS - Statistics Object Manager"
  1396.     prop IsContainedIn :: INS
  1397.     prop GlobalIcon :: 125
  1398.     prop InstanceIcon :: 126
  1399.     prop InstanceHelpTopic :: (212)
  1400.     prop GlobalHelpTopic :: (112)
  1401.     prop AllocType :: ("1, _globalAllocDesc, _memSeg, _placement")
  1402.     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")
  1403.     prop localInit :: (if (PRD.CALLBACKOBJ != nil) {self.error("STS initialization failure")} , PRD.CALLBACKOBJ = STS)
  1404.     prop _placement :: (0x7fffffff / 2)
  1405.     prop _linkString :: if self.gNumOf > 0 {"*(.%1L)"} else {"/* no %1U objects */"}
  1406.     prop _memSeg :: STS.OBJMEMSEG
  1407.     prop _objSize :: if GBL.DSPTYPE == 55 {(2 * (4 * 4))} else {(4 * 4)}
  1408.     prop dataSize :: ((4 * 4) * (STS.gNumOf + STS.gNumEmbed))
  1409.     prop maxObjs :: (32767)
  1410.     prop InstancePropertyPage :: ("{B7240DEE-AA51-11cf-9BFE-0000C0AC14C7}")
  1411.     prop GlobalPropertyPage :: ("{B7240DEF-AA51-11cf-9BFE-0000C0AC14C7}")
  1412.     prop STSGetMaxFmt :: (self.format)
  1413.     prop STSGetSumFmt :: (self.format)
  1414.     prop STSGetAvgFmt :: ("%.2f")
  1415.     prop STSFilterSum :: ((self.iA * $1 + self.iB * $2) / (1.0 * self.iC))
  1416.     prop STSFilterMax :: ((self.iA * $1 + self.iB) / (1.0 * self.iC))
  1417.     prop HighTimeBased :: (if self.unittype == "High resolution time based" {1} else {0})
  1418.     prop LowTimeBased :: (if self.unittype == "Low resolution time based" {1} else {0})
  1419.     prop cGen :: 1
  1420.     prop cHeaderName :: if self.gNumOf > 0 {"sts.h"} else {""}
  1421.     prop cGenHInst :: (if (GBL.DSPTYPE == 62) {"extern far STS_Obj %0r;n"} else {"extern STS_Obj %0r;n"})
  1422.     prop modifiable :: ((if (self.iDelUser == "USER" || self.iDelUser == "HWI") {1} else {0}))
  1423.     prop call :: (scan ($a; STS) {if ($a.unittype == "High resolution time based") {$a.iA = CLK.INSTRPERCLK} })
  1424.     global gUser :: "USER" { 
  1425.         prop Visible :: 0
  1426.         prop Writable :: 0
  1427.         prop NoGen :: 1
  1428.     }
  1429.     global gSetOf :: 0 { 
  1430.         prop Visible :: 0
  1431.         prop Writable :: 0
  1432.         prop NoGen :: 1
  1433.     }
  1434.     global gNumOf :: 1 { 
  1435.         prop Visible :: 0
  1436.         prop Writable :: 0
  1437.         prop NoGen :: 1
  1438.     }
  1439.     global gDirty :: 0 { 
  1440.         prop Visible :: 0
  1441.         prop Writable :: 0
  1442.         prop NoGen :: 1
  1443.     }
  1444.     global gInitFlag :: 1 { 
  1445.         prop Visible :: 0
  1446.         prop Writable :: 0
  1447.         prop NoGen :: 1
  1448.     }
  1449.     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) { 
  1450.         prop Visible :: 0
  1451.         prop Writable :: 0
  1452.         prop NoGen :: 1
  1453.     }
  1454.     global OBJMEMSEG :: ISRAM { 
  1455.         prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
  1456.         prop MemberType :: MEM
  1457.         prop MemberTest :: MEM.dataMember($1)
  1458.         prop Label :: "Object Memory"
  1459.         prop Visible :: 1
  1460.         prop Writable :: 1
  1461.         prop NoGen :: 1
  1462.     }
  1463.     global gNumEmbed :: -1 { 
  1464.         prop Visible :: 0
  1465.         prop Writable :: 0
  1466.         prop NoGen :: 1
  1467.     }
  1468.     inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} { 
  1469.         prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
  1470.         prop Label :: "comment"
  1471.         prop JSName :: "comment"
  1472.         prop Visible :: 1
  1473.         prop Writable :: if self.iDelUser == "USER" {1} else {0}
  1474.         prop NoGen :: 1
  1475.     }
  1476.     inst iIsUsed :: 0 { 
  1477.         prop Visible :: 0
  1478.         prop Writable :: 0
  1479.         prop NoGen :: 1
  1480.     }
  1481.     inst iId :: 0 { 
  1482.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  1483.         prop Style :: 0x01
  1484.         prop Visible :: 0
  1485.         prop Writable :: 1
  1486.         prop NoGen :: 1
  1487.     }
  1488.     inst iDelUser :: "USER" { 
  1489.         prop Visible :: 0
  1490.         prop Writable :: 0
  1491.         prop NoGen :: 1
  1492.     }
  1493.     inst iDelMsg :: "ok" { 
  1494.         prop Visible :: 0
  1495.         prop Writable :: 0
  1496.         prop NoGen :: 1
  1497.     }
  1498.     inst prev :: 0 { 
  1499.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  1500.         prop Visible :: 1
  1501.         prop Writable :: self.modifiable()
  1502.         prop JSName :: "previousVal"
  1503.         prop NoGen :: GBL.DSPTYPE != 40 && GBL.DSPTYPE != 62
  1504.         prop Set :: (self.prev = $1, self.prevlow = $1 & 0xffff, self.prevhigh = ($1 >> 16) & 0xffff, "ok")
  1505.     }
  1506.     inst format :: "%g" { 
  1507.         prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
  1508.         prop Visible :: 0
  1509.         prop Writable :: 1
  1510.         prop Label :: "format"
  1511.         prop NoGen :: 1
  1512.     }
  1513.     inst unittype :: "Not time based" { 
  1514.         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
  1515.         prop Enum :: "Not time based,High resolution time based,Low resolution time based"
  1516.         prop Label :: "unit type"
  1517.         prop JSName :: "unitType"
  1518.         prop Visible :: 1
  1519.         prop Writable :: self.modifiable()
  1520.         prop NoGen :: 1
  1521.         prop Set :: (self.unittype = $1, if ($1 == "High resolution time based") {self.iA = CLK.INSTRPERCLK, self.iB = 0, self.iC = 1, self.operation = "A * x"} else {if ($1 == "Low resolution time based") {self.iA = 1, self.iB = 0, self.iC = 1, self.operation = "A * x"} else {self.iA = 1, self.iB = 0, self.iC = 1, self.operation = "Nothing"}}, "ok")
  1522.     }
  1523.     inst operation :: "Nothing" { 
  1524.         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
  1525.         prop Enum :: "Nothing,A * x,A * x + B,(A * x + B) / C"
  1526.         prop Label :: "host operation"
  1527.         prop JSName :: "operation"
  1528.         prop Visible :: 1
  1529.         prop Writable :: ((self.unittype != "Low resolution time based") && self.modifiable())
  1530.         prop NoGen :: 1
  1531.         prop Set :: (self.operation = $1, if ($1 == "Nothing" && self.unittype != "High resolution time based") {self.iA = 1, self.iB = 0, self.iC = 1} else {if ($1 == "A * x") {self.iB = 0, self.iC = 1} else {if ($1 == "A * x + B") {self.iC = 1} }}, "ok")
  1532.     }
  1533.     inst iA :: 1 { 
  1534.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  1535.         prop Visible :: 1
  1536.         prop Writable :: (self.modifiable() && !(self.unittype != "Not time based" || self.operation == "Nothing"))
  1537.         prop Label :: "A"
  1538.         prop JSName :: "numA"
  1539.         prop NoGen :: 1
  1540.     }
  1541.     inst iB :: 0 { 
  1542.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  1543.         prop Visible :: 1
  1544.         prop Writable :: (self.modifiable() && !(self.unittype == "Low resolution time based" || self.operation == "Nothing" || self.operation == "A * x"))
  1545.         prop Label :: "B"
  1546.         prop JSName :: "numB"
  1547.         prop NoGen :: 1
  1548.     }
  1549.     inst iC :: 1 { 
  1550.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  1551.         prop Visible :: 1
  1552.         prop Writable :: (self.modifiable() && (self.unittype == "Not time based" && self.operation == "(A * x + B) / C"))
  1553.         prop Label :: "C"
  1554.         prop JSName :: "numC"
  1555.         prop NoGen :: 1
  1556.     }
  1557.     inst prevhigh :: 0 { 
  1558.         prop Visible :: 0
  1559.         prop Writable :: 0
  1560.         prop NoGen :: GBL.DSPTYPE == 40 || GBL.DSPTYPE == 62
  1561.     }
  1562.     inst prevlow :: 0 { 
  1563.         prop Visible :: 0
  1564.         prop Writable :: 0
  1565.         prop NoGen :: 0
  1566.     }
  1567. }
  1568. type SYS {
  1569.     isa Module
  1570.     prop name :: "SYS"
  1571.     prop Label :: "SYS - System Settings"
  1572.     prop IsContainedIn :: SYSTEM
  1573.     prop GlobalIcon :: 141
  1574.     prop InstanceIcon :: 142
  1575.     prop IsConfMod :: 1
  1576.     prop GlobalHelpTopic :: (313)
  1577.     prop InstanceHelpTopic :: (413)
  1578.     prop InstancePropertyPage :: ("{473C4A62-B1A8-11d0-9885-0020AFEE33C6}")
  1579.     prop GlobalPropertyPage :: ("{473C4A63-B1A8-11d0-9885-0020AFEE33C6}")
  1580.     prop AllocType :: (if self.PUTCFXN == @_UTL_doPutc {"2, _globalAllocDesc, _memSeg, _midPlace, 
  1581.       _traceString, _traceSeg, _midPlace"} else {"1, _globalAllocDesc, _memSeg, _midPlace"})
  1582.     prop _globalAllocDesc :: ("%8t .sys:     {}")
  1583.     prop _traceString :: ("%8t .trace: fill = 0x0 {%12tn_SYS_PUTCBEG = .;n. += 0x%1x;n_SYS_PUTCEND = . - 1;%8tn }, _traceSize")
  1584.     prop _midPlace :: (0x7fffffff / 2)
  1585.     prop _memSeg :: MEM.CFGOBJSEG
  1586.     prop _traceSeg :: SYS.TRACESEG
  1587.     prop _traceSize :: SYS.TRACESIZE
  1588.     global gUser :: "USER" { 
  1589.         prop Visible :: 0
  1590.         prop Writable :: 0
  1591.         prop NoGen :: 1
  1592.     }
  1593.     global gSetOf :: 0 { 
  1594.         prop Visible :: 0
  1595.         prop Writable :: 0
  1596.         prop NoGen :: 1
  1597.     }
  1598.     global gNumOf :: 0 { 
  1599.         prop Visible :: 0
  1600.         prop Writable :: 0
  1601.         prop NoGen :: 1
  1602.     }
  1603.     global gDirty :: 0 { 
  1604.         prop Visible :: 0
  1605.         prop Writable :: 0
  1606.         prop NoGen :: 1
  1607.     }
  1608.     global gInitFlag :: 1 { 
  1609.         prop Visible :: 0
  1610.         prop Writable :: 0
  1611.         prop NoGen :: 1
  1612.     }
  1613.     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) { 
  1614.         prop Visible :: 0
  1615.         prop Writable :: 0
  1616.         prop NoGen :: 1
  1617.     }
  1618.     global CALLBACKOBJ :: nil { 
  1619.         prop Visible :: 0
  1620.         prop Writable :: 0
  1621.         prop NoGen :: 1
  1622.     }
  1623.     global TRACESIZE :: 512 { 
  1624.         prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
  1625.         prop Format :: "%d"
  1626.         prop Style :: 0x01 | 0x02
  1627.         prop Label :: "Trace Buffer Size"
  1628.         prop JSName :: "TRACESIZE"
  1629.         prop Visible :: 1
  1630.         prop Writable :: 1
  1631.         prop NoGen :: 1
  1632.     }
  1633.     global TRACESEG :: ISRAM { 
  1634.         prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
  1635.         prop MemberType :: MEM
  1636.         prop MemberTest :: MEM.dataMember($1)
  1637.         prop Label :: "Trace Buffer Memory"
  1638.         prop JSName :: "TRACESEG"
  1639.         prop Visible :: 1
  1640.         prop Writable :: 1
  1641.         prop NoGen :: 1
  1642.     }
  1643.     global ABORTFXN :: @_UTL_doAbort { 
  1644.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  1645.         prop Label :: "Abort Function"
  1646.         prop JSName :: "ABORTFXN"
  1647.         prop Visible :: 1
  1648.         prop Writable :: 1
  1649.         prop NoGen :: 0
  1650.     }
  1651.     global ERRORFXN :: @_UTL_doError { 
  1652.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  1653.         prop Label :: "Error Function"
  1654.         prop JSName :: "ERRORFXN"
  1655.         prop Visible :: 1
  1656.         prop Writable :: 1
  1657.         prop NoGen :: 0
  1658.     }
  1659.     global EXITFXN :: @_UTL_halt { 
  1660.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  1661.         prop Label :: "Exit Function"
  1662.         prop JSName :: "EXITFXN"
  1663.         prop Visible :: 1
  1664.         prop Writable :: 1
  1665.         prop NoGen :: 0
  1666.     }
  1667.     global PUTCFXN :: @_UTL_doPutc { 
  1668.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  1669.         prop Label :: "Putc Function"
  1670.         prop JSName :: "PUTCFXN"
  1671.         prop Visible :: 1
  1672.         prop Writable :: 1
  1673.         prop NoGen :: 0
  1674.     }
  1675. }
  1676. type GIO {
  1677.     isa Module
  1678.     prop Visible :: 1
  1679.     prop name :: "GIO"
  1680.     prop Label :: "GIO - General Input/Output Manager"
  1681.     prop IsConfMod :: self.USEGIO
  1682.     prop IsContainedIn :: IOF
  1683.     prop GlobalIcon :: 141
  1684.     prop InstanceIcon :: 142
  1685.     prop GlobalHelpTopic :: (320)
  1686.     prop InstanceHelpTopic :: (420)
  1687.     prop InstancePropertyPage :: ("{473C4A62-B1A8-11d0-9885-0020AFEE33C6}")
  1688.     prop GlobalPropertyPage :: ("{473C4A63-B1A8-11d0-9885-0020AFEE33C6}")
  1689.     prop DependsOn :: "DEV,UDEV"
  1690.     prop AllocType :: ("1, _globalAllocDesc, _memSeg, _midPlace")
  1691.     prop _globalAllocDesc :: ("%8t .gio:     {}")
  1692.     prop _midPlace :: (0x7fffffff / 2)
  1693.     prop _memSeg :: MEM.CFGOBJSEG
  1694.     global gUser :: "USER" { 
  1695.         prop Visible :: 0
  1696.         prop Writable :: 0
  1697.         prop NoGen :: 1
  1698.     }
  1699.     global gSetOf :: 0 { 
  1700.         prop Visible :: 0
  1701.         prop Writable :: 0
  1702.         prop NoGen :: 1
  1703.     }
  1704.     global gNumOf :: 0 { 
  1705.         prop Visible :: 0
  1706.         prop Writable :: 0
  1707.         prop NoGen :: 1
  1708.     }
  1709.     global gDirty :: 0 { 
  1710.         prop Visible :: 0
  1711.         prop Writable :: 0
  1712.         prop NoGen :: 1
  1713.     }
  1714.     global gInitFlag :: 1 { 
  1715.         prop Visible :: 0
  1716.         prop Writable :: 0
  1717.         prop NoGen :: 1
  1718.     }
  1719.     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) { 
  1720.         prop Visible :: 0
  1721.         prop Writable :: 0
  1722.         prop NoGen :: 1
  1723.     }
  1724.     global CALLBACKOBJ :: nil { 
  1725.         prop Visible :: 0
  1726.         prop Writable :: 0
  1727.         prop NoGen :: 1
  1728.     }
  1729.     global USEGIO :: 0 { 
  1730.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  1731.         prop Label :: "Enable General Input/Output Manager"
  1732.         prop JSName :: "ENABLEGIO"
  1733.         prop Visible :: 1
  1734.         prop Writable :: 1
  1735.         prop NoGen :: 1
  1736.     }
  1737.     global CREATEFXN :: = if self.USEGIO == 1 {@_SEM_create} else {@_FXN_F_nop} { 
  1738.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  1739.         prop Label :: "Create Function"
  1740.         prop JSName :: "CREATEFXN"
  1741.         prop Visible :: 1
  1742.         prop Writable :: self.USEGIO
  1743.         prop NoGen :: 0
  1744.     }
  1745.     global DELETEFXN :: = if self.USEGIO == 1 {@_SEM_delete} else {@_FXN_F_nop} { 
  1746.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  1747.         prop Label :: "Delete Function"
  1748.         prop JSName :: "DELETEFXN"
  1749.         prop Visible :: 1
  1750.         prop Writable :: self.USEGIO
  1751.         prop NoGen :: 0
  1752.     }
  1753.     global PENDFXN :: = if self.USEGIO == 1 {@_SEM_pend} else {@_FXN_F_nop} { 
  1754.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  1755.         prop Label :: "Pend Function"
  1756.         prop JSName :: "PENDFXN"
  1757.         prop Visible :: 1
  1758.         prop Writable :: self.USEGIO
  1759.         prop NoGen :: 0
  1760.     }
  1761.     global POSTFXN :: = if self.USEGIO == 1 {@_SEM_post} else {@_FXN_F_nop} { 
  1762.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  1763.         prop Label :: "Post Function"
  1764.         prop JSName :: "POSTFXN"
  1765.         prop Visible :: 1
  1766.         prop Writable :: self.USEGIO
  1767.         prop NoGen :: 0
  1768.     }
  1769. }
  1770. type SIODRIVER {
  1771.     isa ModuleFolder
  1772.     prop Label :: "Device Drivers"
  1773.     prop IsContainedIn :: IOF
  1774.     prop GlobalIcon :: 127
  1775.     prop GlobalHelpTopic :: (BIOSHELP_DEV_FOLDER)
  1776.     prop GlobalPropertyPage :: ("{A2BCEC70-5365-11d4-947C-0050048381B7}")
  1777.     global gUser :: "USER" { 
  1778.         prop Visible :: 0
  1779.         prop Writable :: 0
  1780.         prop NoGen :: 1
  1781.     }
  1782.     global gSetOf :: 0 { 
  1783.         prop Visible :: 0
  1784.         prop Writable :: 0
  1785.         prop NoGen :: 1
  1786.     }
  1787.     global gNumOf :: 0 { 
  1788.         prop Visible :: 0
  1789.         prop Writable :: 0
  1790.         prop NoGen :: 1
  1791.     }
  1792.     global gDirty :: 0 { 
  1793.         prop Visible :: 0
  1794.         prop Writable :: 0
  1795.         prop NoGen :: 1
  1796.     }
  1797.     global gInitFlag :: 1 { 
  1798.         prop Visible :: 0
  1799.         prop Writable :: 0
  1800.         prop NoGen :: 1
  1801.     }
  1802.     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) { 
  1803.         prop Visible :: 0
  1804.         prop Writable :: 0
  1805.         prop NoGen :: 1
  1806.     }
  1807. }
  1808. type DEV {
  1809.     isa ObjectMgr
  1810.     prop name :: "DEV"
  1811.     prop Visible :: 0
  1812.     prop AllocType :: (if (self.gNumOf > 0) {"1, _bssAllocDesc, _memSeg, _placement"} , if (DGN.gNumOf || DHL.gNumOf || DPI.gNumOf || DIO.gNumOf || UDEV.gNumOf) {"1, _devtableDesc, _memSeg, _placement"} )
  1813.     prop _bssAllocDesc :: ("%8t .dev: {}")
  1814.     prop _devtableDesc :: ("%8t .devtable: {}")
  1815.     prop _memSeg :: MEM.CFGOBJSEG
  1816.     prop _placement :: (0x7fffffff / 2)
  1817.     prop DependsOn :: "HWI"
  1818.     global gUser :: "USER" { 
  1819.         prop Visible :: 0
  1820.         prop Writable :: 0
  1821.         prop NoGen :: 1
  1822.     }
  1823.     global gSetOf :: 0 { 
  1824.         prop Visible :: 0
  1825.         prop Writable :: 0
  1826.         prop NoGen :: 1
  1827.     }
  1828.     global gNumOf :: 0 { 
  1829.         prop Visible :: 0
  1830.         prop Writable :: 0
  1831.         prop NoGen :: 1
  1832.     }
  1833.     global gDirty :: 0 { 
  1834.         prop Visible :: 0
  1835.         prop Writable :: 0
  1836.         prop NoGen :: 1
  1837.     }
  1838.     global gInitFlag :: 1 { 
  1839.         prop Visible :: 0
  1840.         prop Writable :: 0
  1841.         prop NoGen :: 1
  1842.     }
  1843.     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) { 
  1844.         prop Visible :: 0
  1845.         prop Writable :: 0
  1846.         prop NoGen :: 1
  1847.     }
  1848.     inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} { 
  1849.         prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
  1850.         prop Label :: "comment"
  1851.         prop JSName :: "comment"
  1852.         prop Visible :: 1
  1853.         prop Writable :: if self.iDelUser == "USER" {1} else {0}
  1854.         prop NoGen :: 1
  1855.     }
  1856.     inst iIsUsed :: 0 { 
  1857.         prop Visible :: 0
  1858.         prop Writable :: 0
  1859.         prop NoGen :: 1
  1860.     }
  1861.     inst iId :: 0 { 
  1862.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  1863.         prop Style :: 0x01
  1864.         prop Visible :: 0
  1865.         prop Writable :: 1
  1866.         prop NoGen :: 1
  1867.     }
  1868.     inst iDelUser :: "USER" { 
  1869.         prop Visible :: 0
  1870.         prop Writable :: 0
  1871.         prop NoGen :: 1
  1872.     }
  1873.     inst iDelMsg :: "ok" { 
  1874.         prop Visible :: 0
  1875.         prop Writable :: 0
  1876.         prop NoGen :: 1
  1877.     }
  1878. }
  1879. type UDEV {
  1880.     isa ObjectMgr
  1881.     prop name :: "UDEV"
  1882.     prop Label :: "User-Defined Devices"
  1883.     prop IsContainedIn :: SIODRIVER
  1884.     prop GlobalIcon :: 127
  1885.     prop InstanceIcon :: 128
  1886.     prop GlobalHelpTopic :: (315)
  1887.     prop InstanceHelpTopic :: (415)
  1888.     prop InstancePropertyPage :: ("{7AE86AA0-35C0-11d1-988B-0020AFEE33C6}")
  1889.     prop GlobalPropertyPage :: ("{7AE86AA1-35C0-11d1-988B-0020AFEE33C6}")
  1890.     prop maxObjs :: (32767)
  1891.     prop isDriver :: (1)
  1892.     prop AllocType :: (if (self.gNumOf > 0) {"1, _globalAllocDesc, _memSeg, _placement"} )
  1893.     prop _globalAllocDesc :: ("%8t .udev: {}")
  1894.     prop _placement :: (0x7fffffff / 2)
  1895.     prop _memSeg :: MEM.CFGOBJSEG
  1896.     prop _driverType :: (if self.fxnTableType == "DEV_Fxns" {"DEV_SIOTYPE"} else {"DEV_IOMTYPE"})
  1897.     global gUser :: "USER" { 
  1898.         prop Visible :: 0
  1899.         prop Writable :: 0
  1900.         prop NoGen :: 1
  1901.     }
  1902.     global gSetOf :: 0 { 
  1903.         prop Visible :: 0
  1904.         prop Writable :: 0
  1905.         prop NoGen :: 1
  1906.     }
  1907.     global gNumOf :: 0 { 
  1908.         prop Visible :: 0
  1909.         prop Writable :: 0
  1910.         prop NoGen :: 1
  1911.     }
  1912.     global gDirty :: 0 { 
  1913.         prop Visible :: 0
  1914.         prop Writable :: 0
  1915.         prop NoGen :: 1
  1916.     }
  1917.     global gInitFlag :: 1 { 
  1918.         prop Visible :: 0
  1919.         prop Writable :: 0
  1920.         prop NoGen :: 1
  1921.     }
  1922.     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) { 
  1923.         prop Visible :: 0
  1924.         prop Writable :: 0
  1925.         prop NoGen :: 1
  1926.     }
  1927.     inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} { 
  1928.         prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
  1929.         prop Label :: "comment"
  1930.         prop JSName :: "comment"
  1931.         prop Visible :: 1
  1932.         prop Writable :: if self.iDelUser == "USER" {1} else {0}
  1933.         prop NoGen :: 1
  1934.     }
  1935.     inst iIsUsed :: 0 { 
  1936.         prop Visible :: 0
  1937.         prop Writable :: 0
  1938.         prop NoGen :: 1
  1939.     }
  1940.     inst iId :: 0 { 
  1941.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  1942.         prop Style :: 0x01
  1943.         prop Visible :: 0
  1944.         prop Writable :: 1
  1945.         prop NoGen :: 1
  1946.     }
  1947.     inst iDelUser :: "USER" { 
  1948.         prop Visible :: 0
  1949.         prop Writable :: 0
  1950.         prop NoGen :: 1
  1951.     }
  1952.     inst iDelMsg :: "ok" { 
  1953.         prop Visible :: 0
  1954.         prop Writable :: 0
  1955.         prop NoGen :: 1
  1956.     }
  1957.     inst iInit :: 0 { 
  1958.         prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
  1959.         prop Label :: "init function"
  1960.         prop JSName :: "initFxn"
  1961.         prop Visible :: 1
  1962.         prop Writable :: 1
  1963.         prop NoGen :: 1
  1964.         prop Set :: (self.iInit = $1, self.initFxn = self.iInit, "ok")
  1965.     }
  1966.     inst iFxns :: 0 { 
  1967.         prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
  1968.         prop Label :: "function table ptr"
  1969.         prop JSName :: "fxnTable"
  1970.         prop Visible :: 1
  1971.         prop Writable :: 1
  1972.     }
  1973.     inst fxnTableType :: "DEV_Fxns" { 
  1974.         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
  1975.         prop Enum :: "DEV_Fxns,IOM_Fxns"
  1976.         prop Label :: "function table type"
  1977.         prop JSName :: "fxnTableType"
  1978.         prop Visible :: 1
  1979.         prop Writable :: 1
  1980.         prop NoGen :: 1
  1981.     }
  1982.     inst driverType :: = self._driverType { 
  1983.         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
  1984.         prop Enum :: "DEV_SIOTYPE,DEV_IOMTYPE"
  1985.         prop Visible :: 0
  1986.     }
  1987.     inst iDevId :: 0 { 
  1988.         prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
  1989.         prop Label :: "device id"
  1990.         prop JSName :: "deviceId"
  1991.         prop Visible :: 1
  1992.         prop Writable :: 1
  1993.         prop NoGen :: 1
  1994.         prop Set :: (self.iDevId = $1, self.deviceId = self.iDevId, "ok")
  1995.     }
  1996.     inst iParams :: 0 { 
  1997.         prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
  1998.         prop Label :: "device params ptr"
  1999.         prop JSName :: "params"
  2000.         prop Visible :: 1
  2001.         prop Writable :: 1
  2002.     }
  2003.     inst deviceId :: 0 { 
  2004.         prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
  2005.         prop JSName :: ""
  2006.         prop Visible :: 0
  2007.     }
  2008.     inst initFxn :: 0 { 
  2009.         prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
  2010.         prop JSName :: ""
  2011.         prop Visible :: 0
  2012.     }
  2013.     inst iIsStacking :: 0 { 
  2014.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  2015.         prop Label :: "Stacking Device"
  2016.         prop JSName :: "stackingDevice"
  2017.         prop Visible :: 0
  2018.         prop Writable :: 1
  2019.         prop NoGen :: 1
  2020.     }
  2021.     inst deviceGlobalDataPtr :: 0 { 
  2022.         prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
  2023.         prop Label :: "device global data ptr"
  2024.         prop JSName :: "deviceGlobalDataPtr"
  2025.         prop Visible :: 1
  2026.         prop Writable :: self.fxnTableType == "IOM_Fxns"
  2027.     }
  2028.     inst iIsTerminal :: = if self.fxnTableType == "DEV_Fxns" {1} else {0} { 
  2029.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  2030.         prop NoGen :: 1
  2031.     }
  2032.     inst iIsVirtual :: 0 { 
  2033.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  2034.         prop NoGen :: 1
  2035.     }
  2036. }
  2037. type DGN {
  2038.     isa ObjectMgr
  2039.     prop name :: "DGN"
  2040.     prop Label :: "DGN - Software Generator Driver"
  2041.     prop IsContainedIn :: SIODRIVER
  2042.     prop GlobalIcon :: 127
  2043.     prop InstanceIcon :: 128
  2044.     prop GlobalHelpTopic :: (302)
  2045.     prop InstanceHelpTopic :: (402)
  2046.     prop InstancePropertyPage :: ("{054FE166-B014-11d0-9885-0020AFEE33C6}")
  2047.     prop GlobalPropertyPage :: ("{054FE167-B014-11d0-9885-0020AFEE33C6}")
  2048.     prop DependsOn :: "DEV"
  2049.     prop maxObjs :: (32767)
  2050.     prop isDriver :: (1)
  2051.     prop AllocType :: (if (self.gNumOf > 0) {"1, _globalAllocDesc, _memSeg, _placement"} )
  2052.     prop _globalAllocDesc :: ("%8t .dgn: {}")
  2053.     prop _placement :: (0x7fffffff / 2)
  2054.     prop _memSeg :: MEM.CFGOBJSEG
  2055.     global gUser :: "USER" { 
  2056.         prop Visible :: 0
  2057.         prop Writable :: 0
  2058.         prop NoGen :: 1
  2059.     }
  2060.     global gSetOf :: 0 { 
  2061.         prop Visible :: 0
  2062.         prop Writable :: 0
  2063.         prop NoGen :: 1
  2064.     }
  2065.     global gNumOf :: 0 { 
  2066.         prop Visible :: 0
  2067.         prop Writable :: 0
  2068.         prop NoGen :: 1
  2069.     }
  2070.     global gDirty :: 0 { 
  2071.         prop Visible :: 0
  2072.         prop Writable :: 0
  2073.         prop NoGen :: 1
  2074.     }
  2075.     global gInitFlag :: 1 { 
  2076.         prop Visible :: 0
  2077.         prop Writable :: 0
  2078.         prop NoGen :: 1
  2079.     }
  2080.     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) { 
  2081.         prop Visible :: 0
  2082.         prop Writable :: 0
  2083.         prop NoGen :: 1
  2084.     }
  2085.     inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} { 
  2086.         prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
  2087.         prop Label :: "comment"
  2088.         prop JSName :: "comment"
  2089.         prop Visible :: 1
  2090.         prop Writable :: if self.iDelUser == "USER" {1} else {0}
  2091.         prop NoGen :: 1
  2092.     }
  2093.     inst iIsUsed :: 0 { 
  2094.         prop Visible :: 0
  2095.         prop Writable :: 0
  2096.         prop NoGen :: 1
  2097.     }
  2098.     inst iId :: 0 { 
  2099.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  2100.         prop Style :: 0x01
  2101.         prop Visible :: 0
  2102.         prop Writable :: 1
  2103.         prop NoGen :: 1
  2104.     }
  2105.     inst iDelUser :: "USER" { 
  2106.         prop Visible :: 0
  2107.         prop Writable :: 0
  2108.         prop NoGen :: 1
  2109.     }
  2110.     inst iDelMsg :: "ok" { 
  2111.         prop Visible :: 0
  2112.         prop Writable :: 0
  2113.         prop NoGen :: 1
  2114.     }
  2115.     inst iDevice :: "user" { 
  2116.         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"
  2117.         prop Enum :: if GBL.DSPARITHMETIC == "FLOAT" {"user,sine,random,constant,printFloat,printHex,printInt"} else {"user,sine,random,constant,printHex,printInt"}
  2118.         prop Label :: "Device category"
  2119.         prop JSName :: "device"
  2120.         prop Visible :: 1
  2121.         prop Writable :: 1
  2122.         prop NoGen :: 1
  2123.         prop Set :: ($a = $1, if ($a != self.iDevice) {self.iDevice = $a, self.iUserFxn = @_FXN_F_nop} , if ($a == "user") {self.iUserFxn = self.iSaveUserFxn} , if ($a == "printFloat") {self.iUserFxn = @_DGN_printFloat} , if ($a == "printHex") {self.iUserFxn = @_DGN_printHex} , if ($a == "printInt") {self.iUserFxn = @_DGN_printInt} , "ok")
  2124.     }
  2125.     inst iUseDefaults :: 0 { 
  2126.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  2127.         prop Label :: "Use default parameters"
  2128.         prop Visible :: 1
  2129.         prop JSName :: "useDefaultParam"
  2130.         prop Writable :: self.iDevice == "sine" || self.iDevice == "constant" || self.iDevice == "random" || self.iDevice == "user"
  2131.     }
  2132.     inst iDevId :: = if self.iDevice == "constant" {@DGN_CONST} else {if self.iDevice == "random" {@DGN_RAND} else {if self.iDevice == "sine" {@DGN_SINE} else {@DGN_USER}}} { 
  2133.         prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
  2134.         prop Label :: "Device ID"
  2135.         prop JSName :: "deviceId"
  2136.         prop Visible :: 1
  2137.         prop Writable :: 0
  2138.     }
  2139.     inst iIsTerminal :: 1 { 
  2140.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  2141.         prop NoGen :: 1
  2142.     }
  2143.     inst iIsVirtual :: 0 { 
  2144.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  2145.         prop NoGen :: 1
  2146.     }
  2147.     inst iConstant :: if GBL.DSPARITHMETIC == "FIXED" {1} else {1.0} { 
  2148.         prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
  2149.         prop Style :: if GBL.DSPARITHMETIC == "FIXED" {0} else {0x04}
  2150.         prop Format :: if GBL.DSPARITHMETIC == "FIXED" {"%d"} else {"%f"}
  2151.         prop Label :: "Constant value"
  2152.         prop JSName :: "constant"
  2153.         prop Visible :: 1
  2154.         prop Writable :: self.iUseDefaults == 0 && (self.iDevice == "constant" || self.iDevice == "user")
  2155.     }
  2156.     inst iRandSeed :: 1 { 
  2157.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  2158.         prop Label :: "Seed value"
  2159.         prop JSName :: "seedValue"
  2160.         prop Visible :: 1
  2161.         prop Writable :: self.iUseDefaults == 0 && (self.iDevice == "random" || self.iDevice == "user")
  2162.     }
  2163.     inst iRandLower :: if GBL.DSPARITHMETIC == "FIXED" {-32767} else {0.0} { 
  2164.         prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
  2165.         prop Style :: if GBL.DSPARITHMETIC == "FIXED" {0} else {0x04}
  2166.         prop Format :: if GBL.DSPARITHMETIC == "FIXED" {"%d"} else {"%f"}
  2167.         prop Label :: "Lower limit"
  2168.         prop JSName :: "lowerLimit"
  2169.         prop Visible :: 1
  2170.         prop Writable :: self.iUseDefaults == 0 && (self.iDevice == "random" || self.iDevice == "user")
  2171.     }
  2172.     inst iRandUpper :: if GBL.DSPARITHMETIC == "FIXED" {32767} else {1.0} { 
  2173.         prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
  2174.         prop Style :: if GBL.DSPARITHMETIC == "FIXED" {0} else {0x04}
  2175.         prop Format :: if GBL.DSPARITHMETIC == "FIXED" {"%d"} else {"%f"}
  2176.         prop Label :: "Upper limit"
  2177.         prop JSName :: "upperLimit"
  2178.         prop Visible :: 1
  2179.         prop Writable :: self.iUseDefaults == 0 && (self.iDevice == "random" || self.iDevice == "user")
  2180.     }
  2181.     inst iSineGain :: if GBL.DSPARITHMETIC == "FIXED" {32767} else {1.0} { 
  2182.         prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
  2183.         prop Style :: if GBL.DSPARITHMETIC == "FIXED" {0} else {0x04}
  2184.         prop Format :: if GBL.DSPARITHMETIC == "FIXED" {"%d"} else {"%f"}
  2185.         prop Label :: "Gain"
  2186.         prop JSName :: "gain"
  2187.         prop Visible :: 1
  2188.         prop Writable :: self.iUseDefaults == 0 && (self.iDevice == "sine" || self.iDevice == "user")
  2189.     }
  2190.     inst iSineFreq :: if GBL.DSPARITHMETIC == "FIXED" {1} else {1000.0} { 
  2191.         prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
  2192.         prop Style :: if GBL.DSPARITHMETIC == "FIXED" {0} else {0x04}
  2193.         prop Format :: if GBL.DSPARITHMETIC == "FIXED" {"%d"} else {"%f"}
  2194.         prop Label :: "Frequency (Hz)"
  2195.         prop JSName :: "frequency"
  2196.         prop Visible :: 1
  2197.         prop Writable :: self.iUseDefaults == 0 && (self.iDevice == "sine" || self.iDevice == "user")
  2198.     }
  2199.     inst iSinePhase :: if GBL.DSPARITHMETIC == "FIXED" {0} else {0.0} { 
  2200.         prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"
  2201.         prop Style :: if GBL.DSPARITHMETIC == "FIXED" {0} else {0x04}
  2202.         prop Format :: if GBL.DSPARITHMETIC == "FIXED" {"%d"} else {"%f"}
  2203.         prop Label :: "Phase (radians)"
  2204.         prop JSName :: "phase"
  2205.         prop Visible :: 1
  2206.         prop Writable :: self.iUseDefaults == 0 && (self.iDevice == "sine" || self.iDevice == "user")
  2207.     }
  2208.     inst iSineRate :: if GBL.DSPARITHMETIC == "FIXED" {256} else {44000} { 
  2209.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  2210.         prop Label :: "Sample rate (samples/sec)"
  2211.         prop JSName :: "rate"
  2212.         prop Visible :: 1
  2213.         prop Writable :: self.iUseDefaults == 0 && (self.iDevice == "sine" || self.iDevice == "user")
  2214.     }
  2215.     inst iUserFxn :: if self.iDevice == "printFloat" {@_DGN_printFloat} else {if self.iDevice == "printHex" {@_DGN_printHex} else {if self.iDevice == "printInt" {@_DGN_printInt} else {@_FXN_F_nop}}} { 
  2216.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  2217.         prop Label :: "User function"
  2218.         prop JSName :: "fxn"
  2219.         prop Visible :: 1
  2220.         prop Writable :: self.iDevice == "user"
  2221.         prop Set :: (self.iUserFxn = $1, self.iSaveUserFxn = self.iUserFxn, "ok")
  2222.     }
  2223.     inst iSaveUserFxn :: @_FXN_F_nop { 
  2224.         prop Visible :: 0
  2225.         prop Writable :: 0
  2226.         prop NoGen :: 1
  2227.     }
  2228.     inst iUserArg :: = 0 { 
  2229.         prop Type :: "{7C434D01-1629-11d0-9BFE-0000C0AC14C7}"
  2230.         prop Label :: "User function argument"
  2231.         prop JSName :: "arg"
  2232.         prop Visible :: 1
  2233.         prop Writable :: self.iDevice == "user"
  2234.     }
  2235.     inst iFxns :: @_DGN_FXNS { 
  2236.         prop NoGen :: 1
  2237.     }
  2238. }
  2239. type DHL {
  2240.     isa ObjectMgr
  2241.     prop name :: "DHL"
  2242.     prop Label :: "DHL - Host Link Driver"
  2243.     prop IsContainedIn :: SIODRIVER
  2244.     prop GlobalHelpTopic :: (303)
  2245.     prop InstanceHelpTopic :: (403)
  2246.     prop InstancePropertyPage :: ("{9C29DA20-90F9-11d1-988B-0020AFEE33C6}")
  2247.     prop GlobalPropertyPage :: ("{9C29DA21-90F9-11d1-988B-0020AFEE33C6}")
  2248.     prop GlobalIcon :: 127
  2249.     prop InstanceIcon :: 128
  2250.     prop DependsOn :: "DEV"
  2251.     prop Visible :: 1
  2252.     prop isDriver :: 1
  2253.     prop dataSize :: (7 + 11 * DHL.gNumOf * (GBL.DSPWORDSIZE / GBL.DSPCHARSIZE))
  2254.     prop localCanCreate :: (if (self.gChannelsAvailable > 0) {"ok"} else {self.warning("No HST channels are available for a new DHL device.")})
  2255.     prop localCreate :: (self.gChannelsAvailable--, self.seizeHSTChannel(self.iHSTChannel), "ok")
  2256.     prop seizeHSTChannel :: ($1.iDelUser = "DHL", $1.iDHLAvailable = 0, $1.notify = @_DHL_notify, $1.arg0 = $1.iId, "ok")
  2257.     prop localDelete :: (self.gChannelsAvailable++, self.releaseHSTChannel(self.iHSTChannel), "ok")
  2258.     prop releaseHSTChannel :: ($1.iDelUser = "USER", $1.iDHLAvailable = 1, $1.notify = @_FXN_F_nop, $1.arg0 = 0, "ok")
  2259.     prop AllocType :: (if (self.gNumOf > 0) {"1, _globalAllocDesc, _memSeg, _placement"} )
  2260.     prop _globalAllocDesc :: "%8t .dhl: {}"
  2261.     prop _memSeg :: self.OBJMEMSEG
  2262.     prop _placement :: (0x7fffffff / 2)
  2263.     global gUser :: "USER" { 
  2264.         prop Visible :: 0
  2265.         prop Writable :: 0
  2266.         prop NoGen :: 1
  2267.     }
  2268.     global gSetOf :: 0 { 
  2269.         prop Visible :: 0
  2270.         prop Writable :: 0
  2271.         prop NoGen :: 1
  2272.     }
  2273.     global gNumOf :: 0 { 
  2274.         prop Visible :: 0
  2275.         prop Writable :: 0
  2276.         prop NoGen :: 1
  2277.     }
  2278.     global gDirty :: 0 { 
  2279.         prop Visible :: 0
  2280.         prop Writable :: 0
  2281.         prop NoGen :: 1
  2282.     }
  2283.     global gInitFlag :: 1 { 
  2284.         prop Visible :: 0
  2285.         prop Writable :: 0
  2286.         prop NoGen :: 1
  2287.     }
  2288.     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) { 
  2289.         prop Visible :: 0
  2290.         prop Writable :: 0
  2291.         prop NoGen :: 1
  2292.     }
  2293.     global gChannelsAvailable :: 0
  2294.     global OBJMEMSEG :: ISRAM { 
  2295.         prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
  2296.         prop MemberType :: MEM
  2297.         prop MemberTest :: MEM.dataMember($1)
  2298.         prop Label :: "Object Memory"
  2299.         prop JSName :: "OBJMEMSEG"
  2300.         prop Visible :: 1
  2301.         prop Writable :: 1
  2302.         prop NoGen :: 1
  2303.     }
  2304.     inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} { 
  2305.         prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
  2306.         prop Label :: "comment"
  2307.         prop JSName :: "comment"
  2308.         prop Visible :: 1
  2309.         prop Writable :: if self.iDelUser == "USER" {1} else {0}
  2310.         prop NoGen :: 1
  2311.     }
  2312.     inst iIsUsed :: 0 { 
  2313.         prop Visible :: 0
  2314.         prop Writable :: 0
  2315.         prop NoGen :: 1
  2316.     }
  2317.     inst iId :: 0 { 
  2318.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  2319.         prop Style :: 0x01
  2320.         prop Visible :: 0
  2321.         prop Writable :: 1
  2322.         prop NoGen :: 1
  2323.     }
  2324.     inst iDelUser :: "USER" { 
  2325.         prop Visible :: 0
  2326.         prop Writable :: 0
  2327.         prop NoGen :: 1
  2328.     }
  2329.     inst iDelMsg :: "ok" { 
  2330.         prop Visible :: 0
  2331.         prop Writable :: 0
  2332.         prop NoGen :: 1
  2333.     }
  2334.     inst iHSTChannel :: (scan ($i; HST) {if ($i.iDHLAvailable == 1) {$a = $i} }, $a) { 
  2335.         prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"
  2336.         prop Label :: "Underlying HST Channel"
  2337.         prop JSName :: "hstChannel"
  2338.         prop MemberType :: HST
  2339.         prop MemberTest :: (if (($1.iDHLAvailable == 1) || ($1 == self.iHSTChannel)) {1} else {0})
  2340.         prop Set :: (if ($1.iDHLAvailable != 1) {self.error("This channel is already in use.")} else {self.releaseHSTChannel(self.iHSTChannel), self.seizeHSTChannel($1), self.iHSTChannel = $1, "ok"})
  2341.         prop Visible :: 1
  2342.         prop Writable :: 1
  2343.         prop NoGen :: 0
  2344.     }
  2345.     inst iMode :: = self.iHSTChannel.mode { 
  2346.         prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
  2347.         prop Label :: "Mode"
  2348.         prop JSName :: "mode"
  2349.         prop Visible :: 1
  2350.         prop Writable :: 0
  2351.         prop NoGen :: 0
  2352.     }
  2353.     inst iDevId :: = (self.iHSTChannel.iId) { 
  2354.         prop NoGen :: 0
  2355.     }
  2356.     inst iIsTerminal :: 1 { 
  2357.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  2358.         prop NoGen :: 1
  2359.     }
  2360.     inst iIsVirtual :: 0 { 
  2361.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  2362.         prop NoGen :: 1
  2363.     }
  2364.     inst iFxns :: @_DHL_FXNS { 
  2365.         prop NoGen :: 1
  2366.     }
  2367. }
  2368. type DPI {
  2369.     isa ObjectMgr
  2370.     prop name :: "DPI"
  2371.     prop Label :: "DPI - Pipe Driver"
  2372.     prop IsContainedIn :: SIODRIVER
  2373.     prop GlobalIcon :: 127
  2374.     prop InstanceIcon :: 128
  2375.     prop GlobalHelpTopic :: (304)
  2376.     prop InstanceHelpTopic :: (404)
  2377.     prop InstancePropertyPage :: ("{7FE06FA0-2DE9-11d1-988B-0020AFEE33C6}")
  2378.     prop GlobalPropertyPage :: ("{7FE06FA1-2DE9-11d1-988B-0020AFEE33C6}")
  2379.     prop DependsOn :: "DEV"
  2380.     prop maxObjs :: (32767)
  2381.     prop isDriver :: (1)
  2382.     prop localCreate :: (self.gCurDevId += 1, "ok")
  2383.     global gUser :: "USER" { 
  2384.         prop Visible :: 0
  2385.         prop Writable :: 0
  2386.         prop NoGen :: 1
  2387.     }
  2388.     global gSetOf :: 0 { 
  2389.         prop Visible :: 0
  2390.         prop Writable :: 0
  2391.         prop NoGen :: 1
  2392.     }
  2393.     global gNumOf :: 0 { 
  2394.         prop Visible :: 0
  2395.         prop Writable :: 0
  2396.         prop NoGen :: 1
  2397.     }
  2398.     global gDirty :: 0 { 
  2399.         prop Visible :: 0
  2400.         prop Writable :: 0
  2401.         prop NoGen :: 1
  2402.     }
  2403.     global gInitFlag :: 1 { 
  2404.         prop Visible :: 0
  2405.         prop Writable :: 0
  2406.         prop NoGen :: 1
  2407.     }
  2408.     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) { 
  2409.         prop Visible :: 0
  2410.         prop Writable :: 0
  2411.         prop NoGen :: 1
  2412.     }
  2413.     global gCurDevId :: 0 { 
  2414.         prop Visible :: 0
  2415.         prop Writable :: 0
  2416.         prop NoGen :: 1
  2417.     }
  2418.     inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} { 
  2419.         prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
  2420.         prop Label :: "comment"
  2421.         prop JSName :: "comment"
  2422.         prop Visible :: 1
  2423.         prop Writable :: if self.iDelUser == "USER" {1} else {0}
  2424.         prop NoGen :: 1
  2425.     }
  2426.     inst iIsUsed :: 0 { 
  2427.         prop Visible :: 0
  2428.         prop Writable :: 0
  2429.         prop NoGen :: 1
  2430.     }
  2431.     inst iId :: 0 { 
  2432.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  2433.         prop Style :: 0x01
  2434.         prop Visible :: 0
  2435.         prop Writable :: 1
  2436.         prop NoGen :: 1
  2437.     }
  2438.     inst iDelUser :: "USER" { 
  2439.         prop Visible :: 0
  2440.         prop Writable :: 0
  2441.         prop NoGen :: 1
  2442.     }
  2443.     inst iDelMsg :: "ok" { 
  2444.         prop Visible :: 0
  2445.         prop Writable :: 0
  2446.         prop NoGen :: 1
  2447.     }
  2448.     inst iDevId :: DPI.gCurDevId { 
  2449.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  2450.         prop Visible :: 0
  2451.         prop Writable :: 0
  2452.         prop Set :: (self.error("DPI.iDevId parameter no longer settable, it is now handled automatically"))
  2453.     }
  2454.     inst iIsVirtual :: 0 { 
  2455.         prop Label :: "Allow virtual instances of this device."
  2456.         prop JSName :: "allowVirtual"
  2457.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  2458.         prop Visible :: 1
  2459.         prop Writable :: 1
  2460.         prop NoGen :: 0
  2461.         prop Set :: (if ($1 == 1) {$a = "ok", $b = 1, scan ($i; SIO) {if ($i.iDevice == self) {$a = self.error("This DPI instance is being used by one or more SIO instances, cannot reconfigure"), $b = 0} }, if ($b == 1) {self.iIsVirtual = 1} , $a} else {self.iIsVirtual = 0, "ok"})
  2462.     }
  2463.     inst iIsTerminal :: 1 { 
  2464.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  2465.         prop NoGen :: 1
  2466.     }
  2467.     inst iFxns :: @_DPI_FXNS { 
  2468.         prop NoGen :: 1
  2469.     }
  2470. }
  2471. type HOOK {
  2472.     isa ObjectMgr
  2473.     prop name :: "HOOK"
  2474.     prop Label :: "HOOK - Module Hook Manager"
  2475.     prop IsContainedIn :: SYSTEM
  2476.     prop DependsOn :: "SWI"
  2477.     prop InstancePropertyPage :: ("{473C4A64-B1A8-11d0-9885-0020AFEE33C6}")
  2478.     prop GlobalIcon :: 181
  2479.     prop InstanceIcon :: 182
  2480.     prop GlobalHelpTopic :: (318)
  2481.     prop InstanceHelpTopic :: (418)
  2482.     prop localCreate :: (if (self.gNumOf == 0) {HOOK_KNL.iIsUsed = 1, self.mkId(0)} , "ok")
  2483.     prop localDelete :: (if (self.gNumOf == 2) {HOOK_KNL.iIsUsed = 0, self.rmId} , "ok")
  2484.     prop maxObjs :: (32767)
  2485.     prop SortByField :: "iPri"
  2486.     prop SortGroups :: 1
  2487.     global gUser :: "USER" { 
  2488.         prop Visible :: 0
  2489.         prop Writable :: 0
  2490.         prop NoGen :: 1
  2491.     }
  2492.     global gSetOf :: 0 { 
  2493.         prop Visible :: 0
  2494.         prop Writable :: 0
  2495.         prop NoGen :: 1
  2496.     }
  2497.     global gNumOf :: 0 { 
  2498.         prop Visible :: 0
  2499.         prop Writable :: 0
  2500.         prop NoGen :: 1
  2501.     }
  2502.     global gDirty :: 0 { 
  2503.         prop Visible :: 0
  2504.         prop Writable :: 0
  2505.         prop NoGen :: 1
  2506.     }
  2507.     global gInitFlag :: 1 { 
  2508.         prop Visible :: 0
  2509.         prop Writable :: 0
  2510.         prop NoGen :: 1
  2511.     }
  2512.     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) { 
  2513.         prop Visible :: 0
  2514.         prop Writable :: 0
  2515.         prop NoGen :: 1
  2516.     }
  2517.     global KNLID :: = (HOOK_KNL.Order - 1) { 
  2518.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  2519.     }
  2520.     inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} { 
  2521.         prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}"
  2522.         prop Label :: "comment"
  2523.         prop JSName :: "comment"
  2524.         prop Visible :: 1
  2525.         prop Writable :: if self.iDelUser == "USER" {1} else {0}
  2526.         prop NoGen :: 1
  2527.     }
  2528.     inst iIsUsed :: 0 { 
  2529.         prop Visible :: 0
  2530.         prop Writable :: 0
  2531.         prop NoGen :: 1
  2532.     }
  2533.     inst iId :: 0 { 
  2534.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  2535.         prop Style :: 0x01
  2536.         prop Visible :: 0
  2537.         prop Writable :: 1
  2538.         prop NoGen :: 1
  2539.     }
  2540.     inst iDelUser :: "USER" { 
  2541.         prop Visible :: 0
  2542.         prop Writable :: 0
  2543.         prop NoGen :: 1
  2544.     }
  2545.     inst iDelMsg :: "ok" { 
  2546.         prop Visible :: 0
  2547.         prop Writable :: 0
  2548.         prop NoGen :: 1
  2549.     }
  2550.     inst initFxn :: @_FXN_F_nop { 
  2551.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  2552.         prop Label :: "Initialization function"
  2553.         prop JSName :: "initFxn"
  2554.         prop Visible :: 1
  2555.         prop Writable :: 1
  2556.     }
  2557.     inst createFxn :: @_FXN_F_nop { 
  2558.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  2559.         prop Label :: "Create function"
  2560.         prop JSName :: "createFxn"
  2561.         prop Visible :: 1
  2562.         prop Writable :: self.iDelUser == "USER"
  2563.     }
  2564.     inst deleteFxn :: @_FXN_F_nop { 
  2565.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  2566.         prop Label :: "Delete function"
  2567.         prop JSName :: "deleteFxn"
  2568.         prop Visible :: 1
  2569.         prop Writable :: self.iDelUser == "USER"
  2570.     }
  2571.     inst exitFxn :: @_FXN_F_nop { 
  2572.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  2573.         prop Label :: "Exit function"
  2574.         prop JSName :: "exitFxn"
  2575.         prop Visible :: 1
  2576.         prop Writable :: self.iDelUser == "USER"
  2577.     }
  2578.     inst callSwitchFxn :: 0 { 
  2579.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  2580.         prop Label :: "Call switch function"
  2581.         prop JSName :: "callSwitchFxn"
  2582.         prop Visible :: 1
  2583.         prop Writable :: self.iDelUser == "USER"
  2584.     }
  2585.     inst switchFxn :: @_FXN_F_nop { 
  2586.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  2587.         prop Label :: "Switch function"
  2588.         prop JSName :: "switchFxn"
  2589.         prop Visible :: 1
  2590.         prop Writable :: self.callSwitchFxn
  2591.     }
  2592.     inst callReadyFxn :: 0 { 
  2593.         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"
  2594.         prop Label :: "Call ready function"
  2595.         prop JSName :: "callReadyFxn"
  2596.         prop Visible :: 1
  2597.         prop Writable :: self.iDelUser == "USER"
  2598.     }
  2599.     inst readyFxn :: @_FXN_F_nop { 
  2600.         prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
  2601.         prop Label :: "Ready function"
  2602.         prop JSName :: "readyFxn"
  2603.         prop Visible :: 1
  2604.         prop Writable :: self.callReadyFxn
  2605.     }
  2606.     inst Order :: 2 { 
  2607.         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"
  2608.         prop JSName :: "order"
  2609.         prop NoGen :: 1
  2610.         prop Writable :: 1
  2611.     }
  2612.     inst iPri :: 0 { 
  2613.         prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"
  2614.         prop Visible :: 0
  2615.         prop NoGen :: 1
  2616.     }
  2617. }
  2618. object HOOK_KNL :: HOOK {
  2619.     param iComment :: "Used to support TSK function hooks (cannot be deleted)"
  2620.     param iIsUsed :: 0
  2621.     param iId :: 0
  2622.     param iDelUser :: "HOOK"
  2623.     param iDelMsg :: "This hook instance is used by TSK and cannot be deleted"
  2624.     param initFxn :: @_FXN_F_nop
  2625.     param createFxn :: @_FXN_F_nop
  2626.     param deleteFxn :: @_FXN_F_nop
  2627.     param exitFxn :: @_FXN_F_nop
  2628.     param callSwitchFxn :: 0
  2629.     param switchFxn :: @_FXN_F_nop
  2630.     param callReadyFxn :: 0
  2631.     param readyFxn :: @_FXN_F_nop
  2632.     param Order :: 1
  2633.     param iPri :: 0
  2634. }
  2635. type DIO {
  2636.     isa ObjectMgr
  2637.     prop Visible :: 1
  2638.     prop Label :: "DIO - Class Driver"
  2639.     prop name :: "DIO"
  2640.     prop IsContainedIn :: SIODRIVER
  2641.     prop GlobalIcon :: 127
  2642.     prop InstanceIcon :: 127
  2643.     prop GlobalHelpTopic :: (319)
  2644.     prop InstanceHelpTopic :: (419)
  2645.     prop InstancePropertyPage :: ("{f80273c0-3838-11d2-a32c-006097656921}")
  2646.     prop GlobalPropertyPage :: ("{050a0600-3839-11d2-a32c-006097656921}")
  2647.     prop maxObjs :: (32767)
  2648.     prop AllocType :: (if (self.gNumOf > 0) {"1, _globalAllocDesc, _memSeg, _placement"} )
  2649.     prop _globalAllocDesc :: ("%8t .dio: {}")
  2650.     prop _placement :: (0x7fffffff / 2)
  2651.     prop _memSeg :: self.OBJMEMSEG