Цитата Сообщение от boo_boo
ага еще умиляет задание страниц памяти как отдельных массивов:
unsigned char ram8[16384];
unsigned char ram9[16384];
unsigned char ramA[16384];

...

и последующие конструкции типа:
case 0: new_ram=ram8; return;
case 1: new_ram=ram9; return;
case 2: new_ram=ramA; return;

...

Очень похоже что это ради собираемости 16-битными компиляторами - может корни сего кода уходят в далекое прошлое BC2.0 или BC3.1?