Picknick hat Dir den Tip schon gegeben - aber leider bist Du nicht tiefer eingestiegen.

Du kannst solche Probleme jederzeit als Codeausschnitt (Restore + Read/Read/Read etc) im Simulator debuggen.

das sieht dann so aus:
Code:
$regfile = "m48def.dat"
$crystal = 8000000
$baud = 19200

$hwstack = 32
$swstack = 8
$framesize = 24

Dim Lcd_textbuffer As String * 32
Dim Options_id As Integer
Dim Array_id As Byte
Dim Change_allow As Integer

Restore P1_1_edit

Read Lcd_textbuffer                                         'read LCD text
Read Options_id
Read Array_id                                               'Identifier für Array Information
Read Change_allow

Print Lcd_textbuffer
Print Options_id
Print Array_id
Print Change_allow

End

Const Title1 = "Hallo"

P1_1:                                                       'Programm 1
   Data Title1
   Data 1%                                            'Aktulee Zeile (Hervorheben)
   Data $10
   Data 0%

P1_1_edit:
   Data Title1
   Data 1%                                         'Aktulee Zeile (Hervorheben)
   Data $10
   Data 1%                                                  'Change_allow
die Simulator Ausgabe ist:
Hallo
1
10
256
...und schon sehen wir Data $10 belegt 2 Bytes und ist somit keine Byte!! (Das Low Byte rutschte eine Position zum High Byte herüber)

Übrigens: Ich wusste gar nicht, das Bascom Konstanten mit "dollar sign" frisst. Ich habe dazu nichts im Manual gefunden. Ist das eine undokumentierte Syntax?