PDA

View Full Version : MBUS Commands explained :)



slikmik
29-12-2002, 07:21 AM
Hi there everyone,

ok spent most of today figuring out a variety of nokia vb6 source code and have finally managed to get my head around it all :) (at last!)

Commands sent are as so:

thex ("1F 00 10 40 00 03 00 01 66 33 18")

this is what im using to get the imei

what i would like explaining to me is how it is all put together i have some ideas as the 6110.txt that nokdoc attached to a thread has all the available commands for dct-3 phones, for example...

0x40: Security commands
s Enable extended cmds { 0x0164, cmd }
where cmd: 0x00: off
0x01: on
0x03: reset (doesn't ask for PIN again)
0x04: reset (PIN is requested)
In 5110 makes reset without PIN
0x06: CONTACT SERVICE!!! Don't try it!
s Get IMEI { 0x0166 }
r Get IMEI { 0x0166, 0x01, IMEI, 0x00}

set 0x40 and hey presto it begins with 40 :) after the 1f mbus header and the 166 is evident above also, could someone explain the checksums etc as i dont understand how they are calculated - ive tried searching EVERYWHERE but to no avail :( so any info would be mcuh appreciated

aswell as the "thex" output
we have a pause and another acknowledgement...

thex ("1F 00 10 02 04")

could this please be explained as all i can gather is the 1f as the mbus header and have read about the sequence number - so i just have 00 - 09 or however many commands i execute and the 04 is the erm frame header or am i mistaken? either way could someone please explain to me how these work, as it would be much appreciated

aswell as this is it simply give the fone a command pause send acknowledgement then open a buffer and allow the input to flow in.... :) simple as that or is there a catch?

Sorry this is a very long thread and i understand if it may be somewhat hard to explain but PLEASE if anybody has any information or if anybody out there is as interested as me in finding out all about nokia proggies in vb6 then please say so :)

Thanks all for your time
Regards

Mike :cool:

welshwizard
29-12-2002, 03:27 PM
i'm interested in making a nokia prog in vb6.... :) but cant understand all this code, lol!

i have found some different codes over the net that may help. i hope it helps sum1.... :)


MSComm1.Settings = "9600,o,8,1"
MSComm1.RTSEnable = True
MSComm1.DTREnable = False
MSComm1.PortOpen = True
'hier is het test mode
thex ("1F 00 10 40 00 04 00 01 64 02 31 1D")
pause (100)
thex ("1F 00 10 7F 02")
MSComm1.PortOpen = False
MSComm1.PortOpen = True
thex ("1F 00 10 40 00 04 00 01 64 02 31 1D")
pause (100)
thex ("1F 00 10 7F 02")
MSComm1.PortOpen = False
'version bilgisi
MSComm1.PortOpen = True
buffer2$ = ""
thex ("1F 00 10 D1 00 05 00 01 00 03 00 32 EB")
pause (100)
thex ("1F 00 10 7F 03")
pause (100)
buffer2$ = ""
Do
DoEvents
buffer2$ = buffer2$ & MSComm1.Input
temp = Len(buffer2$)
If temp < 54 Then temp = 54
If temp = 54 Then GoTo erro
Loop While temp < 54

j = 1
For i = 1 To temp
arrayhex(j) = Mid(buffer2$, i, 1)
temp_ = arrayhex(j)
arraynum(j) = Asc(arrayhex(j))
j = j + 1
Next i
For i = 1 To temp
leitura1 = leitura1 + arrayhex(i)
Next i
geral = Mid(leitura1, 30, 31)
Text1 = geral
versao = Mid(leitura1, 30, 7)
Text2 = versao
tipo = Mid(leitura1, 47, 5)
Text3 = tipo
MSComm1.PortOpen = False
pause (100)
MSComm1.PortOpen = True
'Imei vragen
thex ("1F 00 10 40 00 03 00 01 66 33 18")
pause (100)
thex ("1F 00 10 7F 04")
pause (100)
buffer2$ = ""
Do
DoEvents
buffer2$ = buffer2$ & MSComm1.Input
temp = Len(buffer2$)
Loop While temp < 45
j = 1
For i = 1 To temp
arrayhex(j) = Mid(buffer2$, i, 1)
arraynum(j) = Asc(arrayhex(j))
j = j + 1
Next i
For i = 1 To temp
leitura2 = leitura2 + arrayhex(i)
Next i
imei = Mid(leitura2, 28, 6) + "-" + Mid(leitura2, 34, 2) + "-" +
Mid(leitura2, 37, 6) + "-" + Mid(leitura2, 42, 1)
Text4 = imei
MSComm1.PortOpen = False
pause (400)
MSComm1.PortOpen = True

