So, there are a few examples that do this. They use third-party dll's (hard to port), BCD (why would you do that?), floating-point with configurable accuracy (???) or other strange solutions.
Yes, using BCD makes sense when your only goal is to print the number in decimal. For all other requirements, I would simply prefer a flat, binary representation. As that doesn't exist for Free Pascal (that I know of) and I need it for my next project, I think I'll start with implementing this.
Although it won't be BigInt, as much as "variable size integer math", probably with a fixed point extension.