; -------------------------------------------------------------------------------- ; @Props: NoMetaTags, NoIndex ; @Copyright: (C) 1989-2014 Lauterbach GmbH, licensed for use with TRACE32(R) only ; -------------------------------------------------------------------------------- ; $Id: t8260diadcnt.cmm 6932 2014-04-23 11:15:09Z kjmal $ ; -------------------------------------------------------------------------------- ; Dialog Counter ; -------------------------------------------------------------------------------- LOCAL &closewin &saddr &x ENTRY &saddr &closewin=0. print "" dialog ( header "Define Delay Counter" ; -------------------------------------------------------------------------------- ; Definition ; -------------------------------------------------------------------------------- pos 10. 0. 16. text "Percentage of Tracedepth" pos 11. 3. 15. text "Number of Records" pos 1. 4. 7. 1. A.C: CHOOSEBOX "Number" "gosub InitNumb" pos 1. 1. 5. 1. A.P10: CHOOSEBOX "10%" "gosub InitPerc 10." pos 7. 1. 5. 1. A.P25: CHOOSEBOX "25%" "gosub InitPerc 25." pos 13. 1. 5. 1. A.P50: CHOOSEBOX "50%" "gosub InitPerc 50." pos 19. 1. 5. 1. A.P75: CHOOSEBOX "75%" "gosub InitPerc 75." pos 25. 1. 5. 1. A.P90: CHOOSEBOX "90%" "gosub InitPerc 90." pos 31. 1. 5. 1. A.P100: CHOOSEBOX "100%" "gosub InitPerc 100." pos 10. 4. 15. 1. CE: EDIT "" "" pos 26. 4. 10. HEX: CHECKBOX "HEX Value" ( dialog.set CE "0" ) pos 24. 6. 7. BUTTON "CLEAR" "gosub InitDialogAddr 0" pos 32. 6. 6. DEFBUTTON "OK" "jumpto okclose" CLOSE "jumpto winclose" ) gosub InitDialogAddr &saddr backloop: &closewin=0. stop okclose: &closewin=1. &saddrmin="" &saddrmax="" winclose: if &closewin==0. &saddr="" else ( &saddr=dialog.string(CE) if dialog.boolean(HEX) ( if "&saddr"!="" ( on error gosub ( &saddr="" return ) EVAL &saddr &x=eval.type() if &x!=&DHex &saddr="" if "&saddr"=="" print %ERROR "No hex value defined!" ) else print %ERROR "No value defined!" ) if "&saddr"=="" ( dialog.set CE "0" goto backloop ) if (&saddr<0)||(&saddr>a.size()) ( LOCAL &size &size=a.size() print %ERROR "only 0--&size range allowed" dialog.set CE "0" goto backloop ) ) dialog.end ENDDO &saddr InitDialogAddr: LOCAL &addr &min &hex ENTRY &addr dialog.set A.C dialog.enable CE dialog.enable HEX 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 InitNumb: dialog.enable CE dialog.enable HEX RETURN InitPerc: LOCAL &numb &perc ENTRY &perc &Tdepth=a.size() &numb=&Tdepth*&perc/100. if dialog.boolean(HEX) ( &numb=format.hex(5.,&numb) &numb="0x"+"&numb" ) dialog.set CE "&numb" dialog.set A.C "1" RETURN GetValues: LOCAL &saddr &sunit &min &hex &i &pos &pos2 &err &z &v &x &smax ENTRY &saddr if "&saddr"!="" ( on error gosub ( &saddr="" 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 &hex RETURN &hex &min