[Touch Pro2, Tilt 2 Themes and Apps] Tref:
It's fairly easy to do using Mortscript. I've used one in the past on my Wizard and I've recently been tweaking it to work on this phone. This current iteration is much less complicated/sophisticated than the original version (which I did not write), because I don't want data minutes combined with voice minutes, and I don't care to have my minutes broken down to days and hours for me. And since I have unlimited data I don't need to know how much usage I'm accumulating.

Here's a link to the original thread and script I believe. At any rate it's where I first learned about it 3 years ago. As you'll see the version I've included below is quite different from that one. Between the two of them you just might find what you're after, or perhaps have a good time making one that suits you perfectly.

http://xdaforums.com/showthread.php?t=258960&page=1

Here's what I'm using now. It's written for Mortscript 3.1, which is quite different from his most recent version. Version 4.2 may be backward compatible enough to run this, or it may not. The program allows you to reset your current counters, so if you run it on the day your bill cycle starts fresh and choose Yes to reset it can help you to keep track of where you are for the month.

call getstats

If question {%stats% & "Reset Current?"},"Call Timers"

RegWriteDWord HKLM,Software\Microsoft\Shell\CumulativeCallTimers\Line_0,AllCurrent,0

RegWriteDWord HKLM,Software\Microsoft\Shell\CumulativeCallTimers\Line_0,AllCurrentNumCalls,0

RegWriteDWord HKLM,Software\Microsoft\Shell\CumulativeCallTimers\Line_0,IncomingVoiceCurrent,0

RegWriteDWord HKLM,Software\Microsoft\Shell\CumulativeCallTimers\Line_0,IncomingVoiceCurrentNumCalls,0

RegWriteDWord HKLM,Software\Microsoft\Shell\CumulativeCallTimers\Line_0,OutgoingVoiceCurrent,0

RegWriteDWord HKLM,Software\Microsoft\Shell\CumulativeCallTimers\Line_0,OutgoingVoiceCurrentNumCalls,0

call getstats

Message %stats%,"Call Timers"

else

exit

endif

sub getstats

RegReadDword HKLM,Software\Microsoft\Shell\CumulativeCallTimers\Line_0, \

IncomingVoiceCurrent,minsOnly

call realMinutes

%AllCurrentIncomingMins% = %realMins%

RegReadDword HKLM,Software\Microsoft\Shell\CumulativeCallTimers\Line_0, \

OutgoingVoiceCurrent,minsOnly

call realMinutes

%AllCurrentOutgoingMins% = %realMins%

call getRealCurrentMins

%RealCurrentMins% = %returnRealCurrentMins%

###

RegReadDword HKLM,Software\Microsoft\Shell\CumulativeCallTimers\Line_0, \

IncomingVoicePhoneLifeTime,minsOnly

call realMinutes

%AllLifetimeIncomingMins% = %realMins%

RegReadDword HKLM,Software\Microsoft\Shell\CumulativeCallTimers\Line_0, \

OutgoingVoicePhoneLifeTime,minsOnly

call realMinutes

%AllLifetimeOutgoingMins% = %realMins%

call getRealLifetimeMins

%RealLifetimeMins% = %returnRealLifetimeMins%

###

RegReadDword HKLM,Software\Microsoft\Shell\CumulativeCallTimers\Line_0, \

IncomingVoicePhoneLifeTimeNumCalls,numCalls

call tallyCalls

%InVoPhLiTiNumCalls% = %callCount%

RegReadDword HKLM,Software\Microsoft\Shell\CumulativeCallTimers\Line_0, \

OutgoingVoicePhoneLifeTimeNumCalls,numCalls

call tallyCalls

%OutVoPhLiTiNumCalls% = %callCount%

call getTotalLifeTimeCalls

%TotalLifeTimeCalls% = %returnTotalLifeTimeCalls%

###

RegReadDword HKLM,Software\Microsoft\Shell\CumulativeCallTimers\Line_0, \

IncomingVoiceCurrentNumCalls,numCalls

call tallyCalls

%InVoPhCurrNumCalls% = %callCount%

RegReadDword HKLM,Software\Microsoft\Shell\CumulativeCallTimers\Line_0, \

OutgoingVoiceCurrentNumCalls,numCalls

call tallyCalls

%OutVoPhCurrNumCalls% = %callCount%

call getTotalCurrentCalls

%TotalCurrentCalls% = %returnTotalCurrentCalls%

# There can be no blank lines in the code in the stats section.

%stats% = \

"-->Current Info<--^CR^" & \

"Minutes: " & %RealCurrentMins% & " Rnd'd Up^CR^" & \

" (" & %TotalCurrentCalls% & ") Calls^CR^" & \

"^CR^" & \

"-->Phone Lifetime<--^CR^" & \

"Minutes: " & %RealLifetimeMins% & " Rnd'd Up^CR^" & \

" (" & %TotalLifeTimeCalls% & ") Calls^CR^" & \

"^CR^"

endsub

sub getTotalCurrentCalls

%returnTotalCurrentCalls% = %InVoPhCurrNumCalls% + %OutVoPhCurrNumCalls%

endsub

sub getTotalLifeTimeCalls

%returnTotalLifeTimeCalls% = %InVoPhLiTiNumCalls% + %OutVoPhLiTiNumCalls%

endsub

sub realMinutes

if expression (%minsOnly% = 0)

%realMins% = (%minsOnly%/60)

else

%realMins% = (%minsOnly%/60) +1

EndIf

endsub

sub getRealCurrentMins

%returnRealCurrentMins% = %AllCurrentIncomingMins% + %AllCurrentOutgoingMins%

endsub

sub getRealLifetimeMins

%returnRealLifeTimeMins% = %AllLifetimeIncomingMins% + %AllLifetimeOutgoingMins%

endsub

sub tallyCalls

# Just a way of setting the var to use above.

%callCount% = %numCalls% + 0

endsub