Cool danke.
Wenn ich das richtig verstanden habe müsste das in etwa wie folgt aussehen.

Code:
$regfile = "m2560def.dat"
$crystal = 14745600
$baud = 921600

Config Com3 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0

Enable Interrupts
Enable Urxc2

On Urxc2 Buf_write

Dim Base As Word
Dim Top As Word
Dim Wrpnt As Word
Dim Rdpnt As Word
Dim One_w As Byte
Dim One_r As Byte
Dim Buffer(260) As Byte


Buf_init:
   Base = Varptr(buffer(1))                                 'mem-adr von Buffer-base
   Top = Base + 260                                         'mem adr von bufer top
   Wrpnt = Base                                             'write pointer
   Rdpnt = Base                                             'read pointer
   Return

Do

'Main Programm

Loop


Buf_write:
   One_w = Udr2                                             ' byte from UART
   Out Wrpnt , One_w                                        ' into buffer
   Incr Wrpnt                                               ' pointer + 1
   If Wrpnt >= Top Then Wrpnt = Base                        ' wrap around
   Return

Buf_read:
   Disable Urxc2
   If Rdpnt = Wrpnt Then
      Enable Urxc2
      One_r = 0                                             ' no data
   Else
      Enable Urxc2
      One_r = Inp(rdpnt)                                    ' read from pointer
      Incr Rdpnt                                            ' pointer + 1
      If Rdpnt >= Top Then Rdpnt = Base                     ' wrap around
   End If
   Return


Mir schwebt grad noch eine Funktion in form des Ischarwaiting vor (bzw. ein FlagBit). Das sollte allerdings kein Problem sein.

Danke nochmal für deine Hilfe.

MfG