Sub process_globals
   Dim GSM_DEFAULT_ALPHABET_TABLE As String
   GSM_DEFAULT_ALPHABET_TABLE = "@£$¥èéùìòÇ" & Chr(10) & "Øø" & Chr(13) & _
      "ÅåΔ_ΦΓΛΩΠΨΣΘΞ*ÆæßÉ !" & QUOTE & "#¤%&'()*+,-./0123456789:;<=>?¡ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÑܧ¿abcdefghijklmnopqrstuvwxyzäöñüà"
End Sub
Sub Activity_Create(FirstTime As Boolean)
   Dim data() As Byte
   data = Array As Byte(0xE8, 0x32, 0x9B, 0xFD, 0x46, 0x97, 0xD9, 0xEC, 0x37)
   Log(DecodeSeptets(data, 10))
End Sub
Sub DecodeSeptets(Data() As Byte, Length As Int) As String
   Dim res As StringBuilder
   res.Initialize
   Dim i, rest, restBits As Int
   Do While res.Length < Length
      Dim d As Int
      d = Bit.And(0xFF, Data(i))
      i = i + 1
      rest = Bit.Or(rest, Bit.ShiftLeft(d, restBits))
      restBits = restBits + 8
      Do While res.Length < Length AND restBits >= 7
         Dim b As Byte
         b = Bit.And(rest, 0x7F)
         res.Append(GSM_DEFAULT_ALPHABET_TABLE.CharAt(b))
         rest = Bit.UnsignedShiftRight(rest, 7)
         restBits = restbits - 7
      Loop
   Loop
   Return res.ToString
End Sub