⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 t32.men

📁 指令集模拟器
💻 MEN
📖 第 1 页 / 共 4 页
字号:
            &triggerA="AlphaBreak&&Write"
         )

         ;----------------- B ------------------------
         &addrdeclB=""
         &addrB=dialog.string(addrB)
         if "&addrB"!=""
         (
           if dialog.boolean(hllB)
             &addrB="v.range(""&addrB"")"
           else if dialog.boolean(rangeB)
             &addrB="y.range(""&addrB"")"
           &addrdeclB="addr BetaBreak &addrB"
           if  FIRE()&&CPU()=="M68372"
           (
               if  P:FASBASE.ADDRESS()!=P:0x0ffffffff
               (
                   if   (P:FASBASE.ADDRESS()<=P:(&addrB))&&(P:(&addrB)<=(P:FASBASE.ADDRESS()+0x7fff))
                        &VBusB="YES"
                   else if (P:(&addrB)<P:FASBASE.ADDRESS())||(P:FASBASE.ADDRESS()+0x7fff)<P:(&addrB)
                        &VBusB="NO"
                   else ; not only VBUS or XBUS address area
                   (
                        beep 5.
                        print "address range error: address overlaps XBUS and VBUS : &addrB"
                        enddo
                   )
               )
          )
         )

         if dialog.boolean(b.anyB)
         (
               if   "&VBusB"=="YES"
                    &triggerB="BetaBreak&&VBUS"
               else if "&VBusB"=="NO"
                    &triggerB="BetaBreak&&XBUS"
               else
            &triggerB="BetaBreak"
         )
         if dialog.boolean(b.readB)
         (
               if   "&VBusB"=="YES"
                    &triggerB="BetaBreak&&VBUS&&VRead"
               else if "&VBusB"=="NO"
                    &triggerB="BetaBreak&&XBUS&&Read"
               else
            &triggerB="BetaBreak&&Read"
         )
         if dialog.boolean(b.wrB)
         (
               if   "&VBusB"=="YES"
                    &triggerB="BetaBreak&&VBUS&&VWrite"
               else if "&VBusB"=="NO"
                    &triggerB="BetaBreak&&XBUS&&Write"
               else
            &triggerB="BetaBreak&&Write"
         )
         ;---------------- HLL only -----------------
         if dialog.boolean(hllonly)
         (
           Break.Delete  /Charly
           Break.SetLine /Charly /NPreFetch
           &triggerH="CharlyBreak"
         )
         ;-------------------------------------------
         ; normal ANALYZERS
         if !(a.config.hac())
         (
                Analyzer.ReProgram
                (
                              &addrdeclA
                              &addrdeclB

                  start:
                              Mark.A          if &triggerA
                              Sample.enable   if &triggerA
                              CONTinue        if &triggerA
                  
                  occured:
                              Sample.Enable   if &triggerH
                              Mark.B          if &triggerB
                              Goto    Start   if &triggerB
                )
         )

         ; HAC Analyzer
         if a.config.hac()
         (
          ; special for HAC ( only two Trigger can be supported )
                Analyzer.ReProgram
                (
                              &addrdeclA
                              &addrdeclB

                  start:
                              Mark.A          if &triggerA
                              Sample.enable   if &triggerA
                              CONTinue        if &triggerA
                  
                  occured:
                              Sample.Enable   
                              Mark.B          if &triggerB
                              Goto    Start   if &triggerB
                )
         )
         print "Analyzer programmed."
       )
               pos 0. 0. 40. 3.5
               box "Address / Expression for Start Point "

               pos 0. 3.0 40. 3.5
               box "Address / Expression for Stop Point"

               pos 41. 0.8 6. 1.
hllA:          checkbox "HLL"
               (
                       if      dialog.boolean(hllA)
                               dialog.disable rangeA
                       else
                               dialog.enable  rangeA
               )
                   
