У меня сейчас идея такая:

Описываю это как массив arg = ARRAY OF BYTE;

И пишу функции для записи в этот массив значений по порядку:

PROCEDURE WriteInt*(a: arg; v: INTEGER)
PROCEDURE WriteReal*(a: arg; v: REAL)
и т.д.