'security code lezen
thex ("1F 00 10 40 00 04 00 01 6E 01 34 11 b7")
encrypt:
pause (100)
thex ("1F 00 10 7F 05")
pause (100)
Do
DoEvents
buffer2$ = ""
buffer2$ = buffer2$ & MSComm1.Input
temp = Len(buffer2$)
Loop While temp < 1
j = 1
For i = 1 To temp
arrayhex(j) = Mid(buffer2$, i, 1)
temp_ = arrayhex(j)
arraynum(j) = Asc(arrayhex(j))
j = j + 1
Next i
For i = 1 To temp
leitura3 = leitura3 + arrayhex(i)
Next i

lockcode = Mid(leitura3, 31, 5)
Text5 = lockcode
MSComm1.PortOpen = False
pause (300)
MSComm1.PortOpen = True
'level lezen (security l1.l2.l3.l4)

thex ("1F 00 10 40 00 04 00 01 8A 00 13 d3")
pause (100)
thex ("1F 00 10 7F 07")
buffer2$ = ""

buffer2$ = ""
Do
DoEvents
buffer2$ = buffer2$ & MSComm1.Input
temp = Len(buffer2$)
Loop While temp < 1
j = 1
For i = 1 To temp
arrayhex(j) = Mid(buffer2$, i, 1)
temp_ = arrayhex(j)
arraynum(j) = Asc(arrayhex(j))
j = j + 1
Next i
For i = 1 To temp
teste1 = Hex(arraynum(i))
If teste1 = "0" Then teste1 = "0" + teste1
If teste1 = "1" Then teste1 = "0" + teste1
If teste1 = "2" Then teste1 = "0" + teste1
If teste1 = "3" Then teste1 = "0" + teste1
If teste1 = "4" Then teste1 = "0" + teste1
If teste1 = "5" Then teste1 = "0" + teste1
If teste1 = "6" Then teste1 = "0" + teste1
If teste1 = "7" Then teste1 = "0" + teste1
If teste1 = "8" Then teste1 = "0" + teste1
If teste1 = "9" Then teste1 = "0" + teste1
If teste1 = "A" Then teste1 = "0" + teste1
If teste1 = "B" Then teste1 = "0" + teste1
If teste1 = "C" Then teste1 = "0" + teste1
If teste1 = "D" Then teste1 = "0" + teste1
If teste1 = "E" Then teste1 = "0" + teste1
If teste1 = "F" Then teste1 = "0" + teste1
leitura4 = leitura4 + teste1
Next i

locks = Mid(leitura4, 61, 2)
locks = Val("&h" + locks)
lockss = dec2bin(locks)

If lockss = "0" Then lockss = "0000"
If lockss = "1" Then lockss = "0001"
If lockss = "10" Then lockss = "0010"
If lockss = "11" Then lockss = "0011"
If lockss = "100" Then lockss = "0100"
If lockss = "101" Then lockss = "0101"
If lockss = "110" Then lockss = "0110"
If lockss = "111" Then lockss = "0111"
za = Len(lockss)

lock1 = Mid(lockss, za, 1)
lock2 = Mid(lockss, za - 1, 1)
lock3 = Mid(lockss, za - 2, 1)
lock4 = Mid(lockss, za - 3, 1)



If lock1 = 1 Then lock11 = "close"
If lock1 = 0 Then lock11 = "Open"
If lock2 = 1 Then lock22 = "close"
If lock2 = 0 Then lock22 = "Open"
If lock3 = 1 Then lock33 = "close"
If lock3 = 0 Then lock33 = "Open"
If lock4 = 1 Then lock44 = "close"
If lock4 = 0 Then lock44 = "Open"

Text6.SelText = "Lock 1 ...................................... " +
lock11 &
vbCrLf
pause (200)
Text6.SelText = "Lock 2 ...................................... " +
lock22 &
vbCrLf
pause (200)
Text6.SelText = "Lock 3 ...................................... " +
lock33 &
vbCrLf
pause (200)
Text6.SelText = "Lock 4 ...................................... " +
lock44 &
vbCrLf
MSComm1.PortOpen = False
pause (300)
MSComm1.PortOpen = True
' reset phone
thex ("1F 00 10 40 00 04 00 01 64 03 42 6F")
pause (100)
thex ("1F 00 10 7F 1C")
pause (100)