rangeA:        checkbox "Range" 
               (
                       if      dialog.boolean(rangeA)
                               dialog.disable hllA
                       else
                               dialog.enable  hllA
               )

               pos 48. 0.8 5. 1.
a.anyA:        choosebox "Any" ""
               pos 53. 0.8 6. 1.
a.readA:       choosebox "Read" ""
a.wrA:         choosebox "Write" ""

               pos 41. 3.8 6. 1.
hllB:          checkbox "HLL"
               (
                       if      dialog.boolean(hllB)
                               dialog.disable rangeB
                       else
                               dialog.enable  rangeB
               )

rangeB:        checkbox "Range"
               (
                       if      dialog.boolean(rangeB)
                               dialog.disable hllB
                       else
                               dialog.enable  hllB
               )

               pos 48. 3.8 5. 1.
b.anyB:        choosebox "Any" ""
               pos 53. 3.8 6. 1.
b.readB:       choosebox "Read" ""
b.wrB:         choosebox "Write" ""

               pos 41. 6.5  11. 1.
hllonly:       checkbox "only HLL Lines" ""
       )
               dialog.set a.anyA
               dialog.set b.anyB
               if a.config.hac()
                    dialog.disable hllonly

      )
;     -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
      menuitem "&Selective Trace..."
       (
       dialog
       (
       header "Address Selective Trace"
       pos 0x1 0x1 30.
addr:  defedit "" ""
       pos 32. 1. 7.
       button "Browse..."
       (
         local &wildcard
         &wildcard=dialog.string(addr)
         if "&wildcard"==""
           &wildcard="*"
         if !string.find("&wildcard","*?")
           &wildcard="*&wildcard*"
         symbol.browse &wildcard /c "dialog.set addr ""*""" /d
       )

       pos 0. 0. 41. 3.25
       box "Address / Expression"

       pos 1. 3.5 11. 1.
b.ab:  choosebox "Alpha"  ""
b.bb:  choosebox "Beta"   ""
b.cb:  choosebox "Charly" ""


       pos 13. 3.5 11. 1.
a.any:   choosebox "Any"   ""
a.read:  choosebox "Read"  ""
a.write: choosebox "Write" ""

       pos 42. 0.5 8. 1.

hll:   checkbox "HLL"
       (
               if dialog.boolean(hll)
                       dialog.disable range
               else
                       dialog.enable  range
       )
range: checkbox "Range"
       (
               if dialog.boolean(range)
                       dialog.disable hll
               else
                       dialog.enable  hll
       )

       pos 34. 5.5 14. 1.
Ohll:  checkbox "only HLL Lines" 
        (
         if dialog.boolean(Ohll)
         (
               dialog.disable b.ab
               dialog.disable b.bb
               dialog.disable b.cb
               dialog.disable a.any
               dialog.disable a.read
               dialog.disable a.write
               dialog.disable range
               dialog.disable hll
               dialog.disable addr
         )
         else
         (
               dialog.enable b.ab
               dialog.enable b.bb
               if !(a.config.hac())
               (
                      dialog.enable b.cb
               )
               dialog.enable a.any
               dialog.enable a.read
               dialog.enable a.write
               dialog.enable range
               dialog.enable hll
               dialog.enable addr

         )
        )

       pos 1. 7.5  9.
       defbutton "Ok"
       (
     dialog.execute apply
         dialog.end
       )

       pos 25. 7.5  9.
       button "Cancel" "dialog.end"

       pos 13. 7.5 9.
apply: button "Apply"
       (
         local &addr &addrdecl &bpused &trigger
         local &VBus

         on error jumpto
         (
           beep 5.
           print "Input error, please check syntax"
           enddo
         )

         &addrdecl=""
         &VBus=""

         &bpused="AlphaBreak"
         if dialog.boolean(b.bb)
           &bpused="BetaBreak"
         if dialog.boolean(b.cb)
           &bpused="CharlyBreak"

         &addr=dialog.string(addr)
         if "&addr"!=""
         (
           if dialog.boolean(hll)
             &addr="v.range(""&addr"")"
           else if dialog.boolean(range)
             &addr="y.range(""&addr"")"
           &addrdecl="addr &bpused &addr"

           if  FIRE()&&CPU()=="M68372"
           (
               if  P:FASBASE.ADDRESS()!=P:0x0ffffffff
               (
                   if   (P:FASBASE.ADDRESS()<=P:(&addr))&&(P:(&addr)<=(P:FASBASE.ADDRESS()+0x7fff))
                        &VBus="YES"
                   else if (P:(&addr)<P:FASBASE.ADDRESS())||(P:FASBASE.ADDRESS()+0x7fff)<P:(&addr)
                        &VBus="NO"
                   else ; not only VBUS or XBUS address area
                   (
                        beep 5.
                        print "address range error: address overlaps XBUS and VBUS : &addr"
                        enddo
                   )
               )
           )
         )

         if dialog.boolean(a.read)
         (
            if   "&VBus"=="YES"
                 &trigger="&bpused&&VBUS&&VRead"
            else if "&VBus"=="NO"
                 &trigger="&bpused&&XBUS&&Read"
            else
         &trigger="&bpused&&Read"
         )
         else if dialog.boolean(a.write)
         (
            if   "&VBus"=="YES"
                 &trigger="&bpused&&VBUS&&VWrite"
            else if "&VBus"=="NO"
                 &trigger="&bpused&&XBUS&&Write"
            else
         &trigger="&bpused&&Write"
         )
         else
         (
            if   "&VBus"=="YES"
                 &trigger="&bpused&&VBUS"
        else if "&VBus"=="NO"
                 &trigger="&bpused&&XBUS"
            else
         &trigger="&bpused"
         )
         if dialog.boolean(Ohll)
         (
           &addrdecl=""
           &trigger="AlphaBreak"
           Break.Delete  /Alpha
           Break.SetLine /Alpha /NPreFetch
         )

         Analyzer.ReProgram
         (
           &addrdecl
           Sample.Enable if &trigger
         )
         print "Analyzer programmed."
       )
       )
       if a.config.hac()
       (
;         currently not supported from HAC
          dialog.disable b.cb
       )
       dialog.set b.ab
       dialog.set a.any

      )
