So, I'm still working on reverse-engineering an 1996 game. I have cleared a lot of roadblocks, but one thing that continues to annoy me is exception handling and RTTI metadata.
There is a function
extern void _ExceptInit(void *); that is declared from
BC5/SOURCE/RTL/SOURCE/THREADS/WIN32/THREAD.C, but its implementation is nowhere to be found - all in the entire BC5 source that contains ExceptInit are a bunch of pre-compiled .OBJ files (
XXV.OBJ) that have no corresponding source attached. They are dis-assemblable in Ghidra and contain labels, I grant Borland that, but there are obviously no comments on how exactly that entire mechanism works.
Same goes for RTTI metadata that lives inside compiled binaries. The "Borland Open Architecture Handbook" aka
bc4boa.zip doesn't contain information about either, too (probably because it's too old?), and the Borland books also don't go into detail on implementation.
Any idea where I could go on to search?