MSComm1.PortOpen = False

;-------------------------------------------
;Some xtra info from Y2K
;in your txt file of vb code is the part of "thex" and "pause" missing !!!
;also i can tell you that this thex and pause sub calls are original from īVirtualM
;my best regards Y2K
;this code will also only work for one directly calls! this mean you have to send this commands all in one open com state!



attached some code, "dct3 reset" (tested & works) & "dct4 testmode setter" (not tested)

dr.bizar
29-12-2002, 04:05 PM
Hi... I got my hands on this document... I don't know if it's gonna be of any use to you guys - but take a look

Blight.dk (http://blight.dk/dct3/docs/AT_instructions_NOKIA.pdf)

slikmik
29-12-2002, 05:22 PM
@welshwizard

thats exactly the source im using mate! :)

cheers for replying though, yet still need some support on how commands are threaded together

anyways i'll have a play and see what happens


@dr.bizar

cheers very much

shall take a good look and see what i can make of it

greetings all

Mike

slikmik
30-12-2002, 02:10 AM
ok guys ive spent most of today playing about with VB and have made a neat little app thingy

its fairly lame it simply reads via mbus cable the make model date imei and security code but eventually as i build on it it shall tell you EVERYTHING :D

find it attached - please note i havent implemented incremental sequence number so after each read please reset ;) or you'll get lotsa crap

also please try a few times as it make take a few clicks to get it right :)

also ok i want to know:


imei: 1F 00 10 40 00 03 00 01 66 33 18

sec: 1F 00 10 40 00 04 00 01 6e 01 34 11 b7

mcu: 1F 00 10 D1 00 05 00 01 00 03 00 36 EF

init: 1F 00 10 40 00 04 00 01 64 02 31 1D


^^^ above we have the hex i send to the fone to initiate the commands and get data fed back, what i need to understand please is how this data is calculated like the checksum and frame length etc please could someone lend a hand

thank you
even the download section of www.gsm-software.net which i have a login for has not been much help :(

Oh well thanks guys

Mike

slikmik
30-12-2002, 02:12 AM
woops forgot to attach here you go

Nokia Thingy :)

Mike

Salami1_1
30-12-2002, 03:01 PM
Originally posted by slikmik
also ok i want to know:


imei: 1F 00 10 40 00 03 00 01 66 33 18

sec: 1F 00 10 40 00 04 00 01 6e 01 34 11 b7

mcu: 1F 00 10 D1 00 05 00 01 00 03 00 36 EF

init: 1F 00 10 40 00 04 00 01 64 02 31 1D


^^^ above we have the hex i send to the fone to initiate the commands and get data fed back, what i need to understand please is how this data is calculated like the checksum and frame length etc please could someone lend a hand

thank you
even the download section of www.gsm-software.net which i have a login for has not been much help :(

Oh well thanks guys

Mike [/B]

hej mike,
I do not totally understand what you wnat to know..
I think you want to know WHY sec code is:
1F 00 10 40 00 04 00 01 6e 01 34 11 b7
and not something else..
Well ask nokia for that... That are just commands set by nokia programmers.. no calculation for that.. (or am I wrong now :confused: )
Also check out the:
'nokia scr code given by Dusk' in the programmer section.
This one is much better as the one you use now.

WBR

Salami1_1

edit: oh also Nclasses.zip would be usefull for you I think.
(just take a good look around in programmers section ;) also checksum calculations are present there only not in VB but in C)

welshwizard
31-12-2002, 12:55 AM
nice software, if only i had half a brain...

slikmik
31-12-2002, 04:12 AM
Frame format for MBUS:

{ FrameID, DestDEV, SrcDEV, MsgType, FrameLengthLO, FrameLengthHI, {block}, SeqNo, ChkSum }

where FrameID: 0x1f: Serial / M2BUS
DestDev, SrcDev: 0x00: mobile phone
0x10: TE (M2BUS) ? (found in nokia511052x.zip)
0x1d: TE (M2BUS)
0x10: TE (M2BUS) (LM, WinTesla)
MsgType: see List
FrameLength: {block}
SeqNo: sequence number
ChkSum: XOR on frame's all numbers

