Замени "buffer: ANYPTR" на "buffer: POINTER [untagged] TO ARRAY [untagged] OF SHORTCHAR"
Все массивы (ARRAY) и записи (RECORD) должны быть с [untagged]. Ну и POINTERs тоже.

context*: ARRAY [untagged] 4 OF ANYPTR;  (* в оригинале    void*  context[4];  *)
=>
PtrVoid = POINTER [untagged] TO RECORD [untagged] END;
context*: ARRAY [untagged] 4 OF PtrVoid;

> -- Цитата:
> Поскольку размер кадра может быть разный, то приходится буфер динамически выделять.
Сделай статический максимальной длины, да и всё.