📄 t32.men
字号:
&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 + -