ok cheers for the replies guys but all i want to know is how to calculate the last two digits of the sent hex - its explained above but i dont understand :(

imei: 1F 00 10 40 00 03 00 01 66 33 18

ok heres a better way of explaining by problem people

aboce we have the line used to get the imei number information

1F 00 10 40 00 03 00 01 66 33 18

ok frame id is where it starts 1f means its mbus, fair enuff ok next one, 00 now this means the destination of command - mobile fone which is 00, yay now the thirs is source of command - 10 menaing mbus wintesla (kinda) ok sorted now fot eh next digit "40" now in a list of commands i got off nokdoc i have:

0x40: Security commands
s Enable extended cmds { 0x0164, cmd }
where cmd: 0x00: off
0x01: on
0x03: reset (doesn't ask for PIN again)
0x04: reset (PIN is requested)
In 5110 makes reset without PIN
0x06: CONTACT SERVICE!!! Don't try it!
s Get IMEI { 0x0166 }
r Get IMEI { 0x0166, 0x01, IMEI, 0x00}
s Get Product Profile
Settings { 0x016a}

from this we see its set ***40*** yay ok thats good, now its where i get puzzled whats the rest about?????

1F 00 10 40 * 00 03 00 01 66 33 18

ok up to the star ( * )

what is the "00" "03" "00" and then i see "01 66" this is imei (!!!) ((Get IMEI { 0x0166 })) so i understand THIS bit also then the complicated bit "33" and "18" now the first is sequence number (is it just increase by one each command you send to fone??) next is XOR checksum this is where i get scared what the hells this (??????:rolleyes: !!!!!!!!) and how do i calculate it please??????


DESPERATELY SEEKING HELP :p

with this information you can literally make a program which can control pretty much ALL functions from PC even button clicks virtually and everything so please guys if you can help do so :)

Thanks for your time all

Mike

smeg9
02-01-2003, 01:25 PM
0x06: CONTACT SERVICE!!! Don't try it!


Is there anyway, using MBUS to change that so that the phone skips over 'contact service' checking?

Kontact
03-01-2003, 03:43 AM
what is the "00" "03" "00" and then i see "01 66" this is imei (!!!)

00 03 is the length of command

00 01 66 is th command


((Get IMEI { 0x0166 })) so i understand THIS bit also then the complicated bit "33" and "18" now the first is sequence number (is it just increase by one each command you send to fone??) next is XOR checksum this is where i get scared what the hells this (?????? !!!!!!!!) and how do i calculate it please??????


seq number is any number (i think).

xor chksum. is from the start 1f u xor them up to the seq number.

hope this help.

dct4 is more interesting it has longer mbus command. 8-)

regards,

NokDoc
03-01-2003, 10:25 AM
Hi,

I hope this helps, my VB demo for MSID.
Remember I'm no programmer too!

Do have attention for the useage of the PhoneId byte.
That byte is required as input again for some other mbus commands.
That byte is also unique I guess per phone. (-type?)
The rest will be clear I hope.


Private Sub tGetMsid_Click()
Dim FromModem$
Dim QByte, TmpPhoneId As Byte
Dim ArrayHex(300) As String
Dim GetLen As Double
Dim QSt(13) As Byte
Dim BStr, VisString As String
Dim Ih, BNum As Double
Dim Dummy, TCount, BSize As Integer

MSComm1.PortOpen = True
thex ("1F 00 10 40 00 04 00 01 64 02 01 2D")
pause (200)
thex ("1F 00 10 7F 01")
MSComm1.PortOpen = False
MSComm1.PortOpen = True 'Step1, Get PhoneID
Buffer2$ = ""
thex ("1F 00 10 40 00 04 00 01 64 02 02 2E") 'Get Id !!!
pause (200)
thex ("1F 00 10 7F 02")
pause (200)

Buffer2$ = ""
TStr = ""
GetLen = 16
Do
DoEvents
Buffer2$ = Buffer2$ & MSComm1.Input
temp = Len(Buffer2$)

If temp < GetLen Then temp = GetLen

Loop While temp < GetLen '54

For i = 1 To temp
ArrayHex(i) = Mid(Buffer2$, i, 1)
TStr = TStr & Q_Hex(Asc(ArrayHex(i)))
Next i

MSComm1.PortOpen = False

BNum = InStr(TStr, "0C0101640201")
TmpPhoneId = Val("&H" & Mid(TStr, BNum + 12, 2))

pause (200)
MSComm1.PortOpen = True 'Step2, Get bPhoneMSID
pause (400)
MSComm1.PortOpen = False

'Now create our new string for msid:
QSt(1) = &H1F
QSt(2) = &H0
QSt(3) = &H10
QSt(4) = &H40
QSt(5) = &H0
QSt(6) = &H5
QSt(7) = &H0
QSt(8) = &H1
QSt(9) = &HB4
QSt(10) = TmpPhoneId '!!!
QSt(11) = &H3
QSt(12) = &H4

'Watch it Mike, the calc!
BNum = QSt(1)
For Ih = 2 To 12
BNum = BNum Xor QSt(Ih)
Next

'Ur New calced value Mike!
QSt(13) = BNum

'create the new string
BStr = ""
For Ih = 1 To 12
BStr = BStr & Q_Hex(QSt(Ih)) & " "
Next
BStr = BStr & Q_Hex(QSt(13))

MSComm1.PortOpen = True
thex ("1F 00 10 40 00 04 00 01 64 02 03 2F")
pause (200)
thex ("1F 00 10 7F 03")
MSComm1.PortOpen = False
MSComm1.PortOpen = True 'Step2, Get bPhoneMSID
Buffer2$ = ""
thex ("" & BStr) 'String

pause (200)
thex ("1F 00 10 7F 03")
pause (200)

Buffer2$ = ""
TStr = ""
GetLen = 16
Do
DoEvents
Buffer2$ = Buffer2$ & MSComm1.Input
temp = Len(Buffer2$)
If temp < GetLen Then temp = GetLen
Loop While temp < GetLen
For i = 1 To temp
ArrayNum(i) = Asc(Mid(Buffer2$, i, 1))
TStr = TStr & Q_Hex(CByte(ArrayNum(i)))
Next i

MSComm1.PortOpen = False

'2Do: Decide if returned values contain usefull data!
BNum = InStr(TStr, "4000130101B501" & Q_Hex(TmpPhoneId))

VisString = Mid(TStr, BNum + 16, 26)
FTxt = "(" & Q_Hex(TmpPhoneId) & ") " & VisString

End Sub


Good Luck,

NokDoc

slikmik
03-01-2003, 04:14 PM
wow cheers nokdoc very good of you :)

will have a p[lay and see what i can make happen ;)

Cheers again for going to the trouble

Mike

slikmik
04-01-2003, 03:23 AM
Originally posted by Kontact
what is the "00" "03" "00" and then i see "01 66" this is imei (!!!)

00 03 is the length of command

00 01 66 is th command


((Get IMEI { 0x0166 })) so i understand THIS bit also then the complicated bit "33" and "18" now the first is sequence number (is it just increase by one each command you send to fone??) next is XOR checksum this is where i get scared what the hells this (?????? !!!!!!!!) and how do i calculate it please??????


seq number is any number (i think).

xor chksum. is from the start 1f u xor them up to the seq number.

hope this help.

dct4 is more interesting it has longer mbus command. 8-)

regards,


Cheers mate

ok the sequence number can be anything but what i aim to do is make it sequentially increae by one on each command because sending the same seq number causes the fone to get confused :rolleyes:

Anyways ok the LENGTH OF THE FRAME

