Irgendwie fehlt mir da was. Beispielcode sollte compilierfähig sein.


Dein Code würde ich etwa so umsetzen (Fehlende Typen einfach angenommen, natürlich ungestestet)):
Code:
$regfile = "M32def.dat"
$crystal = 4000000
$hwstack = 32
$swstack = 10
$framesize = 40
$baud = 9600

Dim Position As Byte
Dim B As Byte
Dim Uz(6) As Byte
Dim Telegramm(60) As Byte
Dim Ttype As Byte At Telegramm + 1 Overlay
Dim Uz_std10 As Byte At Telegramm + 4 Overlay               ' = Mid(telegramm , 5 , 1)
Dim Uz_std1 As Byte At Telegramm + 5 Overlay                ' = Mid(telegramm , 6 , 1)
Dim Uz_min10 As Byte At Telegramm + 6 Overlay               ' = Mid(telegramm , 7 , 1)
Dim Uz_min1 As Byte At Telegramm + 7 Overlay                ' = Mid(telegramm , 8 , 1)
Dim Uz_sek10 As Byte At Telegramm + 8 Overlay               ' = Mid(telegramm , 9 , 1)
Dim Uz_sek1 As Byte At Telegramm + 9 Overlay                ' = Mid(telegramm , 7 , 1)

La1 alias Uz_std10
La2 Alias Uz_std1
La3 Alias Uz_min10
La4 Alias Uz_min1
La5 Alias Uz_sek10

Const Lebensz = 5                                           '???
Const Platzt = 6                                            '???

Dim Seg_array(10) As Byte                                   '???

Config Serialin = Buffered , Size = 60                      ', Bytematch = 013    ' Serielles Input
'Ausgänge:
Zeit_segmente Alias Portc.7                                 ' Ausgang für die Uhr
Rennz Alias Portc.6                                         ' Ausgang für die verbleibende Restzeit
Licht_5 Alias Portc.5                                       ' Ausgang für Lampe 5
Licht_4 Alias Portc.4                                       ' Ausgang für Lampe 4
Licht_3 Alias Portc.3                                       ' Ausgang für Lampe 3
Licht_2 Alias Portc.2                                       ' Ausgang für Lampe 2
Licht_1 Alias Portc.1                                       ' Ausgang für Lampe 1

Zeit_strobe_port Alias Portb                                '???
Zeit_strobe_pin Alias 0                                     '???
Data_channel Alias Portb.1
Clock_channel Alias Portb.2                                 '???
Do                                                          '???
   If Ischarwaiting() = 1 Then
      Gosub Empfangen
   End If


Loop
End

Empfangen:
   B = Inkey()
   If B = 13 Then
      Gosub Auswerten
      Position = 0
   Else
      Incr Position
      Telegramm(position) = B
   End If


Return

Auswerten:
   If Ttype = Lebensz Then
     If Uz_std10 = 48 Then
        Uz(1) = Seg_array(10)
     Else
        Uz(1) = Seg_array(uz_std10)
     End If
     If Uz_std1 = 48 Then
         Uz(2) = Seg_array(10)
         Else
         Uz(2) = Seg_array(uz_std1)
         End If
     If Uz_min10 = 48 Then
         Uz(3) = Seg_array(10)
         Else
         Uz(3) = Seg_array(uz_min10)
     End If
     If Uz_min1 = 48 Then
        Uz(4) = Seg_array(10)
        Else
        Uz(4) = Seg_array(uz_min1)
     End If
     If Uz_sek10 = 48 Then
        Uz(5) = Seg_array(10)
        Else
        Uz(5) = Seg_array(uz_sek10)
     End If
     If Uz_sek1 = 48 Then
        Uz(6) = Seg_array(10)
        Else
        Uz(6) = Seg_array(uz_sek1)
     End If
'     LA1 = Mid(telegramm , 5 , 1)
'     LA2 = Mid(telegramm , 6 , 1)
'     LA3 = Mid(telegramm , 7 , 1)
'     LA4 = Mid(telegramm , 8 , 1)
'     LA5 = Mid(telegramm , 9 , 1)
     If LA1 = 49 Then
        Licht_1 = 1
     Else
        Licht_1 = 0
     End If
     If La2 = 49 Then
        Licht_2 = 1
     Else
        Licht_2 = 0
     End If
     If La3 = 49 Then
        Licht_3 = 1
     Else
        Licht_3 = 0
     End If
     If La4 = 49 Then
        Licht_4 = 1
     Else
        Licht_4 = 0
     End If
     If La5 = 49 Then
        Licht_5 = 1
     Else
        Licht_5 = 0
     End If
     Shiftout Data_channel , Clock_channel , Uz(1)
     Shiftout Data_channel , Clock_channel , Uz(2)
     Shiftout Data_channel , Clock_channel , Uz(3)
     Shiftout Data_channel , Clock_channel , Uz(4)
     Shiftout Data_channel , Clock_channel , Uz(5)
     Shiftout Data_channel , Clock_channel , Uz(6)
     Pulseout Zeit_strobe_port , Zeit_strobe_pin , 10000



   Elseif Ttype = Platzt Then
      nop
   End If


Return