то есть все функции пишутся и отлаживаются на си-паскале, и любую можно заменить п-кодом с минимальными исправлениями в исходнике. например, так

Код:
#ifdef FUNC1_REAL
void func1(int a) { ... }
#else
#include "func1_pcode.cpp"
#end
а препроцессор читает func1 из основного исходника и делает файл func1_pcode.cpp вида
Код:
static const func1_code[] = { 0xC3, 0x00, 0x00, ... };
#define func1(a) forth_call(func1_code,a)