;     -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
     menuitem "&Trace around / Trigger..."
     (
       dialog
       (
       header "Trace around or Trigger"
       pos 0x1 0x1 32.
addr:  defedit "" ""
       pos 34. 1. 7.
       button "Browse..."
       (
         local &wildcard
         &wildcard=dialog.string(addr)
         if "&wildcard"==""
           &wildcard="*"
         if !string.find("&wildcard","*?")
           &wildcard="*&wildcard*"
         symbol.browse &wildcard /c "dialog.set addr ""*""" /d
       )

       pos 0. 0. 42. 3.25
       box "Address / Expression"

       pos 43. 0.75 8. 1.

hllp:  checkbox "HLL"
       (
               if dialog.boolean(hllp)
                       dialog.disable rangep
               else
                       dialog.enable rangep
       )

rangep: checkbox "Range"
       (
               if dialog.boolean(rangep)
                       dialog.disable hllp
               else
                       dialog.enable hllp
       )

       pos 1. 3.5 11. 1.
b.ab:     choosebox "Alpha"           ""
b.bb:     choosebox "Beta"            ""
b.cb:     choosebox "Charly"          ""

       pos 13. 3.5 11. 1.
a.any:    choosebox "Any"             ""
a.read:   choosebox "Read"            ""
a.write:  choosebox "Write"           ""

       pos 25. 3.5 11. 1.
d.pre:    choosebox "Trace Before"    ""
d.center: choosebox "Center"          ""
d.post:   choosebox "Trace After"     ""

       pos 38. 3.5 12. 1.
t.break:  choosebox "Break Analyzer"  ""
t.trigg:  choosebox "Break Program"   ""


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -