Nokia 6510
==========


Assembled by
Markus Plail  <plail@web.de>
Marcin Wiacek <Marcin@MWiacek.com>
<tibor.harsszegi@essnet.se>
... and other members of gnokii mailing list
and authors of some WWW pages.

Heavily based on nk7110.txt.

The data provided is for information purposes only.
Some of the frames might be hazardous to your phone. Be careful!!!
We do not take any responsibility or liability for damages, etc.

.. note ::

    this information isn't (and can't be) complete.  If you know anything
    about features not listed here or you noticed a bug in this list, please
    notify us via e-mail.  Thank you.

Document describing frames used in
GSM Nokia 6510 and derivatives (?)

Correct format is FBUS version 2/Infrared/MBUS version 2
(see nokia.txt for protocol details)::

    0x00: Connect to NBS port ?
        r Set ringtone          {+....,ringtone packed according to SM2.0}

    0x01 COMMUNICATION
         switch (message[3]) {
            case  0x02:
            dprintf("Call established, remote phone is ringing.\n");
            dprintf("Call ID: %i\n", message[4]);
            break;
        case 0x03:
            dprintf("Call complete.\n");
            dprintf("Call ID: %i\n", message[4]);
            dprintf("Call Mode: %i\n", message[5]);
            dummy = malloc(message[6] + 1);
            DecodeUnicode(dummy, message + 7, message[6]);
            dprintf("Number: %s\n", dummy);
            break;		
        case 0x04:
            dprintf("Hangup!\n");
            dprintf("Call ID: %i\n", message[4]);
            dprintf("Cause Type: %i\n", message[5]);
            dprintf("Cause ID: %i\n", message[6]);
            break;
        case 0x05:
            dprintf("Incoming call:\n");
            dprintf("Call ID: %i\n", message[4]);
            dprintf("Call Mode: %i\n", message[5]);
            dummy = malloc(message[6] + 1);
            DecodeUnicode(dummy, message + 7, message[6]);
            dprintf("From: %s\n", dummy);
            break;
        case 0x07:
            dprintf("Call answer initiated.\n");
            dprintf("Call ID: %i\n", message[4]);
            break;
        case 0x09:
            dprintf("Call released.\n");
            dprintf("Call ID: %i\n", message[4]);
            break;
        case 0x0a:
            dprintf("Call is being released.\n");
            dprintf("Call ID: %i\n", message[4]);
            break;
        case 0x0b:
            /* No idea what this is about! */
            break;
        case 0x0c:
            if (message[4] == 0x01)
                dprintf("Audio enabled\n");
            else
                dprintf("Audio disabled\n");
            break;
        case 0x53:
            dprintf("Outgoing call:\n");
            dprintf("Call ID: %i\n", message[4]);
            dprintf("Call Mode: %i\n", message[5]);
            dummy = malloc(message[6] + 1);
            DecodeUnicode(dummy, message + 7, message[6]);
            dprintf("To: %s\n", dummy);
            break;


    0x02: SMS HANDLING
        s Send SMS              { 0x02, 0x00, 0x00, 0x00, 0x55, 0x55,
                                  0x01 (1 big block), 0x02 (submit), length (big block),
                      type, reference, PID, DCS, 0x00, # blocks,
                      blocks... }
        r Send SMS              { 0x03, 0x00, 0x01, 0x0c, 0x08, 0x00, 0x00, 0xdb, 0x55, 0x55, 0x00 }

        s Get SMSC              { 0x14, 0x01, 0x00 }
        r Get SMSC              { 0x15, format,  0x01, 0x0b, 0x28, # of SMSC, 0xf8, 0x00, validity, 0x55
                                  #blocks,
                                  blocks ...}

    0x03: PHONEBOOK HANDLING

        s Get memory status     { 0x03, 0x01, memory type, 0x55, 0x55, 0x55, 0x00}
                                where: memory type - see 0x03/0x07
        r Get memory status     { 0x04, 0x00, location, 0x00[7], 0x01, 0x10, 0x00, 0x00, 0x0c,
                                        total_low, total_high, used_low, used_high, 0x01, 0x00, 0x00}

        s Read memory           { 0x07, 0x01, 0x01, 0x00, 0x01, 0x02, memory type,
                            0x00, 0x00, 0x00, 0x00, location_low, location_high, 0x00, 0x00};

                                where MT: memory type
                                         0x01: (256) Dialled numbers
                                         0x02: (512) Missed calls
                                         0x03: (768) Received calls
                                         0x05: (500) telephone phonebook
                                         0x06: (160) SIM phonebook
                                         0x07: (10/0)
                                         0x08: (1/0)
                                         0x09: (4) voice mailbox
                                         0x0e: (10) speed dials
                                         0x10: (5) caller groups

        r Read memory           { 0x08, 0x00, 0x01,
                                        code, 0x00, 0x00, z, xH, xL, yH, yL, 0x00[7], no.of blocks, { block } * }

                                where if code==0x0f && xH==0x34 - phonebook location not found
                                  y: location
                                  z: generic block size
                                  block: {id, 0, 0, blocksize, block no.,
                                          {contents}, 0x00}
                                    id: 0x04 pointer to another memory location { 0xff?, yH, yL, xL,0x00[3] }
                                        0x07 name {len, (unicode)},
                                        0x08 email
                                        0x09 postal
                                        0x0a note {len, (unicode)}
                                        0x0b number {type, 0x00[3], len, (unicode)}
                                        0x0c ringtone {ringtone no., 0, 0}
                        0x13 date for a called list (DC, RC, etc.)
                                        0x1b caller group graphic {width, height, 0, 0 {bitmap}}
                                        0x1c caller group graphic on? {(1: yes, 0: no), 0, 0}
                                        0x1e caller group number {number, 0, 0}
                                       type: 0x0a: General,
                                             0x03: Mobile (office ?),
                                             0x06: Work,
                                             0x04: Fax,
                                             0x02: Home (mobile ?)

        s Set mem location      { 0x0b, 0x00, 0x01, 0x01, 0x00, 0x00, z,
                                          0x02, memory type, yH, yL, 0x00[7],
                                          no.of blocks, { block }[no.of blocks] }
        r Set mem location      { 0x0c, 0?, 1?, code, 0?, 0?, z?, 0?, 0?,
                                          yH, yL, xL }
                                where code:
                                        0x3d - wrong entry type

    0x08: SECURITY

        s Get status            { 0x11, 0x00 }
        r Get status            { 0x12, status, }
                                where status:
                                0x01: waiting for Security Code
                                0x07:
                                0x02: waiting for PIN
                                0x03: waiting for PUK
                                0x05: PIN ok, SIM ok
                                0x06: No input status
                                0x16: No SIM
                                0x1A: SIM rejected!

        s Enter PIN             { 0x07, 0x02, code, 0x00}
        r Enter PIN             { return code, reason }
                                where:
                                return code: 0x08 = success
                                             0x09 = failure
                                reason: 0x06 = PIN wrong

    0x0a: NETSTATUS

        s Get Info              { 0x00, 0x00 }
        r Get Info              { 0x01, 0x00, # blocks,
                                  0x00, length, 0x00, 0x02, status, length, operator name (unicode),
                                  0x09, length, LAC, LAC, 0x00, 0x00, CellID, CellID, NetworkCode (3 octets), ... }

        s Get RF Level          { 0x0b, 0x00, 0x02, 0x00, 0x00, 0x00 }
        r GET RF Level          { 0x0c, 0x00, 0x01, 0x04, 0x04, level, 0x5f }

        s Get operator logo     { 0x23, 0x00, 0x00, 0x55, 0x55, 0x55 }
        r Get operator logo     { 0x24, 0x00, 0x01, 0x00, 0x00, 0x00,
                                  0x02, 0x0c, 0x08, netcode (3 octets), 0x02, 0x00, 0x00,
                      0x1a, size, width, height, logo size (2 octets), logo size (2 octets), logo }

    0x10: SUBSCRIBE

        s Subscribe Channel     { 0x10, # channels, message types... }

    0x13 CALENDAR

        s Add meeting note      { 0x01, body like in subtype 0x1a...}
        r Add meeting note      { 0x02, location (2 bytes), status (2 bytes)}

        s Add call note         { 0x03, body like in subtype 0x1a...}
        r Add call note         { 0x04, location (2 bytes), status (2 bytes)}

        s Add birthday note     { 0x05, body like in subtype 0x1a...}
        r Add birthday note     { 0x06, location (2 bytes), status (2 bytes)}

        s Add reminder note     { 0x07, body like in subtype 0x1a...}
        r Add reminder note     { 0x08, location (2 bytes), status (2 bytes)}

        s Delete calendar note  { 0x0b, location (2 bytes) }
        r Delete calendar note  { 0x0c, location (2 bytes), ?, ?, ?, ? }

        s Get calendar note     { 0x19, location (2 bytes) }
        r Calendar note recvd   { 0x1a, location (2 bytes), entry type, 0x00, year (2 bytes), Month, Day, block}
                                where: entry type - 0x01 - Meeting, 0x02 - Call, 0x04 - Birthday, 0x08 - Reminder
                                       block: for Meeting:{hour,minute,alarm (two bytes),recurrence (two bytes),len,0x00,string(unicode)}
                                              where alarm=Number of minutes before the time of the meeting
                                                      that the alarm should be triggered:
                                                      For meetings with "No alarm"=0xFFFF (-1).
                                                      For "On time"=0x0000
                                                      half an hour=0x001E, and so on.
                                                    Recurrence=in hours, between future occurrences of this meeting.
                                                      If there is no repeat, this value is 0x0000. The special value 0xffff
                                                      means 1 Year!
                                              for Call:{Hour,Minute,Alarm (as above),Recurrence (as above),namelen,numberlen,
                                                        name(unicode),number(unicode)}
                                              for Reminder:{Recurrence (as above),len,0x00,string(unicode)}
                                              for Birthday:{byte1,byte2,alarm(4 bytes),yearofbirth,alarmtype,len,string(unicode)}
                                                        byte1 and byte2 may vary (???). Usually are 0x00 both (but not always)
                                                        In Birthday, the Year in the common part, usually contains a strange year.
                                                        So, don't consider it as Year of note, neither year of BirthDay (for Year of
                                                        Birthday use the value described below).
                                              where alarm=32-bit integer that is the number of seconds between the desired
                                                      alarm time and 11:59:58pm on the birthday.For "No Alarm", the value is
                                                      0x0000FFFF (65535).
                                                    YearOfBirth=used instead of the one in the common part of the entry (see above)
                                                      but only when reading birthday entries. For storing entries, this field does
                                                      not exist.
                                                    AlarmType: 0x00 - Tone, 0x01 - Silent

    ?   s???                    { 0x0021 }
    ?   r???                    { 0x0022, 0x5A, 0x00 }
    ?   s???                    { 0x0025 }
    ?   r???                    { 0x0026, 0x04, 0x00 }
    ?   s                       { 0x0029 }
    ?   r                       { 0x002A, 0x04, 0x00 }

        s Get first free pos    { 0x0031 }
        r Get first free pos    { 0x0032, location (2bytes) }

        s Get notes info        { 0x003a, 0xFF, 0xFE}
        r Get notes info        { 0x003b, how many notes used (2 bytes), 0x01, 0x07, { two bytes with location for each note} *}

        s Get first free pos    { 0x0031 }
        r Get first free pos    { 0x0032, location (2bytes) }
        s Get notes info        { 0x003a, 0xFF, 0xFE}
        r Get notes info        { 0x003b, how many notes used (2 bytes), 0x01, 0x07, { two bytes with location for each note} *}

    ?   s Get calendar note??   { 0x003E, location (2 bytes) }
    ?   r Get calendar note??   { 0x003F, location (2bytes), ... }

    0x14: FOLDER/PICTURE SMS HANDLING

        s Get SMS Status        { 0x08, 0x00, 0x01 }
        r Get SMS Status        { 0x09, 0x00, #blocks,
                                  type, length, blocknumber,
                                  a (2 octets), b (2 octets), c (2 octets), 0x00, 0x55 ,
                                  type, length, blocknumber,
                                  d (2 octets), e (2 octets), f (2 octets), 0x01, 0x55 }

                                  where:
                                  a - max. number of messages in phone memory
                                  b - Number of used messages in phone memory. These
                                    are messages manually moved from the other folders.
                                    Picture messages are saved here.
                                  c - Number of unread messages in phone memory. Probably
                                    only smart messages.
                                  d - max. number of messages on SIM
                                  e - Number of used messages in SIM memory. These are
                                    either received messages or saved into Outbox/Inbox.
                                    Note that you *can't* save message into this memory
                                    using 'Move' option. Picture messages are not here.
                                  f - Number of unread messages in SIM memory



        s Get SMS from folder   { 0x02, memory, folderID, location, location, 0x01, 0x00}
                                where:
                    memory - 0x01 for SIM, 0x02 for phone (SIM only for IN/OUTBOX
                                folderID - see 0x14/0x017B
        r Get SMS from folder   { 0x03, 0x00, 0x01, memory, folderID, locationH, locationL, 0x55, 0x55, 0x55,
                                  0x01 (on big block), type, length of big block,
                      [date/time1], [date/time2], # blocks,
                      type, length, data...
                      ... }

        s Delete SMS            { 0x04, memory, folderID, location, location, 0x0F, 0x55 }
        r Delete SMS            { 0x05 }

        s Get folder status     { 0x0c, memory, folderID, 0x0F, 0x55, 0x55, 0x55, 0x55}
                                where: folderID - see 0x14/0x017B
        r Get folder status     { 0x0d, 0x00, length, number of entries (2 bytes),
                    entry1number (2 bytes), entry2number(2 bytes), ..., 0x55[]}

        s Get message info      { 0x0e, memory, folderID, location, location, 0x55, 0x55 }
        r Get message info      { 0x0f, 0x00, 0x01, 0x00, 0x50, memory, type, 0x00, location, FolderID, status

                                where: type = 0x00 - MT
                                              0x01 - delivery report
                                              0x02 - MO
                                              0x80 - picture message
                                where: status=0x01 - reveived/read
                          0x03 - received/unread
                          0x05 - stored/sent
                          0x07 - stored/not sent

        s Get folder names      { 0x12, 0x00, 0x00}
        r Get folder names      { 0x13, 0x00, number of strings, 0x01, 0x28, folderID, length, 0x00, name1, 0x00,
                    0x55[40-length(name1)], 01 28, folderID, length, 0x00, name2, 0x00, 0x55[dito] ... }
                                   where: folderID = 0x02 - Inbox
                                                     0x03 - Outbox
                                                     0x04 - Archive
                                                0x05 - Templates
                                                0x06 - first "My folders"
                                                0x07 - second "My folders"
                                                0x08 - third -"-
                                                and so on

    0x15:
        s ???                   {+0x00, 0x06, 0x00, 0x01, 0x01, 0x00 }
        r ???                   {+0x06, ',',  0x00, 'd',  0x00, 0x00 }
        s ???                   {+0x00, 0x06, 0x00, 0x02, 0x00, 0x00 }
        r ???                   {+0x06, '.',  0x00, 'e',  ?, ? }

    0x17: BATTERY

        s Get battery level     { 0x0a, 0x02, 0x00 }
        r Get battery level     { 0x0b, 0x01, 0x01, 0x16, level, 0x07, 0x05 }
                                where: level: 1-7 (as in phone display)

    0x19: CLOCK

        s Get ????              {0x01,...}
        r Get ????              {0x02,...}

        s Get date              { 0x0a, 0x00, 0x00 }
        r Get date              { 0x0b, 0x00, 0x02 (blocks),
                                  0x01 (type), 0x0c (length), 0x01, 0x03, year (2 octets), month, day, hour, minute, second, 0x00,
                                  0x04, 0x04, 0x01, 0x00 }

        s Get ????              {0x0c, 0x00, 0x00}
        r Get ????              {0x0d..}
        s Get ????              {0x11,...}
        r Get ????              {0x12,...}

    0x1b: IDENTIFY

        s Get IMEI              {+0x00, 0x01, 0x01, 0x00, 'A', 0x00, 0x00, 0x00 }
        r Get IMEI              {                   0x01, 0x00, 0x01, 'A', 0x14, 0x00, 0x10, {IMEI(ASCII)}, 0x00 }
        s Get IMEI              {+0x00, 0x03, 0x01, 0x00, 'A', 0x00, 0x00, 0x00 }
        r Get IMEI              {                   0x01, 0x00, 0x01, 'A', 0x14, 0x00, 0x10, {IMEI(ASCII)}, 0x00 }
        s Get ???               {+0x00, 0x03, 0x00, 0x00, 'D',  0x00, 0x00, 0x00 }
        r Get ???               {                   0x01, 0x02, 0x00 }

        s Get HW version        {+0x00, 0x03, 0x02, 0x07, 0x00, 0x02 }
        r Get HW version        {                   0x08, 0x00, 0x01, 'I', 0x0c, 0x00, 0x05, HW(4 bytes), 0x00, 0x00, 0x00, 0x00 }

        s get HW&SW version     { 0x07, 0x00, 0x01 }
        r get HW&SW version     { 0x08, 0x00, 0x01, 0x58, 0x29, 0x00, 0x22, "V " "firmware\n" "firmware date\n"
                                  "model\n" "(c) NMP.", 0x0a, 0x43, 0x00, 0x00, 0x00 }

        s Get product code      {+0x00, 0x03, 0x04, 0x0b, 0x00, 0x02 }
        r Get product code      {                   0x0c, 0x00, 0x01, 'N', 0x0c, 0x00, 0x08, code(7 bytes), 0x00 }
        s ???                   {+00 |03 |05 |0b |00 |20}
        r ???                   {+03 |2b+|05 |0c |00 |01 |52R|0c |00 |08 |00 |00 |00 |00 |00 |00 | 00 |00}
        s Get ???               {+00 |03 |06 |0b |00 |01}
        r Get ???               {+03 |2b+|06 |0c |00 |01 |4dM|10 |00 |0a |53S|54T|41A|344|355|399|311|355|377|00 |00 |00}

    Sending frame 0x1b / 0x0006
    00 |03 |07 |0b |00 |ff                                         ..... 
    Received frame 0x1b / 0x0072
    03 |2b+|07 |0c |00 |08 |4dM|10 |00 |0a |53S|54T|41A|344|355|39 .+....M...STA459
    311|355|377|00 |00 |00 |4eN|0c |00 |08 |300|355|300|377|355|32 157...N...050752
    300|00 |50P|0c |00 |08 |00 |00 |00 |00 |00 |00 |00 |00 |4fO|0c 0.P...........O.
    00 |08 |300|355|300|333|366|366|366|00 |51Q|0c |00 |06 |00 |00 ..0503666.Q.....
    00 |00 |00 |00 |00 |00 |52R|0c |00 |08 |00 |00 |00 |00 |00 |00 ......R.........
    00 |00 |53S|0c |00 |5b[|00 |00 |00 |0d |00 |00 |00 |00 |59Y|14 ..S..[........Y.
    00 |10 |00 |00 |00 |00 |00 |00 |00 |00 |00 |00 |00 |00 |00 |00 ................
    00 |00                                                         ..
    Sending frame 0x1b / 0x0006
    00 |03 |08 |07 |01 |ff                                         ..... 
    Received frame 0x1b / 0x00ae
    03 |2b+|08 |08 |00 |09 |48H|28(|00 |20 |56V|20 |300|344|2e.|30 .+....H(. V 04.0
    344|0a |322|399|2d-|311|300|2d-|300|311|0a |4eN|48H|4dM|2d-|37 4.29-10-01.NHM-7
    0a |28(|63c|29)|20 |4eN|4dM|50P|2e.|00 |00 |00 |00 |00 |49I|0c .(c) NMP......I.
    00 |05 |300|388|300|322|00 |00 |00 |00 |4aJ|0c |00 |05 |00 |00 ..0802....J.....
    00 |00 |00 |00 |00 |00 |4bK|08 |00 |03 |333|366|00 |00 |4cL|0c ......K...36..L.
    00 |04 |322|388|388|00 |00 |00 |00 |00 |54T|0c |00 |05 |300|31 ..288.....T...01
    300|355|00 |00 |00 |00 |55U|10 |00 |0a |47G|344|2e.|300|2d-|34 05....U...G4.0-4
    2e.|311|322|00 |00 |00 |57W|10 |00 |08 |53S|45E|49I|4bK|4fO|20 .12...W...SEIKO
    300|00 |00 |00 |00 |00 |58X|29)|00 |22"|56V|20 |300|344|2e.|30 0.....X)."V 04.0
    344|0a |322|399|2d-|311|300|2d-|300|311|0a |4eN|48H|4dM|2d-|37 4.29-10-01.NHM-7
    0a |28(|63c|29)|20 |4eN|4dM|50P|2e.|0a |44D|00 |00 |00         .(c) NMP..D...
    Sending frame 0x1b / 0x0008
    00 |03 |09 |00 |41A|00 |00 |00                                 ....A...
    Received frame 0x1b / 0x001a
    03 |2b+|09 |01 |00 |01 |41A|14 |00 |10 |333|355|300|377|300|30 .+....A...350700
    311|300|355|388|300|311|333|300|333|00                         105801303.
    Sending frame 0x1b / 0x0008
    00 |03 |0a |00 |42B|00 |00 |00                                 ....B...
    Received frame 0x1b / 0x0012
    03 |2b+|0a |01 |00 |01 |42B|0c |00 |08 |3a:|05 |07 |10 |50P|08 .+....B...:...P.
    311|00                                                         1.
    Sending frame 0x1b / 0x0008
    00 |03 |0b |00 |43C|00 |00 |00                                 ....C...
    Received frame 0x1b / 0x0016
    03 |2b+|0b |01 |00 |01 |43C|10 |00 |09 |333|05 |07 |10 |50P|08 .+....C...3...P.
    311|00 |f6÷|00 |00 |00                                         1.÷...
    Sending frame 0x1b / 0x0008
    00 |03 |0c |00 |44D|00 |00 |00                                 ....D...
    Received frame 0x1b / 0x0006
    03 |2b+|0c |01 |02 |00                                         .+....
    Sending frame 0x1b / 0x0008
    00 |03 |0d |00 |45E|00 |00 |00                                 ....E...
    Received frame 0x1b / 0x0006
    03 |2b+|0d |01 |02 |00                                         .+....
    Sending frame 0x1b / 0x0008
    00 |03 |0e |00 |46F|00 |00 |00                                 ....F...
    Received frame 0x1b / 0x0012
    03 |2b+|0e |01 |00 |01 |46F|0c |00 |08 |4eN|54T|54T|4aJ|50P|12 .+....F...NTTJP.
    344|56V                                                        4V
    Sending frame 0x1b / 0x0008
    00 |03 |0f |00 |56V|00 |00 |00                                 ....V...
    Received frame 0x1b / 0x0006
    03 |2b+|0f |01 |02 |00                                         .+....
    Sending frame 0x1b / 0x0008
    00 |03 |10 |00 |5aZ|00 |00 |00                                 ....Z...
    Received frame 0x1b / 0x0006
    03 |2b+|10 |01 |02 |00                                         .+....
    Sending frame 0x1b / 0x0006
    00 |03 |11 |0b |00 |02                                         ......
    Received frame 0x1b / 0x0012
    03 |2b+|11 |0c |00 |01 |4eN|0c |00 |08 |300|355|300|377|355|32 .+....N...050752
    300|00                                                         0.
    Sending frame 0x1b / 0x0006
    00 |03 |12 |0b |00 |20                                         .....
    Received frame 0x1b / 0x0012
    03 |2b+|12 |0c |00 |01 |52R|0c |00 |08 |00 |00 |00 |00 |00 |00 .+....R.........
    00 |00                                                         ..
    Sending frame 0x1b / 0x0006
    00 |03 |13 |0b |00 |01                                         ......
    Received frame 0x1b / 0x0016
    03 |2b+|13 |0c |00 |01 |4dM|10 |00 |0a |53S|54T|41A|344|355|39 .+....M...STA459
    311|355|377|00 |00 |00                                         157...
    Sending frame 0x1b / 0x0006
    00 |03 |14 |07 |00 |02                                         ......
    Received frame 0x1b / 0x0012
    03 |2b+|14 |08 |00 |01 |49I|0c |00 |05 |300|388|300|322|00 |00 .+....I...0802..
    00 |00                                                         ..

        s Get IMEI              { 0x00, 0x41 }
        r Get IMEI              { 0x01, 0x00, 0x01, 0x41, 0x14, 0x00, 0x10, {IMEI(ASCII)}, 0x00 }

    Sending frame 0x1b / 0x0008
    00 |03 |16 |00 |44D|00 |00 |00                                 ....D...
    Received frame 0x1b / 0x0006
    03 |2b+|16 |01 |02 |00                                         .+....
    Sending frame 0x1b / 0x0006
    00 |03 |17 |07 |00 |01                                         ......
    Received frame 0x1b / 0x002e
    03 |2b+|17 |08 |00 |01 |48H|28(|00 |20 |56V|20 |300|344|2e.|30 .+....H(. V 04.0
    344|0a |322|399|2d-|311|300|2d-|300|311|0a |4eN|48H|4dM|2d-|37 4.29-10-01.NHM-7
    0a |28(|63c|29)|20 |4eN|4dM|50P|2e.|00 |00 |00 |00 |00         .(c) NMP......
    Sending frame 0x1b / 0x0006
    00 |03 |18 |07 |00 |01                                         ......
    Received frame 0x1b / 0x002e
    03 |2b+|18 |08 |00 |01 |48H|28(|00 |20 |56V|20 |300|344|2e.|30 .+....H(. V 04.0
    344|0a |322|399|2d-|311|300|2d-|300|311|0a |4eN|48H|4dM|2d-|37 4.29-10-01.NHM-7
    0a |28(|63c|29)|20 |4eN|4dM|50P|2e.|00 |00 |00 |00 |00         .(c) NMP......
    Sending frame 0x1b / 0x0006
    00 |03 |19 |07 |00 |01                                         ......
    Received frame 0x1b / 0x002e
    03 |2b+|19 |08 |00 |01 |48H|28(|00 |20 |56V|20 |300|344|2e.|30 .+....H(. V 04.0
    344|0a |322|399|2d-|311|300|2d-|300|311|0a |4eN|48H|4dM|2d-|37 4.29-10-01.NHM-7
    0a |28(|63c|29)|20 |4eN|4dM|50P|2e.|00 |00 |00 |00 |00         .(c) NMP......
    Sending frame 0x1b / 0x0006
    00 |03 |1a |07 |00 |01                                         ......
    Received frame 0x1b / 0x002e
    03 |2b+|1a |08 |00 |01 |48H|28(|00 |20 |56V|20 |300|344|2e.|30 .+....H(. V 04.0
    344|0a |322|399|2d-|311|300|2d-|300|311|0a |4eN|48H|4dM|2d-|37 4.29-10-01.NHM-7
    0a |28(|63c|29)|20 |4eN|4dM|50P|2e.|00 |00 |00 |00 |00         .(c) NMP......
    Sending frame 0x1b / 0x0006
    00 |03 |1b |07 |00 |01                                         ......
    Received frame 0x1b / 0x002e
    03 |2b+|1b |08 |00 |01 |48H|28(|00 |20 |56V|20 |300|344|2e.|30 .+....H(. V 04.0
    344|0a |322|399|2d-|311|300|2d-|300|311|0a |4eN|48H|4dM|2d-|37 4.29-10-01.NHM-7
    0a |28(|63c|29)|20 |4eN|4dM|50P|2e.|00 |00 |00 |00 |00         .(c) NMP......
    Sending frame 0x1b / 0x0006
    00 |03 |1c |07 |00 |01                                         ......
    Received frame 0x1b / 0x002e
    03 |2b+|1c |08 |00 |01 |48H|28(|00 |20 |56V|20 |300|344|2e.|30 .+....H(. V 04.0
    344|0a |322|399|2d-|311|300|2d-|300|311|0a |4eN|48H|4dM|2d-|37 4.29-10-01.NHM-7
    0a |28(|63c|29)|20 |4eN|4dM|50P|2e.|00 |00 |00 |00 |00         .(c) NMP......
    Sending frame 0x1b / 0x0006
    00 |03 |1d |07 |00 |01                                         ......
    Received frame 0x1b / 0x002e
    03 |2b+|1d |08 |00 |01 |48H|28(|00 |20 |56V|20 |300|344|2e.|30 .+....H(. V 04.0
    344|0a |322|399|2d-|311|300|2d-|300|311|0a |4eN|48H|4dM|2d-|37 4.29-10-01.NHM-7
    0a |28(|63c|29)|20 |4eN|4dM|50P|2e.|00 |00 |00 |00 |00         .(c) NMP......
    Sending frame 0x1b / 0x0006
    00 |03 |1e |07 |00 |01                                         ......
    Received frame 0x1b / 0x002e
    03 |2b+|1e |08 |00 |01 |48H|28(|00 |20 |56V|20 |300|344|2e.|30 .+....H(. V 04.0
    344|0a |322|399|2d-|311|300|2d-|300|311|0a |4eN|48H|4dM|2d-|37 4.29-10-01.NHM-7
    0a |28(|63c|29)|20 |4eN|4dM|50P|2e.|00 |00 |00 |00 |00         .(c) NMP......

    0x1f: RINGTONE

        s Get Ringtones         { 0x07, 0x00, 0x00, 0xFE, 0x00, 0x7D }
        r Get Ringtones         { 0x08, 0x00, 0x23, 0x00, # ringtones, 0x00,
                                  ringtone number, 0x01, 0x01, 0x00, name length (chars), name (unicode)... }


    0x2b:
        s Get IMEI              { 0x00, 0x41 }
        r Get IMEI              { 0x01, 0x00, 0x01, 0x41, 0x14, 0x00, 0x10, {IMEI(ASCII)}, 0x00 }
        s get HW&SW version     { 0x07, 0x00, 0x01 }
        r get HW&SW version     { 0x08, 0x00, 0x01, 0x58, 0x29, 0x00, 0x22, "V " "firmware\n" "firmware date\n"
                                  "model\n" "(c) NMP.", 0x0a, 0x43, 0x00, 0x00, 0x00 }

    0x38:
        s ???                   {+00 |02 |00 |0a |00 |01 |00, location, 00}
                                where location: 0, 1, 2, 3
        r ???                   {+02 |1d |00 |0b |00 |01 |00, location, 08 |00 |00 |00 |00 |00}
        s ???
          00 |02 |00 |0a |00 |60`|00 |10 |00 |11 |00 |12 |00 |13 |00 |14 .....`..........
          00 |15 |00 |16 |00 |17 |00 |18 |00 |19 |00 |1a |00 |1b |00 |1c ................
          00 |1d |00 |1e |00 |1f |00 |20 |00 |21!|00 |22"|00 |23#|00 |24 ....... .!.".#.$
          00 |25%|00 |26&|00 |27'|00 |28(|00 |29)|00 |2a*|00 |2b+|00 |2c .%.&.'.(.).*.+.,
          00 |2d-|00 |2e.|00 |2f/|00 |300|00 |311|00 |322|00 |333|00 |34 .-.../.0.1.2.3.4
          00 |355|00 |366|00 |377|00 |388|00 |399|00 |3a:|00 |3b;|00 |3c .5.6.7.8.9.:.;.<
          00 |3d=|00 |3e>|00 |3f?|00 |40@|00 |41A|00 |42B|00 |43C|00 |44 .=.>.?.@.A.B.C.D
          00 |45E|00 |46F|00 |47G|00 |48H|00 |49I|00 |4aJ|00 |4bK|00 |4c .E.F.G.H.I.J.K.L
          00 |4dM|00 |4eN|00 |4fO|00 |50P|00 |51Q|00 |52R|00 |53S|00 |54 .M.N.O.P.Q.R.S.T
          00 |55U|00 |56V|00 |57W|00 |58X|00 |59Y|00 |5aZ|00 |5b[|00 |5c .U.V.W.X.Y.Z.[.\
          00 |5d]|00 |5e^|00 |5f_|00 |60`|00 |61a|00 |62b|00 |63c|00 |64 .].^._.`.a.b.c.d
          00 |65e|00 |66f|00 |67g|00 |68h|00 |69i|00 |6aj|00 |6bk|00 |6c .e.f.g.h.i.j.k.l
          00 |6dm|00 |6en|00 |6fo|00                                     .m.n.o.
        r ???
          02 |1d |00 |0b |00 |60`|00 |10 |04 |00 |00 |11 |0c |06 |00 |00 .....`..........
          00 |00 |00 |00 |00 |00 |00 |12 |04 |00 |00 |13 |04 |00 |00 |14 ................
          08 |00 |00 |00 |00 |00 |00 |15 |08 |00 |00 |00 |00 |00 |00 |16 ................
          08 |00 |00 |00 |00 |00 |00 |17 |08 |00 |00 |00 |00 |00 |00 |18 ................
          08 |00 |00 |00 |00 |00 |00 |19 |08 |00 |00 |00 |00 |00 |00 |1a ................
          08 |00 |00 |00 |00 |00 |00 |1b |08 |00 |00 |00 |00 |00 |00 |1c ................
          04 |00 |00 |1d |08 |04 |00 |00 |00 |00 |00 |1e |3c<|355|ff |ff ............<5  
          ff |ff |ff |ff |ff |ff |ff |ff |ff |ff |ff |ff |ff |ff |ff |ff                 
          ff |ff |ff |ff |ff |ff |ff |ff |ff |ff |ff |ff |ff |ff |ff |ff                 
          ff |ff |ff |ff |ff |ff |ff |ff |ff |ff |ff |ff |ff |ff |ff |ff                 
          ff |ff |ff |00 |00 |00 |00 |1f |08 |00 |00 |00 |00 |00 |00 |20    ............
          04 |00 |00 |21!|04 |00 |00 |22"|04 |00 |00 |23#|04 |00 |00 |24 ...!..."...#...$
          04 |00 |00 |25%|04 |00 |00 |26&|04 |00 |00 |27'|08 |00 |00 |00 ...%...&...'....
          00 |00 |00 |28(|08 |00 |00 |00 |00 |00 |00 |29)|08 |00 |00 |00 ...(.......)....
          00 |00 |00 |2a*|04 |00 |00 |2b+|0c |08 |00 |00 |00 |00 |00 |00 ...*...+........
          00 |00 |00 |2c,|04 |00 |00 |2d-|08 |00 |00 |00 |00 |00 |00 |2e ...,...-........
          08 |00 |00 |00 |00 |00 |00 |2f/|08 |00 |00 |00 |00 |00 |00 |30 ......./.......0
          08 |00 |00 |00 |00 |00 |00 |311|08 |00 |00 |00 |00 |00 |00 |32 .......1.......2
          08 |00 |00 |00 |00 |00 |00 |333|08 |00 |00 |00 |00 |00 |00 |34 .......3.......4
          08 |00 |00 |00 |00 |00 |00 |355|08 |00 |00 |00 |00 |00 |00 |36 .......5.......6
          08 |00 |00 |00 |00 |00 |00 |377|08 |00 |00 |00 |00 |00 |00 |38 .......7.......8
          08 |04 |00 |00 |00 |00 |00 |399|08 |04 |00 |00 |00 |00 |00 |3a .......9.......:
          08 |04 |00 |00 |00 |00 |00 |3b;|14 |10 |00 |00 |00 |00 |00 |00 .......;........
          00 |00 |00 |00 |00 |00 |00 |00 |00 |00 |00 |3c<|08 |00 |00 |00 ...........<....
          00 |00 |00 |3d=|08 |00 |00 |00 |00 |00 |00 |3e>|08 |00 |00 |00 ...=.......>....
          00 |00 |00 |3f?|08 |00 |00 |00 |00 |00 |00 |40@|08 |00 |00 |8e ...?.......@...Ä
          00 |00 |00 |41A|04 |00 |00 |42B|04 |00 |00 |43C|08 |00 |00 |00 ...A...B...C....
          00 |00 |00 |44D|08 |00 |00 |00 |00 |00 |00 |45E|08 |00 |00 |00 ...D.......E....
          00 |00 |00 |46F|08 |00 |00 |00 |00 |00 |00 |47G|08 |00 |00 |00 ...F.......G....
          00 |00 |00 |48H|08 |00 |00 |00 |00 |00 |00 |49I|08 |00 |00 |00 ...H.......I....
          00 |00 |00 |4aJ|08 |00 |00 |00 |00 |00 |00 |4bK|08 |00 |00 |00 ...J.......K....
          00 |00 |00 |4cL|08 |00 |00 |00 |00 |00 |00 |4dM|08 |00 |00 |00 ...L.......M....
          00 |00 |00 |4eN|08 |00 |00 |00 |00 |00 |00 |4fO|08 |00 |00 |00 ...N.......O....
          00 |00 |00 |50P|08 |00 |00 |00 |00 |00 |00 |51Q|08 |00 |00 |00 ...P.......Q....
          00 |00 |00 |52R|08 |00 |00 |00 |00 |00 |00 |53S|08 |00 |00 |00 ...R.......S....
          00 |00 |00 |54T|08 |00 |00 |00 |00 |00 |00 |55U|08 |00 |00 |00 ...T.......U....
          00 |00 |00 |56V|08 |00 |00 |00 |00 |00 |00 |57W|08 |00 |00 |00 ...V.......W....
          00 |00 |00 |58X|08 |00 |00 |00 |00 |00 |00 |59Y|08 |00 |00 |00 ...X.......Y....
    00 |00 |00 |5aZ|08 |00 |00 |00 |00 |00 |00 |5b[|08 |00 |00 |00 ...Z.......[....
    00 |00 |00 |5c\|08 |00 |00 |00 |00 |00 |00 |5d]|08 |00 |00 |00 ...\.......]....
    00 |00 |00 |5e^|08 |00 |00 |00 |00 |00 |00 |5f_|08 |00 |00 |00 ...^......._....
    00 |00 |00 |60`|08 |00 |00 |00 |00 |00 |00 |61a|08 |00 |00 |00 ...`.......a....
    00 |00 |00 |62b|08 |00 |00 |00 |00 |00 |00 |63c|08 |00 |00 |00 ...b.......c....
    00 |00 |00 |64d|08 |00 |00 |00 |00 |00 |00 |65e|08 |00 |00 |00 ...d.......e....
    00 |00 |00 |66f|08 |00 |00 |00 |00 |00 |00 |67g|08 |00 |00 |00 ...f.......g....
    00 |00 |00 |68h|08 |00 |00 |00 |00 |00 |00 |69i|08 |00 |00 |00 ...h.......i....
    00 |00 |00 |6aj|08 |00 |00 |00 |00 |00 |00 |6bk|08 |04 |00 |00 ...j.......k....
    00 |00 |00 |6cl|08 |04 |00 |00 |00 |00 |00 |6dm|08 |00 |00 |00 ...l.......m....
    00 |00 |00 |6en|08 |00 |00 |00 |00 |00 |00 |6fo|08 |00 |00 |00 ...n.......o....
    00 |00                                                         ..
    Sending frame 0x38 / 0x00c7
    00 |02 |00 |0a |00 |60`|00 |70p|00 |71q|00 |72r|00 |73s|00 |74 .....`.p.q.r.s.t
    00 |75u|00 |76v|00 |77w|00 |78x|00 |79y|00 |7az|00 |7b{|00 |7c .u.v.w.x.y.z.{.|
    00 |7d}|00 |7e~|00 |7f |00 |80Ç|00 |81ü|00 |82é|00 |83â|00 |84 .}.~...Ç.ü.é.â.ä
    00 |85ů|00 |86ć|00 |87ç|00 |88ł|00 |89ë|00 |8aŐ|00 |8bő|00 |8c .ů.ć.ç.ł.ë.Ő.ő.î
    00 |8dŹ|00 |8eÄ|00 |8fĆ|00 |90É|00 |91Ĺ|00 |92ĺ|00 |93ô|00 |94 .Ź.Ä.Ć.É.Ĺ.ĺ.ô.ö
    00 |95Ľ|00 |96ľ|00 |97Ś|00 |98ś|00 |99Ö|00 |9aÜ|00 |9bŤ|00 |9c .Ľ.ľ.Ś.ś.Ö.Ü.Ť.ť
    00 |9dŁ|00 |9e×|00 |9fč|00 |a0á|00 |a1í|00 |a2ó|00 |a3ú|00 |a4 .Ł.×.č.á.í.ó.ú.Ą
    00 |a5ą|00 |a6Ž|00 |a7ž|00 |a8Ę|00 |a9ę|00 |aa¬|00 |abź|00 |ac .ą.Ž.ž.Ę.ę.¬.ź.Č
    00 |adş|00 |ae«|00 |af»|00 |b0 |00 |b1 |00 |b2 |00 |b3 |00 |b4 .ş.«.»..........
    00 |b5Á|00 |b6Â|00 |b7Ě|00 |b8Ş|00 |b9 |00 |ba |00 |bb |00 |bc .Á.Â.Ě.Ş........
    00 |bdŻ|00 |beż|00 |bf |00 |c0 |00 |c1 |00 |c2 |00 |c3 |00 |c4 .Ż.ż............
    00 |c5 |00 |c6Ă|00 |c7ă|00 |c8 |00 |c9 |00 |ca |00 |cb |00 |cc ...Ă.ă..........
    00 |cd |00 |ce |00 |cf¤|00                                     .....¤.
    Received frame 0x38 / 0x0306
    02 |1d |00 |0b |00 |60`|00 |70p|08 |00 |00 |00 |00 |00 |00 |71 .....`.p.......q
    08 |00 |00 |00 |00 |00 |00 |72r|08 |00 |00 |00 |00 |00 |00 |73 .......r.......s
    08 |00 |00 |00 |00 |00 |00 |74t|08 |00 |00 |00 |00 |00 |00 |75 .......t.......u
    08 |00 |00 |00 |00 |00 |00 |76v|08 |00 |00 |00 |00 |00 |00 |77 .......v.......w
    08 |00 |00 |00 |00 |00 |00 |78x|08 |00 |00 |00 |00 |00 |00 |79 .......x.......y
    08 |00 |00 |00 |00 |00 |00 |7az|08 |00 |00 |00 |00 |00 |00 |04 .......z........
    08 |04 |00 |7b{|00 |00 |00 |04 |08 |04 |00 |7c||00 |00 |00 |04 ...{.......|....
    08 |04 |00 |7d}|00 |00 |00 |04 |08 |04 |00 |7e~|00 |00 |00 |04 ...}.......~....
    08 |04 |00 |7f |00 |00 |00 |04 |08 |04 |00 |80Ç|00 |00 |00 |04 ...........Ç....
    08 |04 |00 |81ü|00 |00 |00 |04 |08 |04 |00 |82é|00 |00 |00 |04 ...ü.......é....
    08 |04 |00 |83â|00 |00 |00 |04 |08 |04 |00 |84ä|00 |00 |00 |04 ...â.......ä....
    08 |04 |00 |85ů|00 |00 |00 |04 |08 |04 |00 |86ć|00 |00 |00 |04 ...ů.......ć....
    08 |04 |00 |87ç|00 |00 |00 |04 |08 |04 |00 |88ł|00 |00 |00 |04 ...ç.......ł....
    08 |04 |00 |89ë|00 |00 |00 |04 |08 |04 |00 |8aŐ|00 |00 |00 |04 ...ë.......Ő....
    08 |04 |00 |8bő|00 |00 |00 |04 |08 |04 |00 |8cî|00 |00 |00 |04 ...ő.......î....
    08 |04 |00 |8dŹ|00 |00 |00 |04 |08 |04 |00 |8eÄ|00 |00 |00 |04 ...Ź.......Ä....
    08 |04 |00 |8fĆ|00 |00 |00 |04 |08 |04 |00 |90É|00 |00 |00 |04 ...Ć.......É....
    08 |04 |00 |91Ĺ|00 |00 |00 |04 |08 |04 |00 |92ĺ|00 |00 |00 |04 ...Ĺ.......ĺ....
    08 |04 |00 |93ô|00 |00 |00 |04 |08 |04 |00 |94ö|00 |00 |00 |04 ...ô.......ö....
    08 |04 |00 |95Ľ|00 |00 |00 |04 |08 |04 |00 |96ľ|00 |00 |00 |04 ...Ľ.......ľ....
    08 |04 |00 |97Ś|00 |00 |00 |04 |08 |04 |00 |98ś|00 |00 |00 |04 ...Ś.......ś....
    08 |04 |00 |99Ö|00 |00 |00 |04 |08 |04 |00 |9aÜ|00 |00 |00 |04 ...Ö.......Ü....
    08 |04 |00 |9bŤ|00 |00 |00 |04 |08 |04 |00 |9cť|00 |00 |00 |04 ...Ť.......ť....
    08 |04 |00 |9dŁ|00 |00 |00 |04 |08 |04 |00 |9e×|00 |00 |00 |04 ...Ł.......×....
    08 |04 |00 |9fč|00 |00 |00 |04 |08 |04 |00 |a0á|00 |00 |00 |04 ...č.......á....
    08 |04 |00 |a1í|00 |00 |00 |04 |08 |04 |00 |a2ó|00 |00 |00 |04 ...í.......ó....
    08 |04 |00 |a3ú|00 |00 |00 |04 |08 |04 |00 |a4Ą|00 |00 |00 |04 ...ú.......Ą....
    08 |04 |00 |a5ą|00 |00 |00 |04 |08 |04 |00 |a6Ž|00 |00 |00 |04 ...ą.......Ž....
    08 |04 |00 |a7ž|00 |00 |00 |04 |08 |04 |00 |a8Ę|00 |00 |00 |04 ...ž.......Ę....
    08 |04 |00 |a9ę|00 |00 |00 |04 |08 |04 |00 |aa¬|00 |00 |00 |04 ...ę.......¬....
    08 |04 |00 |abź|00 |00 |00 |04 |08 |04 |00 |acČ|00 |00 |00 |04 ...ź.......Č....
    08 |04 |00 |adş|00 |00 |00 |04 |08 |04 |00 |ae«|00 |00 |00 |04 ...ş.......«....
    08 |04 |00 |af»|00 |00 |00 |04 |08 |04 |00 |b0 |00 |00 |00 |04 ...»............
    08 |04 |00 |b1 |00 |00 |00 |04 |08 |04 |00 |b2 |00 |00 |00 |04 ................
    08 |04 |00 |b3 |00 |00 |00 |04 |08 |04 |00 |b4 |00 |00 |00 |04 ................
    08 |04 |00 |b5Á|00 |00 |00 |04 |08 |04 |00 |b6Â|00 |00 |00 |04 ...Á.......Â....
    08 |04 |00 |b7Ě|00 |00 |00 |04 |08 |04 |00 |b8Ş|00 |00 |00 |04 ...Ě.......Ş....
    08 |04 |00 |b9 |00 |00 |00 |04 |08 |04 |00 |ba |00 |00 |00 |04 ................
    08 |04 |00 |bb |00 |00 |00 |04 |08 |04 |00 |bc |00 |00 |00 |04 ................
    08 |04 |00 |bdŻ|00 |00 |00 |04 |08 |04 |00 |beż|00 |00 |00 |04 ...Ż.......ż....
    08 |04 |00 |bf |00 |00 |00 |04 |08 |04 |00 |c0 |00 |00 |00 |04 ................
    08 |04 |00 |c1 |00 |00 |00 |04 |08 |04 |00 |c2 |00 |00 |00 |04 ................
    08 |04 |00 |c3 |00 |00 |00 |04 |08 |04 |00 |c4 |00 |00 |00 |04 ................
    08 |04 |00 |c5 |00 |00 |00 |04 |08 |04 |00 |c6Ă|00 |00 |00 |04 ...........Ă....
    08 |04 |00 |c7ă|00 |00 |00 |04 |08 |04 |00 |c8 |00 |00 |00 |04 ...ă............
    08 |04 |00 |c9 |00 |00 |00 |04 |08 |04 |00 |ca |00 |00 |00 |04 ................
    08 |04 |00 |cb |00 |00 |00 |04 |08 |04 |00 |cc |00 |00 |00 |04 ................
    08 |04 |00 |cd |00 |00 |00 |04 |08 |04 |00 |ce |00 |00 |00 |04 ................
    08 |04 |00 |cf¤|00 |00                                         ...¤..
    Received frame 0x38 / 0x0306
    02 |1d |00 |0b |00 |60`|00 |04 |08 |04 |00 |d0đ|00 |00 |00 |04 .....`.....đ....
    08 |04 |00 |d1Đ|00 |00 |00 |04 |08 |04 |00 |d2Ď|00 |00 |00 |04 ...Đ.......Ď....
    08 |04 |00 |d3Ë|00 |00 |00 |04 |08 |04 |00 |d4ď|00 |00 |00 |04 ...Ë.......ď....
    08 |04 |00 |d5Ň|00 |00 |00 |04 |08 |04 |00 |d6Í|00 |00 |00 |04 ...Ň.......Í....
    08 |04 |00 |d7Î|00 |00 |00 |04 |08 |04 |00 |d8ě|00 |00 |00 |04 ...Î.......ě....
    08 |04 |00 |d9 |00 |00 |00 |04 |08 |04 |00 |da |00 |00 |00 |db ................
    08 |00 |00 |00 |00 |00 |00 |dc |08 |00 |00 |00 |00 |00 |00 |dd ...............Ţ
    08 |00 |00 |00 |00 |00 |00 |deŮ|08 |00 |00 |00 |00 |00 |00 |df .......Ů........
    08 |00 |00 |00 |00 |00 |00 |e0Ó|08 |00 |00 |00 |00 |00 |00 |e1 .......Ó.......ß
    08 |00 |00 |00 |00 |00 |00 |e2Ô|08 |00 |00 |00 |00 |00 |00 |e3 .......Ô.......Ń
    08 |00 |00 |00 |00 |00 |00 |e4ń|08 |00 |00 |00 |00 |00 |00 |e5 .......ń.......ň
    08 |00 |00 |00 |00 |00 |00 |04 |08 |04 |00 |e6Š|00 |00 |00 |e7 ...........Š...š
    08 |00 |00 |00 |00 |00 |00 |e8Ŕ|08 |00 |00 |00 |00 |00 |00 |04 .......Ŕ........
    08 |04 |00 |e9Ú|00 |00 |00 |04 |08 |04 |00 |eaŕ|00 |00 |00 |04 ...Ú.......ŕ....
    08 |04 |00 |ebŰ|00 |00 |00 |04 |08 |04 |00 |ecý|00 |00 |00 |04 ...Ű.......ý....
    08 |04 |00 |edÝ|00 |00 |00 |04 |08 |04 |00 |eeţ|00 |00 |00 |04 ...Ý.......ţ....
    08 |04 |00 |ef´|00 |00 |00 |04 |08 |04 |00 |f0­|00 |00 |00 |04 ...´.......­....
    08 |04 |00 |f1 |00 |00 |00 |04 |08 |04 |00 |f2 |00 |00 |00 |04 ................
    08 |04 |00 |f3 |00 |00 |00 |04 |08 |04 |00 |f4 |00 |00 |00 |f5 ...............§
    08 |00 |00 |00 |00 |00 |00 |f6÷|08 |00 |00 |00 |00 |00 |00 |f7 .......÷.......¸
    08 |00 |00 |00 |00 |00 |00 |f8°|08 |00 |00 |00 |00 |00 |00 |04 .......°........
    08 |04 |00 |f9¨|00 |00 |00 |04 |08 |04 |00 |fa |00 |00 |00 |04 ...¨............
    08 |04 |00 |fbű|00 |00 |00 |04 |08 |04 |00 |fcŘ|00 |00 |00 |04 ...ű.......Ř....
    08 |04 |00 |fdř|00 |00 |00 |04 |08 |04 |00 |fe |00 |00 |00 |04 ...ř............
    08 |04 |00 |ff |00 |00 |00 |04 |08 |04 |01 |00 |00 |00 |00 |04 ... ............
    08 |04 |01 |01 |00 |00 |00 |04 |08 |04 |01 |02 |00 |00 |00 |04 ................
    08 |04 |01 |03 |00 |00 |00 |04 |08 |04 |01 |04 |00 |00 |00 |04 ................
    08 |04 |01 |05 |00 |00 |00 |04 |08 |04 |01 |06 |00 |00 |00 |04 ................
    08 |04 |01 |07 |00 |00 |00 |04 |08 |04 |01 |08 |00 |00 |00 |04 ................
    08 |04 |01 |09 |00 |00 |00 |04 |08 |04 |01 |0a |00 |00 |00 |04 ................
    08 |04 |01 |0b |00 |00 |00 |04 |08 |04 |01 |0c |00 |00 |00 |04 ................
    08 |04 |01 |0d |00 |00 |00 |04 |08 |04 |01 |0e |00 |00 |00 |04 ................
    08 |04 |01 |0f |00 |00 |00 |04 |08 |04 |01 |10 |00 |00 |00 |04 ................
    08 |04 |01 |11 |00 |00 |00 |04 |08 |04 |01 |12 |00 |00 |00 |04 ................
    08 |04 |01 |13 |00 |00 |00 |04 |08 |04 |01 |14 |00 |00 |00 |04 ................
    08 |04 |01 |15 |00 |00 |00 |04 |08 |04 |01 |16 |00 |00 |00 |04 ................
    08 |04 |01 |17 |00 |00 |00 |04 |08 |04 |01 |18 |00 |00 |00 |04 ................
    08 |04 |01 |19 |00 |00 |00 |04 |08 |04 |01 |1a |00 |00 |00 |04 ................
    08 |04 |01 |1b |00 |00 |00 |04 |08 |04 |01 |1c |00 |00 |00 |04 ................
    08 |04 |01 |1d |00 |00 |00 |04 |08 |04 |01 |1e |00 |00 |00 |04 ................
    08 |04 |01 |1f |00 |00 |00 |04 |08 |04 |01 |20 |00 |00 |00 |04 ........... ....
    08 |04 |01 |21!|00 |00 |00 |04 |08 |04 |01 |22"|00 |00 |00 |04 ...!......."....
    08 |04 |01 |23#|00 |00 |00 |04 |08 |04 |01 |24$|00 |00 |00 |04 ...#.......$....
    08 |04 |01 |25%|00 |00 |00 |04 |08 |04 |01 |26&|00 |00 |00 |04 ...%.......&....
    08 |04 |01 |27'|00 |00 |00 |04 |08 |04 |01 |28(|00 |00 |00 |04 ...'.......(....
    08 |04 |01 |29)|00 |00 |00 |04 |08 |04 |01 |2a*|00 |00 |00 |04 ...).......*....
    08 |04 |01 |2b+|00 |00 |00 |04 |08 |04 |01 |2c,|00 |00 |00 |04 ...+.......,....
    08 |04 |01 |2d-|00 |00 |00 |04 |08 |04 |01 |2e.|00 |00 |00 |04 ...-............
    08 |04 |01 |2f/|00 |00                                         .../..
    Sending frame 0x38 / 0x000e
    00 |02 |00 |0c |00 |01 |00 |01 |08 |02 |05 |08 |00 |00         ..............
    Received frame 0x38 / 0x0006
    02 |1d |00 |0d |00 |00                                         ......

    0x39: PROFILES

        s Get Profile           { 0x01, 0x01, 0x0c, 0x01,
                                  0x04 (length), profile #, 'feature', 0x01 }
        r Get Profile           { 0x02, 0x00, 0x0c, 0x02,
                                  0x09 (length), type, 0x01, 0x02, 0x00, 0x00, 0x01, value, 0x02 ... }

        s Set Profile           { 0x03, 0x01, # blocks, 0x03,
                                  length, type, profile #, value, 0x00, 0x00, 0x01, value, 0x03 ... }
        r Set Profile           { 0x04, 0x01, # blocks,
                                  length, 0xXX, type, 0xXX, value
                                  where value: 0x00 = success

    0x3E: FM Radio
        s Get FM Station	    { 0x00, 0x01, 0x00, 0x05, location, 0x00, 0x01}
        r Get FM Station	    { 			0x06, 0x00, 0x01, 0x00, 0x1c,
                     name_length, 0x14, 0x09, 0x00, location, 0x00, 0x00, 0x01,
                     FreqHI , FreqLO,
                     name_in_unicode,[0x55,0x55] - if name_length is odd}
                                 where frequency = (0xffff + FreqHi * 0x100 + FreqLo) kHz

        r Get FM Station	    { 			0x16, 0x05, 0x06 } - if entry is empty

    0x42:
        s ????                  {+00 |07 |00 |01 |00 |02}
        r ????                  {+07 |2d-|00 |02 |06 |02 |00 |02 |00 |01 |02 |08 |00 |0c |07 |d1 |00 |00}

    0x42:
        s Get ???               {+0x00, 0x07, 0x02, 0x01, 0x00, 0x01 }
        r Get ???               { 02 |06 |02 |00 |02 |00 |01 |02 |08 |00 |0c |07 |d1 |00 |00}
        s Get original IMEI ?   {+0x00, 0x07, 0x02, 0x01, 0x00, 0x01 }
        r Get original IMEI ?   { 0x02, 0x06, 0x01, 0x01, 0x00, 0x01, 0x01, 0x18, 0x01, 0x00, IMEI, 0x00, 'U' }
        s Get ???               {+0x00, 0x07, 0x03, 0x01, 0x00, 0x02 }
        r Get ???               { 02 |06 |02 |00 |02 |00 |01 |02 |08 |00 |0c |07 |d1 |00 |00}
        s Get ???               {+0x00, 0x07, 0x04, 0x01, 0x00, 0x10 }
        r Get ???               { 02 |06 |10 |00 |10 |00 |01 |05 |08 |00 |00 |00 |00 | 00 |00}
        s Get ???               {+0x00, 0x07, 0x05, 0x01, 0x00, 0x08 }
        r Get ???               { 02 |06 |08 |00 |08 |00 |01 |04 |08 |00 |00 |00 |00 | 00 |00}
        s Get ???               {+0x00, 0x07, 0x06, 0x01, 0x00, 0x20 }
        r Get ???               { 02 |06 |20 |00 |20 |00 |01 |06 |04 |03 |00}

    0x43:
        s ????                  {+00 |08 |00 |01 |00 |00 |00 |00 |00, x}
                                where x = 0x01, 0x02, 0x04, 0x08, 0x10
        r ????                  {+08 |1f |y |02 |00 |00 |00 |00 }
                                where y = 0 - 0x04
        s ???                   {+00 |08 |05 |01 |00 |00 |00 |00 |00 |20}
        r ???                   {+08 |1f |05 |02 |00 |00 |00 |00}

    0x45: PHONEBOOK HANDLING ????
        the same to msg 0x03 ????

    0x53:
        s Get simlock info      {0x0C}

    0x55: TODO
        s Get TODO              {0x03, 0x00, 0x00, 0x80, location low, location hi}
        r Get TODO              {0x04, .... }
        s Get number of TODO    {0x07}
        r Get number of TODO    {0x08, number lo, number hi}
        s Delete all TODO       {0x11}
        r Delete all TODO       {0x12}
        s Get TODO locations    {0x15, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00}
        r Get TODO locations    {0x16, ...}

    0x7a: STARTUP

        s Get startup logo      { 0x02, 0x0f }
        r Get startup logo      { 0x03, 0x0f, 0x00[4], # blocks,
                                  0xc0, 0x02, height (2 octets),
                                  0xc0, 0x03, width (2 octets),
                                  0xc0, 0x04, size (2 octets),
                      picture }

        s Get startup greeting  { 0x02, 0x01, 0x00 }
        r Get startup greeting  { 0x03, 0x01, 0x00, greeting (unicode), 0x00 }

        s Get anykey answer     { 0x02, 0x05, 0x00 }
        r Get anykey answer     { 0x03, 0x05, 0x00, 0x00/0x01 }

    0xd1:
        s Get HW&SW version     { 0x0003, 0x00 }
    0xd2:
        r Get HW&SW version     { 0x0003 "V " "firmware\n" "firmware date\n"
                                  "model\n" "(c) NMP." }
