Solange es um Bytes geht, kein Problem. Wenn es aber um word, integer oder singles geht, muss man den Bascom so oder so oder anders irgendwie austricksen.
Einen Bytearray (tabelle) als soz. neutralen Buffer zu verwenden macht Sinn, wenn a priori nicht weiss, was da aktuell so reinkommt.
Aber meistens weiss man ja, was kommt, und dann ist es besser, gleich die richtigen Variablen als Empfangsbereich zu verwenden.
Also, z.B :
Du holst dir vom Slave ein Byte, 3 Singles und ein Word in dieser Reihenfolge
Dann Definierst du
DIM s_byte AS BYTE
DIM s_sing1 AS SINGLE
DIM s_sing2 AS SINGLE
DIM s_sing3 AS SINGLE
DIM s_word AS WORD

Und dann
TWI-MR-CNTR = 15
TWI-MR-DATA = VARPTR(s_byte)

dann brauchst du nachher nix mehr rumzuschippern.

Das gleiche macht der slave
TWI-ST-DATA = VARPTR(s_byte)

dann kann der Slave direkt in die Variablen reinschreiben
der Master nach dem Lesen kann die Variablen direkt 1:1 verwenden.


Btw:
Um aus einem Byte-Array von beliebiger stelle ein Single rauszuholen, kann man
Code:
DIM s_single AS SINGLE                                  ' da soll's rein
DIM s_byte(4) AS BYTE AT s_single OVERLAY
 s_Byte(1) =      twi_mst_buff(19)
 s_Byte(2) =      twi_mst_buff(20)
 s_Byte(3) =      twi_mst_buff(21)
 s_Byte(4) =      twi_mst_buff(22)