probier mal das:

Dim Empfang As String * 14
dim Nick as integer at Empfang+7 overlay
dim Roll as integer at Empfang+9 overlay
dim Gyro as integer at Empfang+11 overlay


und dann:
Cls
Locate 1 , 1 : Lcd "Nick= " ; Nick

Locate 2 , 1 : Lcd "Roll= " ; Roll

Locate 3 , 1 : Lcd "Gyro= " ; Gyro

ohne die makeint-geschichte dazwischen ... sollte aufs gleiche ergebnis heraus kommen nur praktisch ohne Rechenzeit und stringkopiererei

der Gag bei Overlayvariablen ist, dass sie auf die gleiche Speicheradresse verweisen, auf die bereits eine Variable verweist.

Warum das von Vorteil ist? Der Code wird kleiner und daher auch schneller.
In Deinem Beispiel bremst das LCD die Geschichte noch aus, aber Du wirst das Ding ja auch für was Anderes verwenden wollen und da können dann µs an Ausführungszeit schon entscheidend werden.

Beispiel:

dim irgendeinstring as string * 5
dim eine_byte_variable as byte at irgendeinstring+3 overlay

an der dritten Stelle des Strings kann ich nun auch per eine_byte_variable direkt auf das Byte zugreifen. Damit ändert sich natürlich der String an der Stelle. Andersherum aber auch, wenn der String sich ändert wird auch das byte geändert.

irgendeinstring="xx1xx"

dann steht in eine_byte_variable das ASCII-Zeichen "1", also der Bytewert 49

schreiben wir nun

eine_byte_variable=50

dann steht in dem String nun "xx2xx"

Die Oberlayvariablen sind so ziemlich das Genialste an Bascom überhaupt.
Wie man in Deinem Beispiel sieht. Man kann den String einfach aneinanderreihen
und dann die beliebigen Elemente herauspicken praktisch ohne Code.

Anderes Beispiel.

Ich verwende in einer Anwendung einen externen AD-Wandler mit 16 Bit.
Diese 16 Bit überträgt er als 2 Bytes.
Ich gehe nun hin und schreibe die 2 Bytes ins S-RAM und lege eine Word-Variable
als Overlay drüber.
Nun kann ich an jeder Programmstelle direkt mit der Word-Variable arbeiten
ohne vorher jedes mal die Bytes zusammen zu setzen.