please explain how i get this!!!! thanks but ive looked around various hex commands and cant figure out WHY some are longer (ie 00 05 00" and some shorter "00 03 00" its baffling me please help

Mike

p.s. Cheers again nokdoc for the sdource - wheres it from?? any more where that came from?? :D :D :D

Kontact
04-01-2003, 12:37 PM
Originally posted by slikmik



Cheers mate

ok the sequence number can be anything but what i aim to do is make it sequentially increae by one on each command because sending the same seq number causes the fone to get confused :rolleyes:

Anyways ok the LENGTH OF THE FRAME

please explain how i get this!!!! thanks but ive looked around various hex commands and cant figure out WHY some are longer (ie 00 05 00" and some shorter "00 03 00" its baffling me please help

Mike

p.s. Cheers again nokdoc for the sdource - wheres it from?? any more where that came from?? :D :D :D


yes "seq number" should be sequential...

about the len of command or frame. it starts after the first 4 bytes (ex. 1F 00 10 40 xx xx )

xx xx is the len of command or frame. to know all the command try reading gnooki docs and most of them r there.

if u need the doc file.. i think filename is n7110.txt and n6110.txt there u will see the the mbus commands.

about the commands i will try to illustrate clearly... i hope.

\x1F\x0\x10\x40\x0\x04\x0\x01\xcc\x1\seq chksum
1 2 3 4 = 0 04 len of command

some commands are longer it could be 3 or more.

oh btw, yes u need to ack with the right value so that mbus will responed correctly.

hope this helps.

regards,

slikmik
05-01-2003, 02:48 AM
thanks for the post!!!!

but i still dont really get the length thingy

imei: 1F 00 10 40 00 03 00 01 66 33 18

sec: 1F 00 10 40 00 04 00 01 6e 01 34 11 b7

mcu: 1F 00 10 D1 00 05 00 01 00 03 00 36 EF

init: 1F 00 10 40 00 04 00 01 64 02 31 1D


how come even though init is shorter than sec they both have length 04????

wierd please explain again

sorry i really want to get to grips but cant even fathom the bloomin gnokii docs, well i understand all but length now :)

CHeers again

Mike

Kontact
05-01-2003, 11:43 AM
>> init: 1F 00 10 40 00 04 00 01 64 02 31 1D

in my previous post i think my tab is wrong. anyways, this is correct. 0x31 is the seq# and 0x1d is chksum.

about sec. command why it is longer..

\x1F\x0\x10\x40\x0\x04\x0\x01\x6e\x1\seq chk

this is what i used.

i don't know why yours is longer...

regards,

firecrac
10-02-2003, 07:07 PM
ei.. vb source all used in com1 port ?
then that's mean that, many s/w in the market wont run if the cable is plug into com2 ?

pico
12-02-2003, 02:32 PM
you can tell mscomm32.ocx control to use any com port. or put an option part to your program so user can choose..

ITryIt
18-02-2003, 09:56 PM
Hi all

Some useless info but here we go!

M-Bus command to press a button on the keypad

1F 00 10 0C 00 07 00 01 00 42 01 KP 01 SQ CHK

KP is the button to be pressed

SQ is the sequence #, this can be value

CHK is the checksum, xor all the bytes

can someone maybe tell me why this only works on 51 and 61 models.

ITryIt
South-Africa

aussiet68i
08-10-2003, 07:03 AM
Does anybody know if there's an MBUS command which allows you to delete an SMS from the sim??

Ice Draagon
03-11-2003, 08:09 AM
thanks for the post!!!!

but i still dont really get the length thingy

imei: 1F 00 10 40 00 03 00 01 66 33 18

sec: 1F 00 10 40 00 04 00 01 6e 01 34 11 b7

mcu: 1F 00 10 D1 00 05 00 01 00 03 00 36 EF

init: 1F 00 10 40 00 04 00 01 64 02 31 1D


how come even though init is shorter than sec they both have length 04????

wierd please explain again

sorry i really want to get to grips but cant even fathom the bloomin gnokii docs, well i understand all but length now :)

CHeers again

Mike

I think the sec you have above is wrong. It should only be:
sec: 1F 00 10 40 00 04 00 01 6e 01 34 11
Since 11 is the xor from position 1 to 11

Let's examine the init command: 1F 00 10 40 00 04 00 01 64 02 31 1D

1F - frameID:serial MBUS2
00 - target: phone
10 - source: PC (service)
40 - msgtype: extended command
00 04 - length of {block}
00 01 64 02 - {block} contents: init command block
31 -SN: sequence number
1D - CS:XOR checksum from 1F to 31 (position 1 to 11)

About the length "thingy":
Position 5 to 6 is the length of the {block}. 00 is the HIGH byte and 04 is the LOW byte. The Gnokii document is wrong on that (typo error?). They specify as position 5 is the LO byte and position 6 is the HI byte.

The SN should always be greater than the last packet sent. Incrementing the last SN by 1 works best.

Cosmictej
25-12-2003, 03:04 PM
This is actually quite confusing! Does anyone have the vb source for me to have a look at?

sathisemail
18-05-2004, 10:03 PM
just have a look at the site http://www.xored.dk/nokia/pcorner/gettingstarted.php to answer all ur questions. this is quite informative