; -------------------------------------------------------------------------------- ; @Props: NoMetaTags, NoIndex ; @Copyright: (C) 1989-2014 Lauterbach GmbH, licensed for use with TRACE32(R) only ; -------------------------------------------------------------------------------- ; $Id: diaetmcount.cmm 7013 2014-04-25 11:16:47Z kjmal $ ; ----- Dialog Counter ----------------------------------------------------------- LOCAL &closewin &saddr &sunit &x ENTRY &saddr &closewin=0. print "" dialog ( header "Define Counter" ; ----- Definition --------------------------------------------------------------- pos 1. 0. 10. text "Value" pos 1. 1. 15. 1. CE: EDIT "" "" pos 17. 1. 10. HEX: CHECKBOX "HEX Value" "" pos 11. 3. 7. BUTTON "CLEAR" "gosub InitDialogAddr" pos 19. 3. 6. DEFBUTTON "OK" "jumpto okcloseC" CLOSE "jumpto wincloseC" ) gosub InitDialogAddr &saddr backloopC: &closewin=0. &subdialog=3. stop okcloseC: &closewin=1. &saddrmin="" &saddrmax="" wincloseC: if &closewin==1. ( &saddr=dialog.string(CE) if "&saddr"=="" ( ) else if dialog.boolean(HEX) ( on error gosub goto backloopC EVAL &saddr &x=eval.type() if &x!=&DHex &saddr="" if "&saddr"=="" ( print %ERROR "No hex value defined!" dialog.set CE "" goto backloopC ) ) else ( on error gosub goto backloopC EVAL &saddr &x=eval.type() if &x==&DHex ( LOCAL &first &last &first=string.cut("&saddr",-2.) &last=string.cut("&saddr",1.) if "&first"!="0x"&&"&last"!="." &saddr="&saddr"+"." EVAL &saddr &x=eval.type() ) if &x!=&DInteger&&&x!=&DIntNum&&&x!=&DNumeric&&"&saddr"!="" &saddr="" if "&saddr"=="" ( print %ERROR "No non-hex value defined!" dialog.set CE "" goto backloopC ) ) ) dialog.end &subdialog=0. ENDDO "&saddr" InitDialogAddr: LOCAL &addr &min &hex ENTRY &addr if "&addr"!="" ( gosub GetValues &addr ENTRY &hex &min ) else &hex=1. dialog.set CE "&min" if &hex==0. dialog.set HEX "&hex" else dialog.set HEX RETURN GetValues: LOCAL &saddr &min &hex &i &pos &pos2 &err &z &v &x &smax ENTRY &saddr if "&saddr"!="" ( on error gosub return EVAL &saddr &x=eval.type() if &x!=&DInteger&&&x!=&DIntNum&&&x!=&DFloat&&&x!=&DBinary&&&x!=&DHex&&&x!=&DNumeric ( &x="&saddr"+" no valid count value!" print %ERROR "&x" &saddr="" ) else if &x==&DInteger||&x==&DIntNum||&x==&DFloat||&x==&DBinary||&x==&DNumeric &hex=0. else if &x==&DHex &hex=1. &min="&saddr" ) if "&saddr"=="" return RETURN &hex &min